赞
踩
1.数据集介绍
(1)下载地址
https://multibench.readthedocs.io/en/latest/start/datadownload.html
(2)模态介绍
模态有3种(语言,视觉,声音),数据集使用的是已对齐原始raw数据特征。
(3)标签介绍
既有情感标注又有情绪标注。情感标注是对每句话的7分类的情感标注,作者还提供了了2/5/7分类的标注。情绪标注是包含高兴,悲伤,生气,恐惧,厌恶,惊讶六个方面的情绪标注。数据集是多标签特性,即每一个样本对应的情绪可能不止一种,对应情绪的强弱也不同,在[-3~3]之间。
(4)融合方式
AEF:在AEF方法中,使用三个编码器(encoders),然后使用GRU和MLP模型构建了头部(head),并使用直接拼接的方法进行融合。接着,通过训练函数对数据进行训练。最后,通过加载训练好的模型并进行测试。
AEFT:在AEFT方法中,同样使用使用三个编码器(encoders),并使用Transformer和MLP模型构建了头部,并使用直接拼接的方法进行融合。同样,通过训练函数对数据进行训练,并指定了相应的参数。最后,加载训练好的模型并进行测试。
(5)评价标准
平均绝对误差(MAE)、Pearson相关性(Corr)、二元精度(Acc-2)、F-Score(F1)和多级精度(Acc-7)范围从-3到3。对于除MAE以外的所有指标,相对较高的值表示较好的任务性能。本质上,提出了两种不同的方法来测量Acc-2和F1。在第一种,负类的标注范围为[-3,0),而非负类的标注范围为[0,3]。第二种,负类和正类的范围分别为[-3,0)和(0,3]。
2.代码示例
- def init_argparse():
- import argparse
- parser = argparse.ArgumentParser(description="多模态情感分析")
- parser.add_argument("--path", type=str, default='data/MOSI/mosi_raw.pkl', help="数据路径")
- parser.add_argument("--fusion_method", type=str, default='AEF', help="融合方法")
- parser.add_argument("--batch_size", type=int, default=128, help="训练时的批大小")
- parser.add_argument("--num_workers", type=int, default=0, help="子进程数量")
- parser.add_argument("--data_type", type=str, default='mosi', help="要加载的数据类型")
- parser.add_argument("--max_seq_len", type=int, default=50, help="最大序列长度")
- parser.add_argument("--optimizer", type=str, default='AdamW', help="优化器")
- parser.add_argument("--epochs", type=int, default=300, help="训练轮数")
- parser.add_argument("--lr", type=float, default=0.001, help="学习率")
- parser.add_argument("--weight_decay", type=float, default=1e-5, help="权重衰减")
- parser.add_argument("--save", type=str, default='best.pt', help="权重保存名字")
- parser.add_argument("--seed", type=int, default=1234, help="随机种子")
3.运行结果
以CMU-MOSI为例,使用AEF和AEFT方法在测试集上的结果如下:
AEF 方法
AEFT方法
4.完整代码获取
https://mp.weixin.qq.com/s/EgsUE9cq16aaTHgipMZeGg
最后:
如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。