直接上本人的环境代码
# 1. 创建自己的虚拟环境
conda create -n VMamba python=3.10.13
conda activate VMamba
# 2. cuda-11.8
conda install cudatoolkit==11.8 -c nvidia
# 3. torch torchvision torchaudio 与 官网命令一致
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
# 4. nvcc
conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc
# 5. packaging
conda install packaging
# 6.openlab环境
pip install mmcv==2.1.0 -f https://download.openmmlab.com/mmcv/dist/cu118/torch2.1/index.html
pip install mmengine==0.10.1
pip install mmdet==3.3.0 mmsegmentation==1.2.2 mmpretrain==1.2.0
# 7. causal-conv1d== & mamba-ssm==1.1.1
pip install causal-conv1d==1.1.1
pip install mamba-ssm==1.1.3.post1
# 8. Vim
git clone https://github.com/hustvl/Vim.git
# 9. Vim 环境依赖
pip install -r vim/vim_requirements.txt
# 10. 更换mamaba1p1p/mamba/ 至 mamba-ssm
## 删除原环境里的mamba_ssm文件夹
rm -rf "/home/[usr_name]/miniconda/envs/VMamba/lib/python3.10/site-packages/mamba_ssm/"
## Vim下mamba_ssm文件夹替换进去
cp -r "/home/[usr_name]/Vim/mamba-1p1p1/mamba_ssm" "/home/[usr_name]/miniconda/envs/VMamba/lib/python3.10/site-packages/"
其中 causal-conv1d 和 mamba-ssm我是pip安装成功了,不过失败的可以进行源码安装
git clone https://github.com/Dao-AILab/causal-conv1d.git
cd causal-conv1d
git checkout v1.1.1 # current latest version tag
CAUSAL_CONV1D_FORCE_BUILD=TRUE pip install .
cd ..
git clone https://github.com/state-spaces/mamba.git
cd mamba
git checkout v1.1.1 # current latest version tag
pip install . # 方式一,下载whl安装,两种方式选择一个即可
MAMBA_FORCE_BUILD=TRUE pip install . # 方式二,强制在本地编译安装,Win 下无法识别此命令
不行的话可以看看这篇文章Mamba 环境安装踩坑问题汇总及解决方法找找自己的错误,或许有帮助
我查看我的mamba-ssm version是1.2.1 post,会报错,而vim中mamba-ssm是1.1.1,这样包是兼容的,所以一定要把虚拟环境中的mamba-ssm替换成vim中的mamba-ssm,否则运行测试代码会报如下错误:
TypeError: causal_conv1d_fwd(): incompatible function arguments.
测试代码
import torch
from mamba_ssm import Mamba
batch, length, dim = 2, 64, 16
x = torch.randn(batch, length, dim).to("cuda")
model = Mamba(
# This module uses roughly 3 * expand * d_model^2 parameters
d_model=dim, # Model dimension d_model
d_state=16, # SSM state expansion factor
d_conv=4, # Local convolution width
expand=2, # Block expansion factor
).to("cuda")
y = model(x)
assert y.shape == x.shape
print("VMamba install successful!!!")
控制台打印VMamba install successful!!!
表示环境安装成功!