VisionMamba复现-手把手教你安装Causal-Conv1d和Mamba-ssm

基础环境配置

CUDA==11.8 #好像 Causal-Conv1d 和 Mamba-ssm 支持的最低CUDA版本就是11.8

python==3.9.0

pytorch==2.2.0

torchaudio==2.2.0

torchvision==0.17.0

Causal-Conv1d安装

通常pip install causal-conv1d==1.0.0会遇到各种各样的问题,建议下载源码安装,步骤如下:

git clone https://github.com/Dao-AILab/causal-conv1d.git
cd causal-conv1d
git checkout v1.0.0

git checkout v1.0.0 这一步是切换causal-conv1d的版本,建议去官网看一下causal-conv1d的版本对应的cuda和torch版本以免版本对应不上。

官网连接:

Releases · Dao-AILab/causal-conv1dicon-default.png?t=O83Ahttps://github.com/Dao-AILab/causal-conv1d/releases然后执行:

CAUSAL_CONV1D_FORCE_BUILD=TRUE pip install .

 最后的 . 要有。

Mamba-ssm安装

与Causal-Conv1d的安装一样,直接下载源码安装:

git clone https://github.com/state-spaces/mamba.git
cd mamba
git checkout v1.0.1

 同样这里建议看一下Mamba-ssm对应的cuda和torch版本,官网连接:

Releases · state-spaces/mamba · GitHubicon-default.png?t=O83Ahttps://github.com/state-spaces/mamba/releases

这里要修改一下源码

setup.py中修改:

FORCE_BUILD = os.getenv("MAMBA_FORCE_BUILD", "FALSE") == "FALSE"
SKIP_CUDA_BUILD = os.getenv("MAMBA_SKIP_CUDA_BUILD", "FALSE") == "FALSE"

mamba_ssm/ops/selective_scan_interface.py 中修改:

第一步:注释掉一个import语句

# import selective_scan_cuda

第二步:将下面两个函数

def selective_scan_fn(u, delta, A, B, C, D=None, z=None, delta_bias=None, delta_softplus=False,
                     return_last_state=False):
    """if return_last_state is True, returns (out, last_state)
    last_state has shape (batch, dim, dstate). Note that the gradient of the last state is
    not considered in the backward pass.
    """
    return SelectiveScanFn.apply(u, delta, A, B, C, D, z, delta_bias, delta_softplus, return_last_state)
 
 
def mamba_inner_fn(
    xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,
    out_proj_weight, out_proj_bias,
    A, B=None, C=None, D=None, delta_bias=None, B_proj_bias=None,
    C_proj_bias=None, delta_softplus=True
):
    return MambaInnerFn.apply(xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,
                              out_proj_weight, out_proj_bias,
                              A, B, C, D, delta_bias, B_proj_bias, C_proj_bias, delta_softplus)

改为:

def selective_scan_fn(u, delta, A, B, C, D=None, z=None, delta_bias=None, delta_softplus=False,
                     return_last_state=False):
    """if return_last_state is True, returns (out, last_state)
    last_state has shape (batch, dim, dstate). Note that the gradient of the last state is
    not considered in the backward pass.
    """
    return selective_scan_ref(u, delta, A, B, C, D, z, delta_bias, delta_softplus, return_last_state)
 
def mamba_inner_fn(
    xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,
    out_proj_weight, out_proj_bias,
    A, B=None, C=None, D=None, delta_bias=None, B_proj_bias=None,
    C_proj_bias=None, delta_softplus=True
):
    return mamba_inner_ref(xz, conv1d_weight, conv1d_bias, x_proj_weight, delta_proj_weight,
                              out_proj_weight, out_proj_bias,
                              A, B, C, D, delta_bias, B_proj_bias, C_proj_bias, delta_softplus)
 

 然后执行:

pip install .

通常这种方式安装Causal-Conv1d和Mamba-ssm都会非常顺利,但要注意Causal-Conv1d和Mamba-ssm与cuda和torch的版本对应,还有他们之间的版本对应。


(Windows傻瓜教程)Mamba安装以及问题汇总(Causal-Conv1d & Mamba-ssm)_windows mamba-CSDN博客

Win10 下 Vision Mamba(Vim-main)的环境配置(libcuda.so文件无法找到,windows系统运行失败)_vim mamba-CSDN博客

### 复现运行 Vision Mamba 项目的指南 #### 创建并激活 Python 虚拟环境 为了确保开发环境中不会与其他项目发生冲突,建议先创建一个新的 Conda 环境来专门用于 Vision Mamba复现工作。通过指定特定版本的 Python 来初始化这个新环境可以有效减少潜在兼容性问题。 ```bash conda create -n mamba python=3.10.13 conda activate mamba ``` #### 安装依赖项 进入目标文件夹 `Vision-Mamba/mamba-1p1p1` 后,需更新本地安装包以匹配最新源码更改。这一步骤对于修正可能存在的 bug 或者性能优化至关重要。具体操作涉及覆盖现有库文件: ```bash cd Vision-Mamba/mamba-1p1p1 cp -rf mamba_ssm /path/to/your/anaconda3/envs/mamba/lib/python3.10/site-packages/ ``` 注意:上述 `/path/to/your/` 需要被实际路径所替代,可以通过执行 `conda env list` 命令查找当前活跃环境下 Anaconda 的确切位置[^4]。 #### 解决常见错误 如果遇到类似于 `bimamba_type` 错误提示,则可能是由于某些必要的软件包缺失所致。此时应考虑增加额外的支持模块,比如卷积神经网络组件 `causal_conv1d`: ```bash pip install -e causal_conv1d>=1 ``` 此命令会从 PyPI 下载并安装满足条件最低版本号以上的扩展工具集,从而帮助修复程序逻辑上的缺陷。 #### 开始训练过程 完成以上准备工作之后便可以直接调用预定义脚本启动模型训练流程了。通常情况下,在克隆下来的仓库根目录内会有详细的 README 文件指导后续步骤;如果没有的话,默认做法是寻找名为 `train.py` 或类似的入口点来进行下一步处理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值