
如何快速上手多模态情感分析五种文本图像融合方案完整详解【免费下载链接】Multimodal-Sentiment-Analysis多模态情感分析——基于BERTResNet的多种融合方法项目地址: https://gitcode.com/gh_mirrors/mu/Multimodal-Sentiment-AnalysisMultimodal-Sentiment-Analysis 是一个多模态情感分析开源项目输入一句文本加一张图片输出该样本的情感类别。它把 BERT 和 ResNet50 两个骨干模型融合起来内置 5 种融合策略适合用来理解多模态情感分析里不同融合方式的效果差异。一条评论加一张图它能判断出什么情感想象这个场景用户在电商页面留下一句评论和一张晒图你想判断他到底是满意、无感还是不满。这个项目做的就是这件事——文本和图片各走一条骨干网络默认文本模型是 roberta-base图像侧是 ResNet50两条特征流融合后再分成三个情感类别。它的产出很具体训练时只在 output/ 目录下保留验证集准确率最高的那份权重中间结果不占地方在测试集上跑一遍每个样本预测出的情感标签会写进 output/test.txt五种融合策略自带准确率对照OTE把两条输出特征当 token 送进 Transformer最高 74.6%NaiveCombine73.6%和 HSTEC73.1%紧随其后所以它既能当一条完整的情感分析流水线用也是对比融合方法的现成素材 四步上手多模态情感分析装依赖、放数据、训练、出结果把仓库克隆到本地git clone https://gitcode.com/gh_mirrors/mu/Multimodal-Sentiment-Analysis安装依赖pip install -r requirements.txt。注意版本是锁死的torch 1.8.2、transformers 4.18如果你机器上环境较新可能需要适当调整版本数据准备train.txt和test_without_label.txt是入口清单原始图文数据要先解压到 data/data/ 目录里。数据集不在仓库中需要自行下载首次训练以效果最好的 OTE 为例python main.py --do_train --epoch 10 --text_pretrained_model roberta-base --fuse_model_type OTE想只训文本或只训图像加上--text_only或--img_only即可。训练结束后再执行python main.py --do_test --fuse_model_type OTE --text_pretrained_model roberta-base --load_model_path 你的模型路径预测结果就落在 output/test.txt 里 模块职责地图数据流、融合模型、训练评估三条线怎么分工数据流data/ utils/utils/DataProcess.py 是这条线的核心Processor 类管标签编码、解码和指标计算utils/APIs/ 下四个小文件各司其职APIDataset 搭数据集、APIEncode 做图像预处理、APIMetric 算准确率、APIDecode 把 logits 变回标签utils/common.py 负责读取数据、切分默认留 20% 做验证和保存。改动 encode 里样本的文本、图像组装方式后所有融合模型的输入都会跟着变务必跑一遍训练脚本验证。融合模型Models/五个文件各实现一种融合思路——NaiveCatModel 直接拼接两条特征NaiveCombineModel 做轻量组合CMACModel 用交叉注意力让文本与图像互相看HSTECModel 把隐层状态送进 Transformer 融合OTEModel 则把两条输出特征当 token 序列处理。每个文件里都自带 BERT 和 ResNet 两个分支的子模型。想加自己的融合方式新建一个文件再到 main.py 的 if-elif 分发里登记一下就行三种主流结构长这样训练与评估main.py Trainer.py Config.pymain.py 解析命令行、按--fuse_model_type导入对应融合模型并决定走训练还是测试分支Trainer.py 管训练、验证、预测三个循环只在验证准确率刷新历史最好时才更新落盘权重Config.py 是全部超参的唯一来源命令行只覆盖其中最常用的几项。配置参数速查最常调的参数改了会发生什么参数都在Config.py里部分可被命令行参数覆盖参数默认值改了会发生什么learning_rate3e-5可用--lr覆盖调大收敛快但容易震荡调小更稳但训练更慢epoch20训练轮数加大会耗时更多且可能过拟合fuse_model_typeNaiveCombine切换融合策略训练与测试时必须一致否则权重无法加载bert_nameroberta-base换 Hugging Face 文本骨干首次运行会自动下载新模型loss_weight[1.68, 9.3, 3.36]对三个情感类别加权、平衡样本数改标签集合时要同步num_labelstrain_paramsbatch_size 16调大一轮内更多样本、速度更快但吃显存调小反之bert_learning_rate/resnet_learning_rate5e-6控制两个骨干网络被重新调校的力度冻结骨干时应再调低 上手前有两个提醒原始数据集不在仓库里记得先下载并解压到 data/data/否则训练一开始就会报文件缺失依赖版本偏旧新环境遇到兼容性问题时优先升级 torch 和 transformers 而不是改代码。延伸方向上最值钱的实验是把五种融合策略各训一遍对比验证准确率再分别跑一次--text_only和--img_only看看多模态相对单模态到底强在哪——这正是这个仓库的精华所在。【免费下载链接】Multimodal-Sentiment-Analysis多模态情感分析——基于BERTResNet的多种融合方法项目地址: https://gitcode.com/gh_mirrors/mu/Multimodal-Sentiment-Analysis创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考