Win和Linux的状态空间模型安装教程

目录

一、Linux系统安装

二、Win系统安装

1)、安装causal_conv1d

1、第一种方法

2、第二种方法(感觉可靠)

3、第三种方法:直接下载大神编译好的文件进行安装

2)、安装mamba-ssm

1、第一种方法

2、第二种方法:直接下载大神编译好的文件进行安装


一、Linux系统安装

如果自己的系统不是cuda11.8,那么需要先创建一个新环境来安装对应的cuda版本:

conda create -n your_env_name python=3.10.13
conda activate your_env_name
conda install cudatoolkit==11.8 -c nvidia
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc
conda install packaging

如果已经是对应的cuda11.8版本了,就可以直接安装mamba了:

git clone https://github.com/Dao-AILab/causal-conv1d.git 
cd causal-conv1d 
git checkout v1.2.0 # 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.2.0 # current latest version tag
MAMBA_FORCE_BUILD=TRUE pip install .

有一些教程写了两中安装(我们按照上面的来即可,这里只是记录下):

pip install . # 方式一,下载whl安装,两种方式选择一个即可
MAMBA_FORCE_BUILD=TRUE pip install . # 方式二,强制在本地编译安装,Win 下无法识别此命令

注意:安装过程可能比较长,耐心等待即可。另外,以上是基于conda环境安装的。

下面是一些注意事项参考:

pip check numpy #检查numpy在当前环境中的兼容性
conda search cudatoolkit --info #查看当前源中可用的cuda版本
conda install cudatoolkit==11.8 -c nvidia #调一个cuda安装,版本号要写完整
conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc # 要安装对应的cudnn

最直接的安装,可以利用网友配置好的Docker环境 -> 直接使用Mamba基础环境docker镜像。
DockHub仓库地址:https://hub.docker.com/repository/docker/kom4cr0/cuda11.7-pytorch1.13-mamba1.1.1/general
代码:docker pull kom4cr0/cuda11.7-pytorch1.13-mamba1.1.1:1.1.1

参考:conda环境内安装cuda 和 Mamba的安装

二、Win系统安装

安装系统要求:cuda11.8、python3.10

同样的,如果cuda版本不对应,需要在虚拟环境中安装(创建虚拟环境并且安装cudatoolkit==11.8,这样在虚拟变量中会额外有一个cuda版本(比较便捷),后面的cuda-nvcc一定要加,不然当前虚拟环境可能找不到对应的cuda版本):

conda create -n your_env_name python=3.10.13
conda activate your_env_name
conda install cudatoolkit==11.8 -c nvidia
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
conda install -c "nvidia/label/cuda-11.8.0" cuda-nvccconda install packaging

关于win系统的安装,首先安装Triton,这个是linux系统,但是有人编译好了:triton-2.0.0-cp310-cp310-win_amd64.whl

注意:安装前没有packaging的需要先安装(还有Triton也是):

conda install packaging

安装完成后,安装causal_conv1dmamba

1)、安装causal_conv1d

安装该文件网上有几种方法,下面我将一一展示,可以尝试一下(最后一种必定成功):

1、第一种方法

 下载文件:causal-conv1d

将setup.py文件中的代码进行修改:

FORCE_BUILD = os.getenv("CAUSAL_CONV1D_FORCE_BUILD", "FALSE") == "TRUE"
SKIP_CUDA_BUILD = os.getenv("CAUSAL_CONV1D_SKIP_CUDA_BUILD", "FALSE") == "TRUE"
# For CI, we want the option to build with C++11 ABI since the nvcr images use C++11 ABI
FORCE_CXX11_ABI = os.getenv("CAUSAL_CONV1D_FORCE_CXX11_ABI", "FALSE") == "TRUE"# 修改为:
FORCE_BUILD = os.getenv("CAUSAL_CONV1D_FORCE_BUILD", "FALSE") == "FALSE"
SKIP_CUDA_BUILD = os.getenv("CAUSAL_CONV1D_SKIP_CUDA_BUILD", "FALSE") == "FALSE"
# For CI, we want the option to build with C++11 ABI since the nvcr images use C++11 ABI
FORCE_CXX11_ABI = os.getenv("CAUSAL_CONV1D_FORCE_CXX11_ABI", "FALSE") == "FALSE"

然后cmd执行下面命令:

pip install .
2、第二种方法(感觉可靠)

在git(没有的话在git_download中进行下载)进行安装,因为在windows terminal中识别不到命令行:

CAUSAL_CONV1D_FORCE_BUILD=TRUE pip install .

按照这个步骤安装causal-conv1d应该不是什么大问题

3、第三种方法:直接下载大神编译好的文件进行安装

下载连接:causal_conv1d-1.1.1-cp310-cp310-win_amd64

下载后,直接在cmd中pip安装即可:

pip install causal_conv1d-1.1.1-cp310-cp310-win_amd64.whl

2)、安装mamba

安装该文件网上有几种方法,下面我将一一展示,可以尝试一下(最后一种必定成功):

1、第一种方法

下载mamba:Mamba SSM

在mamba源码的 setup.py 修改配置:

FORCE_BUILD = os.getenv("MAMBA_FORCE_BUILD", "FALSE") == "TRUE"
SKIP_CUDA_BUILD = os.getenv("MAMBA_SKIP_CUDA_BUILD", "FALSE") == "TRUE"# 修改为:
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 进行修改(有些教程没有这一步,可以自己尝试是否有必要):

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 isnot 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 isnot 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)

然后直接mamba文件下进行安装即可:

pip install .
2、第二种方法:直接下载大神编译好的文件进行安装

下载连接:mamba_ssm-1.2.0.post1-py3-none-any

下载后,直接在cmd中pip安装即可:

pip install mamba_ssm-1.2.0.post1-py3-none-any.whl

参考:Mamba安装、Mamba 环境

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

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

相关文章

wondershaper 一款限制 linux 服务器网卡级别的带宽工具

文章目录 一、关于奇迹整形器二、文档链接三、源码下载四、限流测试五、常见报错1. /usr/local/sbin/wondershaper: line 145: tc: command not found2. Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist: No URLs.. 一、关于奇迹整形…

Memcached:高性能分布式缓存系统的奥秘解锁

在高并发的互联网应用场景中,缓存系统的作用至关重要。它可以显著提高系统的响应速度,减轻数据库的压力。在众多缓存技术中,Memcached以其简单、高效、稳定的特性脱颖而出,成为了全球众多互联网公司的选择。本文将为您全面揭秘Mem…

Langchain中使用Ollama提供的Qwen大模型进行Function Call实现天气查询、网络搜索

Function Call,或者叫函数调用、工具调用,是大语言模型中比较重要的一项能力,对于扩展大语言模型的能力,或者构建AI Agent,至关重要。 Function Call的简单原理如下: 按照特定规范(这个一般是L…

vue跨域问题,请注意你的项目是vue2还是vue3

uniapp跨域设置了,但还是有问题 uniapp设置代理后还是无法请求后端接口vue2项目设置代理vue3项目设置代理 uniapp设置代理后还是无法请求后端接口 如果你在possman,apifox上测试接口都没有问题,但是在hbuild项目中设置代理后,还是…

多尺度特征提取:原理、应用与挑战

多尺度 多尺度特征提取:原理、应用与挑战**原理****应用****挑战****总结** 多尺度特征提取:原理、应用与挑战 在计算机视觉、自然语言处理和信号处理等领域,有效地捕捉和解析数据的多种尺度特性是至关重要的。多尺度特征提取是一种技术&…

数据治理:让数据提取更高效、更准确的关键

数据治理:让数据提取更高效、更准确的关键 在数字化浪潮的推动下,数据已成为企业运营和决策的重要基石。然而,单纯的数据堆积并不能带来实际的业务价值,关键在于如何高效、准确地提取并利用这些数据。而数据治理,作为…

融资融券有哪些交易技巧,两融利率现在最低多少?4.0%!

融资融券交易技巧 授信额度技巧 当我们账户净资产有显著增长时,最好主动申请增加信用额度,这样在后面行情好转入资金需要进行更多融资融券交易时就不会受限于授信额度,避免因为临时申请增加额度而错过交易机会。 买入委托技巧 现金的折算率…

小孟再接盲盒小程序,3天开发完!

大家好,我是程序员小孟。 前面开发了很多的商业的单子,私活联盟的小伙伴慢慢的逐渐搞自己的产品。 前面的话,开发了盲盒小程序,最近又接了一款盲盒小程序。因为前面有开发过,所以我们的成本也少了很多。 盲盒小程序…

一个基于MySQL的数据库课程设计的基本框架

数据库课程设计(MySQL)通常涉及多个步骤,以确保数据库的有效设计、实现和维护。以下是一个基于MySQL的数据库课程设计的基本框架,结合参考文章中的相关信息进行整理: ### 一、引言 * **背景**:简要介绍为…

走进Elasticsearch

什么是ES 是一个分布式、RESTful风格的搜索和数据分析引擎 中文参考文档: 《Elasticsearch中文文档》 | Elasticsearch 技术论坛 elasticSearch官网: Functions and Operators | Elasticsearch Guide [7.11] | Elastic查询方式 Kibana查询(原…

2024.6.17 作业 xyt

今日作业: 升级优化自己应用程序的登录界面。 要求: 1. qss实现 2. 需要有图层的叠加 (QFrame) 3. 设置纯净窗口后,有关闭等窗口功能。 4. 如果账号密码正确…

代码随想录算法训练营刷题复习4 :单调栈

单调栈 单调栈 如果题目出现典型的 【左小 中大(栈中左侧元素都比此值小) || 右小】(寻找右侧第一个比此值小的元素) 【左大 中小(栈中左侧元素都比此值大) || 右大】(寻找右侧第一个比此值大的元素) 数据关系的话,可…

Marin说PCB之orcad-capture原理图封装库的创建总结----01

今天是个不错的日子,我早上一出门刚骑车到半路就开始下大雨了,可是天气预报上明明说的没有雨啊,所以说天气预报就像是女人的脾气一样,难以揣摩啊,也尽量少去揣摩吧。 小编我刚刚到公司,就收到美国分部同事J…

【C语言】排序算法 -------- 计数排序

个人主页 创作不易,感谢大家的关注! 文章目录 1. 计数排序的概念2. 计数排序使用场景3. 计数排序思想4. 计数排序实现过程5. 计数排序的效率6. 总结(附源代码) 1. 计数排序的概念 计数排序是一种非比较的排序算法,其…

分享三款AI智能修图工具,超实用!

随着AI技术的飞速发展,图像处理领域正经历着一场颠覆性的革新。如今,众多繁琐的图像处理任务,诸如修图、抠图以及高清修复等,均可以借助先进的AI技术实现自动化处理。相较于传统的人工操作,AI图像工具不仅极大地提升了…

3d中毒了打不开模型怎么办---模大狮模型网

3D中毒了打不开模型怎么办?这是很多3D爱好者都会遇到的问题。在使用3D建模软件时,有时会出现打不开模型的情况,这可能是由于软件本身的问题,也可能是由于电脑配置不够高导致的。下面我们就来看看如何解决这个问题。 首先&#xff…

新手学习yolov8目标检测小记1

一、复现 网上有很多教程,复现yolov8的目标检测。在复现的过程中,会用到模型yolov8n.pt,可以选择命令下载和网站下载。复现后,runs文件包下会生成最优的权重文件best.py,在ultralytics/assets中放一张图片,…

探索未来通信的新边界:AQChat一款融合AI的在线匿名聊天

探索未来通信的新边界:AQChat一款融合AI的在线匿名聊天 在数字时代,即时通讯变得无处不在,但隐私和性能仍旧是许多用户和开发者关注的焦点。今天,我要介绍一个开创性的开源项目 —— AQChat,它不仅重定义了在线匿名聊…

Ollama+Open WebUI本地部署Llama3 8b(附踩坑细节)

先展示一下最终结果,如下图所示: 1. 添加环境变量 在下载 ollama 之前,先去配置环境变量,确保模型下载到我们想要的地方 win10 和 win11 输入path或者环境变量: 增加系统环境变量 变量名不可更改,必须是O…

[ARM-2D 专题]3. ##运算符

C语言的宏系统相当强大,它允许使用##符号来处理预处理期的文本替换。这种用法被称为标记连接(token pasting)操作,其结果是将两个标记紧紧地连接在一起,而省略掉它们之间的所有空格。在复杂的宏定义中,运用…