Ubuntu24.04.1系统下VideoMamba环境配置

server/2024/10/18 22:34:06/

文章目录

  • 前言
  • 第一步:基本的环境创建
  • 第二步:causal-conv1d和mamba_ssm库的安装
  • 第三步:安装requirements.txt


前言

VideoMamba环境的配置折磨了我三天,由于Mamba对Cuda的版本有要求,因此配置环境的时候Cuda版本以及各种包的版本问题是最需要注意的,下面我来一步一步的演示如何配好VideoMamba模型的运行环境。

第一步:基本的环境创建

创建python版本为3.10.13的conda环境,在这里我将环境命名为videomamba

conda create -n videomamba python=3.10.13

激活创建的环境。

conda activate videomamba

然后安装版本为11.8CUDA

conda install cudatoolkit==11.8 -c nvidia

安装版本2.1.1pytorch

pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118

安装版本为11.8cuda-nvcc库。

conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc

第二步:causal-conv1d和mamba_ssm库的安装

大多数的教程都是直接pip安装这两个库,但是直接安装的方式基本不可能安装成功,所以采用离线安装的方式来装。

pip install causal-conv1d
pip install mamba_ssm

首先下载用于离线安装causal-conv1dwhl文件,下载链接: causal-conv1d
在这里我下载的是causal_conv1d-1.1.3+cu118torch2.1cxx11abiFALSE-cp310-cp310-linux_x86_64.whl,好像mamba环境对这个报的版本的要求不是很苛刻,只要保证包的版本高于1.1.0就行,但是还是建议和我的版本保持一致。
然后下载用于离线安装mamba_ssmwhl文件,下载链接: mamba_ssm,在这里,我下载的是mamba_ssm-1.1.1+cu118torch2.1cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
然后安装两个whl

pip install causal_conv1d-1.1.3+cu118torch2.1cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
pip install mamba_ssm-1.1.1+cu118torch2.1cxx11abiFALSE-cp310-cp310-linux_x86_64.whl

注意在这里安装的mamba_ssm的环境运行videomamba代码是会报错的,所以我们需要把videomamba代码中的mamba文件夹下的mamba_ssm文件夹替换到我们配置的python环境中,具体如下:
首先我们去anaconda3/envs/videomamba/lib/python3.10/site-packages/找到mamba_ssm文件夹,然后删除它
接着,我们将VideoMamba-main/mamba下的mamba_ssm文件复制到anaconda3/envs/videomamba/lib/python3.10/site-packages/,这样我们的环境就配好了,其中VideoMamba-mainvideomamba的github上的项目名。

第三步:安装requirements.txt

这里两个特别需要注意的两个包:apex==0.1xformers==0.0.24
对于apex包,我们直接使用pip安装会失败,所以也需要离线安装,下载链接: apex。
然后手动安装

python setup.py install

对于xformers==0.0.24包,官方给的requirements.txt文件中的版本是0.0.24,但是安装0.0.24的包会自动将我们安装的torch包更新为2.2版本的,导致配的环境出现问题,因此我们需要安装0.0.23版本的包,这样就不会更新torch包了。
将原始的requirements.txt文件中的xformers==0.0.24改为xformers==0.0.23,然后直接安装就行了。

pip install -r requirements.txt

http://www.ppmy.cn/server/125234.html

相关文章

嵌入式单片机底层原理详解

前言 此笔记面向有C语言基础、学习过数字电路、对单片机有一定了解且尚在学习阶段的群体编写,笔记中会介绍单片机的结构、工作原理,以及一些C语言编程技巧,对于还停留在复制模板、copy代码阶段的读者会有比较大的帮助,待学习完成后可以独立完成几乎所有单片机的驱动开发。 …

【Golang】深入解读Go语言中的错误(error)与异常(panic)

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

如何使用PyInstaller将Python脚本及其配置文件打包成Windows可执行的exe文件

PyInstaller是一个强大的工具,它可以将Python应用程序转换为独立的可执行文件,这对于分发和部署Python应用非常有用。本文将指导你如何使用PyInstaller将一个包含多个导入模块和配置文件的Python脚本打包成Windows系统的exe文件。 步骤 1: 安装 PyInsta…

python数据分析与可视化需要掌握哪些知识点

在Python中进行数据分析与可视化,需要掌握一系列相关的库、工具和概念。以下是一些核心知识点: 1. Python基础知识 变量、数据类型、运算符控制流(if语句、循环)函数定义与调用模块与包的导入 2. NumPy 数组对象和数组运算统计…

CSS-Day2

CSS 列表 无序列表 ul - 列表项标记用特殊图形(如小黑点、小方框等)有序列表 ol - 列表项的标记有数字或字母ul.a {list-style-type:circle;}ul.b {list-style-type:square;}ol.c {list-style-type:upper-roman;} ol.d {list-style-type:lower-alpha;} …

《Linux从小白到高手》理论篇(七):Linux的时间管理运行级别启动过程原理详解

List item 本篇将介绍Linux的时间管理&运行级别相关知识,并将深入介绍Linux的启动过程及原理。 Linux的时间管理 Linux 时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称 RTC)时钟。系统时…

Vue 自定义组件实现 v-model 的几种方式

前言 在 Vue 中,v-model 是一个常用的指令,用于实现表单元素和组件之间的双向绑定。当我们使用原生的表单元素时,直接使用 v-model 是很方便的,但是对于自定义组件来说,要实现类似的双向绑定功能就需要一些额外的处理…

golang学习笔记13-函数(二):init函数,匿名函数,闭包,defer

注:本人已有C,C,Python基础,只写本人认为的重点。 这个知识点基本属于go的特性,比较重要,需要认真分析。 一、init函数 每个文件都可以定义init函数,它会在main函数执行前被调用,无论它的定义…