print('Done !') ### Load dataset print('Load dataset ... ', end='') d_train = TextDataset(word2idx, fp_train_labeled, train=True) d_val = TextDataset(word2idx, fp_train_labeled, train=True, val=True) train_loader = DataLoader(d_train, batch_size=batch_size, shuffle=True) val_loader = DataLoader(d_val, batch_size=batch_size, shuffle=False) ### Train model print('Train LSTM ... ') model = LSTMClassifier(embedding_dim, hidden_dim, num_layers, batch_size) model.init_weights() model.embedding.weight = torch.nn.Parameter(torch.Tensor(word2vec.wv.syn0)) model.embedding.weight.requires_grad = False model.cuda() print(model) criterion = nn.NLLLoss() optimizer = optim.Adam( filter(lambda p: p.requires_grad, model.parameters())) for epoch in range(4): train(epoch, model, criterion, optimizer, train_loader) validate(epoch, model, val_loader) print('Done !')