多模态情绪识别系统,实验遇到的问题总结

按照老师要求进行第一次实验,第一次跑实验的论文题目:
A proposal for Multimodal Emotion Recognition using aural transformers and Action Units on RAVDESS dataset
论文地址:https://www.mdpi.com/2076-3417/12/1/327
代码:对应的代码地址
跑实验过程中,首先遇到的问题就是环境安装过程中遇到的问题,其次就是在跑代码过程中遇到的问题,我将依次记录下来,方便以后回忆自己跑第一个模型遇到的过程。

1. 环境安装过程中的问题

  • 问题1描述:在进行实验前,按照 requirement.txt 进行安装所需要的包,requirement.txt 中需要翻墙安装 transformers 。

解决问题1的方法:将 requirement.txt 中的 transformers 删掉了,就可以正常运行安装其他的包。
![在这里插入图片描述](https://img-blog.csdnimg.cn/1f8e63af812847c2bc624ba2da5e0fd2.png

  • 问题2描述:在安装包的过程中,我又遇到了下面这个问题,安装 numpy 1.22.0 版本要求 python 版本必须是大于等于 3.8 的。
    解决问题2的方法:在 anaconda 中,新建一个 python 虚拟环境,版本大于等于 3.8。
    在这里插入图片描述
  • 问题3描述:包版本出现冲突,实验所需环境中的包版本与本来就有的包版本不一致,产生了冲突;
    解决问题3的方法: 方案一: 将所有包的版本去掉; 方案二: 将产生冲突的包的版本依次更新;
    在这里插入图片描述
  • 问题4描述:安装 transformers 出现的错误,命令错误如下图所示:
    解决问题4的方法:由于命令错误,只需要使用正确命令即可。正确命令:pip3 install transformers
    在这里插入图片描述

2. 运行代码过程中遇到的问题

  • 问题1描述:我直接使用图中所给命令,出现了如下错误,导致的原因是包版本不兼容导致的。
    解决问题1的方法:使用 conda update huggingface_hub 这条命令,更新一下这个库。打开 Github 的 transformers 在源代码中搜索这个加载不到的 CommitOperationAdd 。可以看到它位于 huggingface_hub 代码包中,继续在源代码中搜索这个 huggingface_hub 可以看到它是一个第三方包,尝试更新一下包,问题就得到了解决。
    在这里插入图片描述
  • 问题2描述:由于路径没有写对,加上添加的环境变量出错,所以导致了这个错误。
    解决问题2的方法:由于 python 是以启动解释器的路径为 base 而不是代码的位置为 base ,所以要先搞清楚其他参数的路径。第一步,把下面这行命令中的参数写正确;第二个就是解决其他参数的路径。
python3 MMEmotionRecognition/src/Audio/FineTuningWav2Vec/main_FineTuneWav2Vec_CV.py 
--audios_dir <RAVDESS_dir>/audios_16kHz --cache_dir MMEmotionRecognition/data/Audio/cache_dir 
--out_dir <RAVDESS_dir>/FineTuningWav2Vec2_out
--model_id jonatasgrosman/wav2vec2-large-xlsr-53-english

问题2的错误如下:
在这里插入图片描述
其路径解决办法,如下图所示,在原来代码的基础之上添加几行 sys.path.append(),便于找到其他参数正确路径:
在这里插入图片描述

  • 问题3描述:在解决了上面的问题1和问题2之后,以为没有错了,没想到又出现了如下错误
    解决问题3的方法:经过JY同学的指导,在他的帮助下,进行修改,代码就没有问题了。他说,是因为 CTCTrain 中它没有 use_amp 这个属性,就打开了 CTCTrain.py 发现 CTCTrain 这个类继承的 Transformers 下的 Train ,可能因为其他原因导致这里不能继承到 Transformers 中的 Train 的属性 use_amp 这个属性。
    在这里插入图片描述
    解决问题3的方案:将原来的 if self.use_amp: 改为 if Ture: ,下面的 self.use_amp 伴随着修改为 if True,即可解决该问题。
    在这里插入图片描述
  • 问题4描述:刚把上面的问题都解决了,结果刚运行它又出现了 内存溢出 的问题。
    解决问题4的方法:在 main_FineTunewav2vec_cv.py 中添加一行代码,用于指定某一块 GPU 运行该模型。
os.environ['CUDA_VISIBLE_DEVICES'] = '3'
  • 问题5描述:就在我进行微调中评估的时候,我又遇到了新的问题,总是告诉我没有这个 src 模块,我看明白了这个错误,意思是我的路径导入错误,需要对将这个路径正确导入。
    解决问题5的方法:在 Wav2VecEval.py 中,添加了一行 sys.path,insert(0, 项目所在的路径)。同时修改一下,在 42 行处,改为 from MMEmotionRecognition.src.Audio.FineTuningWav2Vec.Wav2VecAuxClasses import * ,修改过后,即可解决此问题。
    在这里插入图片描述
    紧接着 Wav2VecEval.py 中,又报了一个错误,说没有 checkpoint-1300 ,此时需要手动进行修改,按照自己的需要手动修改每个 fold 中的 0,1,2,3,4。
    在这里插入图片描述
    提示:这里因为我使用的这个远程容易掉线,在大佬的指导下,他建议我每次跑模型的时候使用离线,意思是服务器只要开着,它就可以跑模型,我这边远程完全不影响。在进行正式跑之前,加上 nohup 命令(通常情况下使用在训练的时候,因为训练的时候比较长)如下图命令行所示,通用的命令:
nohup 原来命令 >> 日志名.log 2>&1 &

我们可以在日志中查看整个模型运行的情况,下图就是第一次使用该命令,瞬间觉得这个命令非常好用,自己本地没有远程连接的情况之下,也可以离线跑模型,很 nice 。
在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值