该仓库储存了做此次实验所有相关的代码和数据
环境依赖已经列在 requirements.txt 中了,使用
pip install -r requirements.txt
|-- 1.py # 处理压缩包
|-- data.zip # 本次实验原始数据的压缩包(因为超过了限制就没传上去)
|-- deal_data.py # 处理解压后的原始数据
|-- checkpoints #文件夹,用来保存在运行过程中的模型
|-- datasets #文件夹,用来放置deal_data处理后的文件
|-- data #原始数据
|-- dev.json #处理后的验证集
|-- test_without_label.txt #需要预测的标签文件
|-- test.json # 处理后的测试集
|-- train.json #处理后的训练集
|-- Model # 所有模型
|-- ImageModel.py #图像模型
|-- MultiModel1.py #方法一的多模态模型
|-- MultiModel2.py #方法二的多模态模型
|-- MultiModel3.py #方法三的多模态模型
|-- MultiModel4.py #方法四的多模态模型
|-- MultiModel5.py #方法五的多模态模型
|-- TextModel.py #文本模型
|-- pre_model # 预训练模型Roberta
|-- config.json
|-- merges.txt
|-- pytorch_model.bin #(因为超过了限制就没传上去)
|-- tockenizer.json
|-- vocab.json
|-- config.py # 实验中所需要的参数
|-- data_utils.py # 处理数据为符合模型的形式
|-- function.py # 训练、验证、预测、画图等辅助函数
|-- main.py # 主函数(训练、预测、画图一条龙)
|-- requirements.txt # 环境依赖
|-- test_with_label.txt # 预训练模型Roberta
|-- README.md # 本文件
(因为文件受大小限制,需手动在huggingface上下载Roberta的文件 pytorch_model.bin 到pre_model文件夹)
先配置环境依赖:
pip install -r requirements.txt
- 如果datasets文件夹为空,在根目录下只拥有data.zip压缩包,那么先依次运行
python 1.py
python deal_data.py
-
如果datasets文件夹有以上文件,则可以开始直接运行模型
消融实验(仅文本0.7137)
python main.py --model_name MultiModel1 --choose_class text --lr 2e-5 --hidden_size 1000 --middle_hidden_size 500 --epoch 3
消融实验(仅图像)
python main.py --model_name MultiModel1 --choose_class img --lr 2e-5 --hidden_size 1000 --middle_hidden_size 500 --epoch 3
多模态试验(有五个方法)
# 模型一——0.7325 python main.py --model_name MultiModel1 --lr 1e-5 --hidden_size 1000 --middle_hidden_size 500 --epoch 3 # 模型二——0.6019 python main.py --model_name MultiModel2 --lr 1e-5 --hidden_size 1000 --middle_hidden_size 500 --epoch 3 # 模型三——0.7475 python main.py --model_name MultiModel3 --lr 9e-6 --hidden_size 1000 --middle_hidden_size 500 --epoch 3 # 模型四——0.7037 python main.py --model_name MultiModel4 --lr 1e-5 --hidden_size 1000 --middle_hidden_size 500 --epoch 5 # 模型五——0.7025 python main.py --model_name MultiModel5 --lr 1e-5 --hidden_size 1000 --middle_hidden_size 500 --epoch 3
--model_name (MultiModel1、MultiModel2、MultiModel3、MultiModel4、MultiModel5)
--choose_class (text、img、multi)
--epoch
--batch_size
--dropout
--hidden_size
--middle_hidden_size
...
Model | ACC |
---|---|
方法一:简单特征拼接 | 0.7325 |
方法二:加上自注意力层 | 0.6019 |
方法三:在方法二基础上对特征用transformerencoder封装 | 0.7475 |
方法四:对特征使用交叉注意力机制 | 0.7037 |
方法五:交叉注意力机制+文本特征拼接 | 0.7025 |
仅Text | 0.7173 |
---|---|
仅Img | 0.6388 |
多模态情感分析vistanet实践:https://zhuanlan.zhihu.com/p/345713441
self-cross-attention:https://github.com/smartcameras/SelfCrossAttn
图文匹配:https://zhuanlan.zhihu.com/p/565986474
vistanet代码实现:https://github.com/PreferredAI/vista-net