TR5:Transformer实战文本分类

发布于:2024-12-08 ⋅ 阅读:(214) ⋅ 点赞:(0)

一、实验目的

  • 理解文中代码逻辑并成功运行
  • 根据自己的理解对代码进行调优,使准确率达到70%

二、实验环境

  • 语言环境:python 3.8
  • 编译器:Jupyter notebook
  • 深度学习环境:Pytorch
    • torch==2.1.0+cu118
    • torchvision==0.16.0+cu118

三、准备工作

注意环境安装,torch、torchtext的版本需要匹配。
torch2.1.0+cu118
torchvision
0.16.0+cu118
torchaudio2.1.0+cu118
pip install torchtext
0.16.0

四、实验结果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

五、代码调优

要将模型的准确率提高,可以考虑以下几种方法调整:

1. 调整模型超参数

  • 学习率 (Learning Rate):可能需要调整学习率,过高或过低的学习率都会影响模型的收敛速度和效果。可以尝试在代码中降低或增加学习率。
  • 隐藏层大小 (Hidden Size): 增加隐藏层的大小或增加网络层数可能会提升模型的表达能力。
  • 批次大小 (Batch Size): 调整批次大小,可以尝试增加或减少 batch_size 看看效果。

2. 增加训练轮数

增加训练轮数 (epochs) 可以让模型有更多时间去学习和调整参数,但要注意过拟合风险。

3. 正则化

  • 添加 Dropout 层可以防止模型过拟合,从而提升模型的泛化能力。
  • L2 正则化:在优化器中添加权重衰减。

4. 数据增强

增加数据量或通过数据增强技术生成更多的训练数据。数据多样性通常能提高模型的泛化能力。

5. 使用更复杂的模型架构

可以尝试使用更复杂的模型架构,如双向 LSTM、GRU 或 Transformer 模型,这些模型在处理序列数据上可能表现更好。

6. 调优损失函数

如果当前损失函数表现不好,可以考虑更改损失函数或在现有损失函数上加入自定义的调整。

7. 检查数据集

确保数据集中标签分布合理且没有错误数据。如果数据不平衡,可能需要进行重采样或使用加权损失函数。

8. 实验与调参

通过实验观察不同参数和方法的组合对模型性能的影响,找到最合适的设置。

这些方法可以单独或组合使用以提高模型的准确率。首先可以从增加训练轮次和调整学习率开始,然后再逐步尝试增加模型的复杂度和使用正则化方法。调优是一个反复实验的过程,需要根据实验结果不断调整。

对于该次提高准确率达到70%,可以增加训练轮数,对上面的代码,将EPOCHS从10调整到100后:

在这里插入图片描述

六、总结

本周主要学习了如何使用Transformer完成文本分类任务,更加深入地了解了Transformer模型。开始模型在测试集上的准确率只有56.82%,后期通过调整EPOCH使得测试集准确率达到76.69%。


网站公告

今日签到

点亮在社区的每一天
去签到