def train_epoch(self, X, y, show_bar=True):
optimizer = optim.Adam(self.parameters())
if show_bar:
bar = Progbar(len(X))
for ix, (elem, tags) in enumerate(zip(X, y)):
self.zero_grad()
sentence, feature_vector, sentence_markers = self.get_sentence_feature_vector(elem)
if self.GPU:
targets = torch.LongTensor(tags).cuda()
else:
targets = torch.LongTensor(tags)
neg_log_likelihood = self.neg_log_likelihood(sentence, feature_vector, targets)
neg_log_likelihood.backward()
optimizer.step()
if show_bar:
bar.update(ix + 1)
if show_bar:
print ''
sys.stdout.flush()
评论列表
文章目录