MISA代码配置运行

news2024/11/24 13:29:02

MISA源码github链接:click here

IDE: Pycharm专业版2022.2.2 python3.8

一、创建虚拟环境:

  • 尝试

源码中给了environment.yml,可以用以下命令创建,但可能是由于某些库的版本问题,尝试失败。

conda env create -f environment.yml
  • 执行

最终选择新建一个虚拟环境,命名为MISA ,再依次导入相关包。

##创建虚拟环境MISA,指定Python版本为3.8
conda create -n MISA python=3.8

##激活虚拟环境
conda activate MISA

在创建的虚拟环境下安装Pytorch及对应的CUDA:见另一篇博客

pip list 查看虚拟环境下的安装的库的版本:

在这里插入图片描述

Pytorch、cuda版本:
在这里插入图片描述

将源码在Pycharm中打开:
在这里插入图片描述

二、下载数据集:

github的源码解读中给出:

Data Download

    Install CMU Multimodal SDK. Ensure, you can perform from mmsdk import mmdatasdk.
    Option 1: Download pre-computed splits and place the contents inside datasets folder.
    Option 2: Re-create splits by downloading data from MMSDK. For this, simply run the code as detailed next.

安装CMU多模态SDK。确保您可以执行from mmsdk import mmdatasdk。
选项1:下载预先计算的数据集拆分,并将内容放置在数据集文件夹中。
选项2:通过从MMSDK下载数据重新创建数据集拆分。为此,请按照下面详细说明的代码运行。

1.下载安装CMU Multimodal SDK 并在Windows环境下进行配置:

1.1.下载
原链接已经失效,找到了新的:click here
下载并解压缩,记住存放的路径!
在这里插入图片描述1.2.anaconda环境配置(Windows系统下)

官方github的readme中写了需要配置环境,但该命令是基于linux系统,windows系统需要按照以下步骤设置。

  • 步骤1:在anaconda的虚拟环境
    路径下的Lib\site-packages,创建一个文本文档,命名为’mypkpath‘,在该文档中添加上一步的SDK路径,保存之后将文件后缀改为“pth”。

在这里插入图片描述在这里插入图片描述

  • 步骤2:用下面的命令安装mmsdk的依赖包:
pip install h5py validators tqdm numpy argparse requests
  • 步骤3:因为win10和Linux的文件路径分隔符不同,所以这里要修改mmsdk里的文件:

修改文件1:路径如下

..\CMU-MultimodalSDK-main\mmsdk\mmdatasdk\computational_sequence\download_ops.py

在文档最后修改为:(read和URL中间加一个’_')
在这里插入图片描述

修改文件2:和上一个文件同级的不同文件:computational_sequence.py

..\CMU-MultimodalSDK-main\mmsdk\mmdatasdk\computational_sequence\computational_sequence.py

文档第68行左右,把分隔符从’os.sep’改为’/':
在这里插入图片描述步骤4:启动conda的虚拟环境,导入mmsdk包验证是否安装成功,没报错就安装成功

from mmsdk import mmdatasdk as md

create_dataset.py文件 导入mmsdk语句没有报错!

在这里插入图片描述

2.下载预先计算的数据集拆分

接下来有两种选择:选项1和选项2。这里使用选项1——直接下载预先计算的数据集拆分,并将内容放置在数据集文件夹中。
下载链接:click here

有两个数据集:MOSEI和MOSI
在这里插入图片描述选项2:直接运行代码,会下载csd文件到数据集文件夹下,再进行计算,生成选项1中的数据集拆分,因此选项1比较容易。

放置到项目中路径如下:
在这里插入图片描述

3.下载glove file

下载链接:click here
在这里插入图片描述

并将config.py里的word_emb_path改为上诉路径:
在这里插入图片描述

三、运行

做完上述工作后,检查src文件的所有.py文件,看画波浪线标红的模块导入语句,哪里标红,就下载相应的库,在cmd中切换到虚拟环境pip安装,记忆里几个比较重要的库:transformers、h5py、numpy、validators、scipy、scikit-learn、tqdm等。

运行train.py文件
此项目在windows系统和Linux系统分别进行了配置!
过程中遇到了几个问题:

1.在Linux系统的大服务器上配置CMU Multimodal SDK,直接把该文件夹下的mmsdk文件夹放到src文件夹下,就能确保from mmsdk import …语句不出错。
在这里插入图片描述

  1. 报错:RuntimeError: ‘lengths’ argument should be a 1D CPU int64 tensor, but got 1D cuda:0 Long tensor
    解决办法:在torch\nn\utils\rnn.py 第244行附近修改:
    data, batch_sizes = \
        _VF._pack_padded_sequence(input, lengths, batch_first)
改成

   data, batch_sizes = \
        _VF._pack_padded_sequence(input, lengths.cpu(), batch_first)
  1. solver.py文件中torch.save 保存模型到checkpoint文件夹,在Linux系统可以正常运行,生成如下文件:
    图1在这里插入图片描述

在Windows系统会报错,{self.train_config.name}识别不了,无法生成对应的文件,并保存到checkpoints文件夹下,最后只能把{self.train_config.name}去掉,才能正常运行:
在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/725285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

协议分层与OSI参考模型【图解TCP/IP(笔记三)】

文章目录 协议分层与OSI参考模型协议的分层理解协议的分层OSI参考模型OSI参考模型中各个分层的作用 协议分层与OSI参考模型 协议的分层 OSI参考模型将通信协议中必要的功能分成了7层。通过这些分层,使得那些比较复杂的网络协议更加简单化。 在这一模型中&#xf…

Python_字典包含关系判定方法

Python中的字典是一种无序的数据结构,它由键和对应的值组成 在实际编程中我们经常需要判断一个字典是否包含另一个字典的所有键值对 本文将介绍一种种简单而有效的方法来判定字典之间的包含关系。 a {"a": 1, "b": 2, "c": 3, &q…

zabbix 应用(贼详细!)

目录 一:添加 zabbix 客户端主机 1、关闭防火墙,修改主机名 2、服务端和客户端都配置时间同步 ​3、服务端和客户端都设置 hosts 解析 4、设置 zabbix 的下载源,安装 zabbix-agent2 5、修改 agent2 配置文件 6、启动 zabbix-agent2 7、 在…

OpenCV读取一张8位无符号单通道图像并显示

#include <iostream> #include <opencv2/imgcodecs.hpp> #include <opencv2/opencv.hpp> #include

XXX汽车SAP ERP系统接口提速,助力生产物流业务数据快速处理(投稿数字化月报一)

XXX汽车ERP系统中数据量第一大接口-生产订单下达接口&#xff0c;一直是ESB总线重点关注的重要接口。从2019年项目初发给MOM生产、LES物流系统到现在&#xff0c;下游接收系统已经增加到15个之多。针对该接口下达数据缓慢的情况&#xff0c;SAP项目开发团队攻坚克难&#xff0c…

购买上帝的男孩——好文分享

购买上帝的男孩——好文分享 一个小男孩捏着1美元硬币&#xff0c;沿街一家一家商店地询问&#xff1a;“请问您这儿有上帝卖吗&#xff1f;”店主要么说没有&#xff0c;要么嫌他在捣乱&#xff0c;不由分说就把他撵出了店门。 天快黑时&#xff0c;第二十九家商店的店主热情…

QtMqtt —— 3、搭建Mqtt服务,修改QMqtt源码进行消息订阅测试(附源码)

效果 搭建EMQX即Mqtt服务 为了调试程序,我们需要一台MQTT服务器。EMQ公司官方提供了测试的MQTT服务器,但由于连接数众多,不太稳定,我们需要自己搭建一台MQTT服务器。 官网下载EMQX 启动:      1. 下载 emqx-5.1.1-windows-amd64.zip ,解压      2. 命令行下进入…

UE4 实现控制场景中所有物体透明度功能

本文会讲解如何利用材质参数集简单的实现修改场景中所有物体透明度的功能&#xff0c;讲解地图为第三人称地图 1.创建材质变量集&#xff0c;这里面新建的变量可以在蓝图中控制&#xff0c;这样就能很方便的修改透明度 因为透明度是只有一个值的参数所以创建scalar参数&#x…

Kafka入门,分区的分配再平衡(二十)

分区的分配以及再平衡 1、kafka有四种主流的分区策略&#xff1a;Range,RoundRobin,Sticky,CooperativeSticky。可以通过配置参数partition.assignment.strategy,修改分区的分配策略。默认策略是RanageCooperativeSticky。Kafka可以同事使用多个分区分配策略。 参数描述heartb…

【组合数学 or 枚举】逆序对

C-逆序对_Wannafly挑战赛6 (nowcoder.com) 题意&#xff1a; 思路&#xff1a; 组合数学&#xff0c;无非两种做法&#xff0c;一种是计数DP&#xff0c;另一种是组合数 DP显然不可能&#xff0c;那就组合数 考虑组合数的时候可以把这道题变成一个枚举题 我们去枚举位&…

Android shader编译原理

作者&#xff1a;tmaczhang 1. 什么是着色器编译卡顿&#xff1f; 着色器是在 GPU&#xff08;图形处理单元&#xff09;上运行的代码。当 Flutter 渲染的 Skia 图形后端首次看到新的绘制命令序列时&#xff0c;它有时会生成和编译一个自定义的 GPU 着色器用于该命令序列。使得…

JAVA对象转xml(支持递归生成复杂数据类型)

前言 调用一些soap协议的项目你或许使用的到&#xff0c;也许我是在造轮子&#xff0c;但是我没在网上找到合适的轮子&#xff0c;就根据现有的项目自己造了一个&#xff0c;废话不说&#xff0c;说思路 使用反射获取对象的属性&#xff0c;根据属性的类型做出相应的处理&…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器控制的预取和利用HBM扩展内存层次(七)

优化九&#xff1a;编译器控制的预取以减少丢失惩罚或丢失率 硬件预取的替代方案是编译器在处理器需要数据之前插入预取指令来请求数据。 预取有两种类型&#xff1a; ■ 寄存器预取将值加载到寄存器中。 ■ 高速缓存预取仅将数据加载到高速缓存。 这两种类型都可以分为有错…

k8s对象操作的了解

一&#xff1a;什么是Kubernetes对象 Kubernetes对象指的是Kubernetes系统的持久化实体&#xff0c;所有这些对象合起来&#xff0c;代表了你集群的实际情况。常规的应用里&#xff0c;我们把应用程序的数据存储在数据库中&#xff0c;Kubernetes将其数据以Kubernetes对象的形…

unity+pico neo3入门教程

安装unity&#xff0c;教程如下&#xff1a;unity2021安装教程 安装pico的SDK:: https://developer-cn.pico-interactive.com/ 有入门教程&#xff1a;导入 SDK - PICO 开发者平台 注册后组织&#xff0c;创建应用learntest&#xff0c;如下 下载SDK。下载最新版&#xff…

旧固态硬盘复制到新固态硬盘多出一个分区怎么办?

朋友电脑只有512G而且只有一个硬盘口&#xff0c;然后就买了一款1T硬盘&#xff0c;去店里回来之后发现多出一个分区&#xff0c;无法直接在系统里合并 这时候我们就需要下载第三方软件&#xff0c;删除多余分区&#xff0c;扩展C盘 软件下载链接&#xff1a; DiskGenius.rar…

Stable Diffusion 用插件管理NNN个模型

当初步涉足 Stable Diffusion&#xff0c;可能会被各种新概念和模型搞得头大。好比我们作为新晋的魔法师&#xff0c;需要理解如何巧妙使用各种法师装备——也就是这些模型&#xff0c;以更好地应对问题&#xff0c;发挥出最大效果。 要了解一个被称为 safetensors 的概念。这…

TRACE请求造成XSS

漏洞描述 远端WWW服务支持TRACE请求。RFC 2616介绍了TRACE请求&#xff0c;该请求典型地用于测试HTTP协议实现。 漏洞危害 攻击者利用TRACE请求&#xff0c;结合其它浏览器端漏洞&#xff0c;有可能进行跨站脚本攻击&#xff0c;获取敏感信息&#xff0c;比如cookie中的认证信…

如何用思维导图规划旅行

又到了一年一度的旅游旺季&#xff0c;旅游是一件令人愉悦又放松的事情。合理的规划旅游不仅可以保证旅行的顺利进行。还可以帮助我们提前了解旅游地的信息&#xff0c;比如当地的民俗、文化、天气等等。特别的正值旅游旺季的时候&#xff0c;一份合理的规划&#xff0c;可以帮…

【IMX6ULL - LOGO替换】uboot阶段替换打印的开发板Logo教程

替换Board: I.MX6U VSTC,将其显示为Board: I.MX6U ALIENTEK (1)修改 uboot/board/freescale/mx6ullevk 路径下的 mx6ullevk.c 文件内容: int checkboard(void) {if (is_mx6ull_9x9_evk())puts(