mamba_ssm和causal-conv1d详细安装教程

1.前言

Mamba是近年来在深度学习领域出现的一种新型结构,特别是在处理长序列数据方面表现优异。在本文中,我将介绍如何在 Linux 系统上安装并配置 mamba_ssm 虚拟环境。由于官方指定mamba_ssm适用于 PyTorch 版本高于 1.12 且 CUDA 版本大于 11.6 的环境。本示例中,我们使用的是 Python 3.8、PyTorch 2.2.2 和 CUDA 11.8,此外,我们还将安装 mamba_ssm 1.1.3 和 causal-conv 1.1.3。

由于官方给出的whl文件仅支持Linux系统,因此本文也是基于LInux系统的操作!!!

2.准备工作

  • 操作系统:Linux 系统(以Ubuntu为例)

  • PyTorch 版本:2.2.2

  • CUDA 版本:11.8

  • Python 版本:3.8

  • mamba_ssm:1.1.3

  • causal-conv:1.1.3

3.安装流程

3.1. 创建虚拟环境

首先,我们需要创建一个虚拟环境来安装依赖包。我们将使用 Python 3.8 创建环境,并命名为 Mamba_py38。

conda create -n Mamba_py38 python=3.8

激活新创建的虚拟环境:

conda activate Mamba_py38

3.2. 安装 GPU 版本的 PyTorch

接下来,我们将安装适用于 CUDA 11.8 的 PyTorch 2.2.2 版本。可以去Pytorch官方网站中复制安装指令。(过程可能有点慢,安装不成功可以多尝试几次)

conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=11.8 -c pytorch -c nvidia

3.3. 安装 mamba_ssm 和 causal-conv

由于这两个包直接pip install安装不能实现,我们将下载它们的 .whl 文件,并使用 pip 离线安装。

步骤:

3.3.1.下载 mamba_ssm 和 causal-conv 的 .whl 文件(不想下载的也可以私信我,直接发你whl文件)。

  • 访问 mamba_ssm release page 和 causal-conv release page,这里我选择的都是1.1.3的版本,注意一定要保证这两个包的版本一致!!!

点击蓝色链接就会自动下载whl文件
点击蓝色链接就会自动下载whl文件
  • 选择与你的环境兼容的 .whl 文件,这里我的环境中装的是Python 3.8、PyTorch 2.2.2 和 CUDA 11.8。

cu118表示cuda11.8,torch2.2表示pytorch2.2,cp38表示python3.8

下载好的两个whl文件

3.3.2.使用 pip 离线安装这两个包:

首先要在终端进入到两个whl文件所在的路径,比如现在两文件的目录是:/home/zp/mfb/app_app/。

我需要在终端输入:cd mfb/app_app/

终端指令

接着就分别安装:pip install +文件名

pip install causal_conv1d-1.1.3+cu118torch2.2cxx11abiFALSE-cp38-cp38-linux_x86_64.whl

pip install mamba_ssm-1.1.3+cu118torch2.2cxx11abiFALSE-cp38-cp38-linux_x86_64.whl

4. 安装必要的包

我们还需要安装一些常用的 Python 库,确保我们的开发环境中具备绘图、数据处理等功能。以下是所需包及其版本(都已经验证过与环境适配):

pip install matplotlib==3.7.0 
pip install numpy==1.24.3 
pip install pandas==1.2.0 
pip install tensorboard==2.14.0 
pip install einops==0.8.1

5.总结

通过上述步骤,已经成功创建了一个可以使用Mamba的虚拟环境。

# 测试 
from causal_conv1d import causal_conv1d_fn, causal_conv1d_updatefrom mamba_ssm.ops.triton.selective_state_update import selective_state_update

有时间会更新安装视频,敬请期待!

撰写不易,喜欢的话,赞同收藏点赞支持下吧!

有问题私信或评论,看到会第一时间回复!

关注我,持续更新科研学习过程中遇到的问题!

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

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

相关文章

【MySQL】表的基本操作

??表的基本操作 文章目录: 表的基本操作 创建查看表 创建表 查看表结构 表的修改 表的重命名 表的添加与修改 删除表结构 总结 前言: 在数据库中,数据表是存储和组织数据的基本单位,对于数据表的操作是每个程序员需要烂熟…

CES Asia 2025聚焦量子计算,多领域进展引关注

作为亚洲地区极具影响力的科技盛会,CES Asia 2025第七届亚洲消费电子技术贸易展(赛逸展)将在首都北京举办。本届展会以“创新、智能、互联”为主题,将全方位展示全球消费科技领域的最新成果与发展趋势。其中,量子计算作…

wps加载项学习3-扩展

WPS扩展API (创建一个WebShape,WebShape身上有一个DataSource方法,DataSource有一个属性CreateDataRange)绑定数据源,具体应用场景未知 NativeX扩展,把C,ruby,python等语言实现的算法…

进程间通信 —— 共享内存

目录 1.共享内存实现通信的原理 2.如何使用共享内存实现通信 共享内存通信接口介绍 shmget shmat shmdt shmctl 使用示例 key和shmid 3.共享内存通信的优缺点 缺点:不提供任何同步机制,可能会造成数据混乱。 优点:共享内存是进程…

3.【基于深度学习YOLOV11的车辆类型检测系统】

文章目录 研究背景主要工作内容一、系统核心功能介绍及效果演示演示:软件主要功能:检测界面各大板块说明:检测区域:结果显示:主要功能说明:(1)图片检测说明(2)图片批量检…

汽车悬架系统技术演进:从被动到全主动的革新之路(主动悬架类型对比)

在汽车工业的百年发展史中,悬架系统始终是平衡车辆性能与舒适性的关键战场。随着消费者对驾乘体验要求的不断提升,传统被动悬架已难以满足中高端车型的需求,而半主动与全主动悬架技术的崛起,正在重塑行业格局。本文将深入解析三大…

跨平台文件互传工具

一款高效便捷的文件互传工具,支持在线快速传输各种文件格式,无需注册,直接分享文件。适用于个人和团队间的文件共享,跨平台支持,轻松解决文件传输问题。免费的文件传输服务,让你的工作更高效。 gotool

算法题(81):询问学号

审题: 需要我们根据给出的n值确定录入数据个数,然后根据给出的数据存储学号。再根据m值确定需要输出的学号个数,然后根据数组内容输出学号 思路: 我们可以利用数组进行数据顺序存储,以及随机读取完成本题 由于学号最大为1e9&#…

(转)Java多态`

Base是父类,Sub是子类。 Base b new Sub(); b.out(); b持有的是子类Sub的实例,调用的是子类的方法。

JavaWeb后端基础(3)

原打算把Mysql操作数据库的一些知识写进去,但是感觉没必要,要是现在会的都是简单的增删改查,所以,这一篇,我直接从java操作数据库开始写,所以这一篇大致就是记一下JDBC、MyBatis、以及SpringBoot的配置文件…

Selenium自动化测试秘籍:解锁常用函数实战指南

目录 1.元素的定位 2.操作测试对象 2.1.点击/提交对象 2.2.模拟按键输入 2.3.清除文本内容 2.4.获取文本信息: 特殊情况:元素属性值 获取当前页面标题和URL方法: 3. 窗口 3.1.切换窗口: 3.2.窗口大小的设置 4.屏幕截图…

Linux操作系统5-进程信号1(信号基础)

上篇文章:Linux操作系统4-进程间通信5(共享内存实现两个进程通信)-CSDN博客 本篇Gitee仓库:myLerningCode/l25 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重点:信号的概念 一. 信号基…

【博资考4】网安学院-硕转博考试内容

【博资考4】硕转博考试内容 - 网络安全与基础理论 写在最前面一. **21年硕转博面试内容回顾**网络、逆向、操作系统、攻防、漏洞1. **网络安全常见攻击方式及其防范措施**1.1 **DDoS攻击(分布式拒绝服务)**1.2 **SQL注入攻击**1.3 **XSS攻击(…

考研/保研复试英语问答题库(华工建院)

华南理工大学建筑学院保研/考研 英语复试题库,由华工保研er和学硕笔试第一同学一起整理,覆盖面广,助力考研/保研上岸!需要👇载可到文章末尾见小🍠。 以下是主要内容: Part0 复试英语的方法论 Pa…

TCP基本入门-简单认识一下什么是TCP

部分内容来源:小林Coding TCP的特点 1.面向连接 一定是“一对一”才能连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的 2.可靠的 无论的网络链路中出现了怎样的链路变化,TCP 都可以保证一个…

使用Uni-app实现语音视频聊天(Android、iOS)

使用Uni-app开发手机端APP已经变得很普遍,同一套代码就可以打包成Android App 和 iOS App,相比原生开发,可以节省客观的人力成本。那么如何使用Uni-app来开发视频聊天软件或视频会议软件了?本文将详细介绍在Uni-app中,…

mac电脑中使用无线诊断.app查看连接的Wi-Fi带宽

问题 需要检查连接到的Wi-Fi的AP硬件支持的带宽。 步骤 1.按住 Option 键,然后点击屏幕顶部的Wi-Fi图标;2.从下拉菜单中选择 “打开无线诊断”(Open Wireless Diagnostics);3.你可能会看到一个提示窗口,…

Flutter - StatefulWidget (有状态的 Widget) 和 生命周期

StatefulWidget /*** 需求:* 两个按钮,一个计数器* 这里要用到 StatefulWidget,因为 StatelessWidget 通常用来展示固定不变的数据*/ main() > runApp(MyApp());class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {…

(八)趣学设计模式 之 装饰器模式!

目录 一、 啥是装饰器模式?二、 为什么要用装饰器模式?三、 装饰器模式的实现方式四、 装饰器模式的优缺点五、 装饰器模式的应用场景六、 装饰器模式 vs 代理模式七、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢…

如何使用 Ollama 的 API 来生成文本

如何使用 Ollama 的 API 来生成文本 简介 生成文本 生成文本的示例 加载模型 卸载模型 简介 Ollama 提供了一个 RESTful API,允许开发者通过 HTTP 请求与 Ollama 服务进行交互。这个 API 覆盖了所有 Ollama 的核心功能,包括模型管理、运行和监控。本…