thuiar / MMSA

MMSA is a unified framework for Multimodal Sentiment Analysis.
MIT License
634 stars 104 forks source link

关于使用MMSA_test()的问题 #99

Open zhanxingluan opened 5 months ago

zhanxingluan commented 5 months ago

您好,我在使用了MMSA_run训练ef_lstm模型后得到了一个pth文件,我想用自己的视频进行测试,在使用MMSA_FET之后得到了单视频的pkl文件,请问我要如何使用MMSA_test()函数进行测试?我看APIs里没有对MMSA_test()的测试用例。

zhanxingluan commented 5 months ago

我使用了MSA_FET的库进行了数据集的特征提取,再输入到MMSA_run中进行运行,我在对数据集的特征提取和对于测试视频的特征提取用的是同一个配置文件,但我还是无法使用MMSA_test来测试。请问是为什么?以下是我的代码: run_dataset( config='./config2.json', dataset_dir = 'ch-simsv2s', out_file = './SIMSv2.pkl', tmp_dir='./.MMSA-FET/tmp', log_dir='./.MMSA-FET/log', num_workers = 4 ) 模型训练代码: config = get_config_tune('ef_lstm', 'sims') config['custom_feature'] = './SIMSv2.pkl' MMSA_run('ef_lstm','sims',config=config)

测试视频特征提取代码: vidiofile是视频文件路径,cleaned_result是语言识别后的文字 fet = FeatureExtractionTool(config="./config2.json", tmp_dir='./.MMSA-FET/tmp', log_dir='./.MMSA-FET/log') feature = fet.run_single(in_file=vidiofile, out_file="outputpkl/test.pkl",text=cleaned_result)

这是使用MMSA_test的代码:myef_lstm-simsv2.pth是训练完模型后的模型文件 config = get_config_tune('ef_lstm', 'sims') MMSA_test(config=config,weights_path='./myef_lstm-simsv2.pth',feature_path='./outputpkl/test.pkl') 这是我的config2.json配置: { "audio": { "tool": "opensmile", "sample_rate": 16000, "args": { "feature_set": "eGeMAPSv02", "feature_level": "LowLevelDescriptors", "start": null, "end": null } }, "video": { "tool": "openface", "fps": 10, "multiFace": { "enable": false, "device": "cuda:0", "facedetScale": 0.25, "minTrack": 10, "numFailedDet": 10, "minFaceSize": 1, "cropScale": 0.4 }, "average_over": 1, "args": { "hogalign": false, "simalign": false, "nobadaligned": false, "landmark_2D": true, "landmark_3D": false, "pdmparams": false, "head_pose": false, "action_units": true, "gaze": false, "tracked": false } }, "text": { "model": "bert", "device": "cpu", "pretrained": "models/bert-base-chinese", "args": {} } }

Alan-capro commented 5 months ago

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

zhanxingluan commented 4 months ago

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

Alan-capro commented 4 months ago

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

您好,想问一下测试视频维度和数据集的不一致您是怎么解决的呀,走的步骤和你的都一样,是输入视频的问题吗?期待您的回复,万分感谢!

Alan-capro commented 4 months ago

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

您好,想问一下测试视频维度和数据集的不一致您是怎么解决的呀,走的步骤和你的都一样,是输入视频的问题吗?期待您的回复,万分感谢!

我的报错是类似这样子, size mismatch for Model.audio_subnet.linear_1.weight: copying a param with shape torch.Size([32, 25]) from checkpoint, the shape in current model is torch.Size([16, 25]). size mismatch for Model.audio_subnet.linear_1.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([16]). size mismatch for Model.audio_subnet.linear_2.weight: copying a param with shape torch.Size([32, 32]) from checkpoint, the shape in current model is torch.Size([16, 16]). size mismatch for Model.audio_subnet.linear_2.bias: copying a param with shape torch.Size([32]) from checkpoint, the shape in current model is torch.Size([16]). size mismatch for Model.audio_subnet.linear_3.weight: copying a param with shape torch.Size([32, 32]) from checkpoint, the shape in current model is torch.Size([16, 16]).,都是一半的样子 Duplicate of #

zhanxingluan commented 4 months ago

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

您好,想问一下测试视频维度和数据集的不一致您是怎么解决的呀,走的步骤和你的都一样,是输入视频的问题吗?期待您的回复,万分感谢!

我是通过pycharm的调试功能进行查看的,类似下面的代码: image 这是你打开测试视频的pkl文件的数据,其中红框框起来的就是你测试视频的不同模态维度: image 这是你打开数据集的数据,其中红框框起来的就是数据集的不同模态的维度: image 对两个维度进行对比,要完全相同才能把测试视频的pkl文件输入到模型中,如果不同就需要看看数据集的特征提取方法,修改config.json文件。

Alan-capro commented 4 months ago

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

您好,想问一下测试视频维度和数据集的不一致您是怎么解决的呀,走的步骤和你的都一样,是输入视频的问题吗?期待您的回复,万分感谢!

我是通过pycharm的调试功能进行查看的,类似下面的代码: image 这是你打开测试视频的pkl文件的数据,其中红框框起来的就是你测试视频的不同模态维度: image 这是你打开数据集的数据,其中红框框起来的就是数据集的不同模态的维度: image 对两个维度进行对比,要完全相同才能把测试视频的pkl文件输入到模型中,如果不同就需要看看数据集的特征提取方法,修改config.json文件。

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

您好,想问一下测试视频维度和数据集的不一致您是怎么解决的呀,走的步骤和你的都一样,是输入视频的问题吗?期待您的回复,万分感谢!

我是通过pycharm的调试功能进行查看的,类似下面的代码: image 这是你打开测试视频的pkl文件的数据,其中红框框起来的就是你测试视频的不同模态维度: image 这是你打开数据集的数据,其中红框框起来的就是数据集的不同模态的维度: image 对两个维度进行对比,要完全相同才能把测试视频的pkl文件输入到模型中,如果不同就需要看看数据集的特征提取方法,修改config.json文件。

您好,想问下只要维度相同了就可以是嘛?我用您的方法对比了下,视频提取的特征维度和数据集提取出来的是一样的,如图所示: 1 这是我提区的视频的特征 audio text vision 测试的代码和config等都是使用的您第一个提问中的代码,只是把ef_lstm换成了tfn,但是却还是出现了那些报错

zhanxingluan commented 4 months ago

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

您好,想问一下测试视频维度和数据集的不一致您是怎么解决的呀,走的步骤和你的都一样,是输入视频的问题吗?期待您的回复,万分感谢!

我是通过pycharm的调试功能进行查看的,类似下面的代码: image 这是你打开测试视频的pkl文件的数据,其中红框框起来的就是你测试视频的不同模态维度: image 这是你打开数据集的数据,其中红框框起来的就是数据集的不同模态的维度: image 对两个维度进行对比,要完全相同才能把测试视频的pkl文件输入到模型中,如果不同就需要看看数据集的特征提取方法,修改config.json文件。

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

您好,想问一下测试视频维度和数据集的不一致您是怎么解决的呀,走的步骤和你的都一样,是输入视频的问题吗?期待您的回复,万分感谢!

我是通过pycharm的调试功能进行查看的,类似下面的代码: image 这是你打开测试视频的pkl文件的数据,其中红框框起来的就是你测试视频的不同模态维度: image 这是你打开数据集的数据,其中红框框起来的就是数据集的不同模态的维度: image 对两个维度进行对比,要完全相同才能把测试视频的pkl文件输入到模型中,如果不同就需要看看数据集的特征提取方法,修改config.json文件。

您好,想问下只要维度相同了就可以是嘛?我用您的方法对比了下,视频提取的特征维度和数据集提取出来的是一样的,如图所示: 1 这是我提区的视频的特征 audio text vision 测试的代码和config等都是使用的您第一个提问中的代码,只是把ef_lstm换成了tfn,但是却还是出现了那些报错

我后来使用了作者提供的SIMS的数据集,不是v2的,配置如下: image image image 可能能解决您的问题。

GilgamishW commented 4 months ago

@Alan-capro 你好,请问你的问题解决了吗?我也出现了相同的问题

haikunzhang95 commented 1 month ago

我使用了MSA_FET的库进行了数据集的特征提取,再输入到MMSA_run中进行运行,我在对数据集的特征提取和对于测试视频的特征提取用的是同一个配置文件,但我还是无法使用MMSA_test来测试。请问是为什么?以下是我的代码: run_dataset( config='./config2.json', dataset_dir = 'ch-simsv2s', out_file = './SIMSv2.pkl', tmp_dir='./.MMSA-FET/tmp', log_dir='./.MMSA-FET/log', num_workers = 4 ) 模型训练代码: config = get_config_tune('ef_lstm', 'sims') config['custom_feature'] = './SIMSv2.pkl' MMSA_run('ef_lstm','sims',config=config)

测试视频特征提取代码: vidiofile是视频文件路径,cleaned_result是语言识别后的文字 fet = FeatureExtractionTool(config="./config2.json", tmp_dir='./.MMSA-FET/tmp', log_dir='./.MMSA-FET/log') feature = fet.run_single(in_file=vidiofile, out_file="outputpkl/test.pkl",text=cleaned_result)

这是使用MMSA_test的代码:myef_lstm-simsv2.pth是训练完模型后的模型文件 config = get_config_tune('ef_lstm', 'sims') MMSA_test(config=config,weights_path='./myef_lstm-simsv2.pth',feature_path='./outputpkl/test.pkl') 这是我的config2.json配置: { "audio": { "tool": "opensmile", "sample_rate": 16000, "args": { "feature_set": "eGeMAPSv02", "feature_level": "LowLevelDescriptors", "start": null, "end": null } }, "video": { "tool": "openface", "fps": 10, "multiFace": { "enable": false, "device": "cuda:0", "facedetScale": 0.25, "minTrack": 10, "numFailedDet": 10, "minFaceSize": 1, "cropScale": 0.4 }, "average_over": 1, "args": { "hogalign": false, "simalign": false, "nobadaligned": false, "landmark_2D": true, "landmark_3D": false, "pdmparams": false, "head_pose": false, "action_units": true, "gaze": false, "tracked": false } }, "text": { "model": "bert", "device": "cpu", "pretrained": "models/bert-base-chinese", "args": {} } }

您好,有一些有关使用MMSA_test()的问题想请教您,方便告知一下QQ或者WeChat么?

haikunzhang95 commented 1 month ago

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

您好,想问一下测试视频维度和数据集的不一致您是怎么解决的呀,走的步骤和你的都一样,是输入视频的问题吗?期待您的回复,万分感谢!

我是通过pycharm的调试功能进行查看的,类似下面的代码: image 这是你打开测试视频的pkl文件的数据,其中红框框起来的就是你测试视频的不同模态维度: image 这是你打开数据集的数据,其中红框框起来的就是数据集的不同模态的维度: image 对两个维度进行对比,要完全相同才能把测试视频的pkl文件输入到模型中,如果不同就需要看看数据集的特征提取方法,修改config.json文件。

@zhanxingluan 同学您好,请问您解决这个问题了吗?我在提取特征进行测试上也有类似的问题,请问能加个vx交流一下吗,我的电话是18801037156,谢谢!

最后是解决了,以下是我的解决方法: 1.不要用ef_lstm模型进行训练,我用ef_lstm模型训练得到的权重文件无法输入到MMSA_test中,后来换成了 tfn的模型就能输入了。 2.检查输入的测试视频各模态维度和数据集的是否一致,可以通过打开两个pkl文件进行检查。

您好,想问一下测试视频维度和数据集的不一致您是怎么解决的呀,走的步骤和你的都一样,是输入视频的问题吗?期待您的回复,万分感谢!

我是通过pycharm的调试功能进行查看的,类似下面的代码: image 这是你打开测试视频的pkl文件的数据,其中红框框起来的就是你测试视频的不同模态维度: image 这是你打开数据集的数据,其中红框框起来的就是数据集的不同模态的维度: image 对两个维度进行对比,要完全相同才能把测试视频的pkl文件输入到模型中,如果不同就需要看看数据集的特征提取方法,修改config.json文件。

您好,想问下只要维度相同了就可以是嘛?我用您的方法对比了下,视频提取的特征维度和数据集提取出来的是一样的,如图所示: 1 这是我提区的视频的特征 audio text vision 测试的代码和config等都是使用的您第一个提问中的代码,只是把ef_lstm换成了tfn,但是却还是出现了那些报错

我后来使用了作者提供的SIMS的数据集,不是v2的,配置如下: image image image 可能能解决您的问题。

您好,您使用图示的config提取SIMSv2的特征及测试视频后面都运行正常了对么?