训练结束后,可以使用验证集观察模型的训练效果。
from tqdm import tqdm_notebook as tqdm cls.eval() correct = 0 total = 0 for batch_idx, (data, target) in enumerate(tqdm(eval_loader)): data = data.to(device) target = target.long().to(device) mask = [] for sample in data: mask.append([1 if i != 0 else 0 for i in sample]) mask = torch.Tensor(mask).to(device) output = cls(data, attention_mask=mask) pred = predict(output) correct += (pred == target).sum().item() total += len(data) # 准确率应该达到百分之 90 以上 print(\'正确分类的样本数:{},样本总数:{},准确率:{:.2f}%\'.format( correct, total, 100.*correct/total))训练结束后,还可以随意输入一些数据,直接观察模型的预测结果。
test_samples = [\'东西很好,好评!\', \'东西不好,差评!\'] cls.eval() tokenized_text = [tokenizer.tokenize(i) for i in test_samples] input_ids = [tokenizer.convert_tokens_to_ids(i) for i in tokenized_text] input_ids = torch.LongTensor(input_ids).cuda() mask = torch.ones_like(input_ids).to(device) output = cls(input_ids, attention_mask=mask) pred = predict(output) pred 总结本次中,我们首先学习了统计式语言模型和神经网络语言模型,然后从神经网络语言模型引入了词向量,并最终学习了可以生成基于上下文的词向量的语言表示模型 BERT。接下来,介绍了 BERT 的结构和它的两个预训练阶段任务,并观察了预训练结果。最后使用使用 Fine-Tuning 方法应用 BERT 进行完整的情感分类任务。