ntokens = len(word2idx) train_path = os.path.join(args.data_path, 'fisher_' + args.dtype, \ 'train.pickle') valid_path = os.path.join(args.data_path, 'fisher_' + args.dtype, \ 'valid.pickle') train_data = pickle.load(open(train_path)) valid_data = pickle.load(open(valid_path)) train_batches = batchify(train_data, args.batch_size) valid_batches = batchify(valid_data, args.batch_size) ############################################################################### # Build the model ############################################################################### model = lm_model.RNNModel(args.model_type, ntokens, args.emsize, \ args.nhid, args.nlayers, args.dropout, args.tied).to(device) pad_idx = word2idx['<pad>'] criterion = nn.CrossEntropyLoss(ignore_index=pad_idx) params = filter(lambda p: p.requires_grad, model.parameters()) optimizer = optim.Adam(params, lr=args.lr) cuda = torch.cuda.is_available() ############################################################################### # Training code ############################################################################### def get_batch(batch): current_batch_size = len(batch) # pad sequence, ensure correct dimensions
bitch_size = args.batch_size train_loader = torch.utils.data.DataLoader(dataset=train_data, batch_size=bitch_size, shuffle=True, collate_fn=data.collate_fn) print('The size of the dictionary is', len(Corpus_Dic)) ############################################################################### # Build the model ############################################################################### learning_rate = args.lr ntokens = len(Corpus_Dic) model = model.RNNModel(args.model, ntokens, args.emsize, args.nhid, args.nlayers, args.dropout_em, args.dropout_rnn, args.dropout_cl, args.tied).to(device) criterion = nn.CrossEntropyLoss(reduction='none') optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate, momentum=0.9) scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=args.reduce_rate) ############################################################################### # Training code ############################################################################### def train(): # Turn on training mode which enables dropout.