Ubuntu和Windows系统之Mamba_ssm安装

Mamba的论文:https://arxiv.org/abs/2312.00752

Mamba的github:https://github.com/state-spaces/mamba

一、Ubuntu安装

直接新建一个环境是最好的,不然很容易产生各种冲突

# 创建环境和相关包
conda create -n mamba python=3.10.13
conda activate mamba
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# 安装conv1d和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 .

中间只是需要等待一些时间,结束完就可以测试使用啦,官方提供的测试代码如下:

import torch
from mamba_ssm import Mambabatch, length, dim = 2, 64, 16
x = torch.randn(batch, length, dim).to("cuda")
model = Mamba(# This module uses roughly 3 * expand * d_model^2 parametersd_model=dim, # Model dimension d_modeld_state=16,  # SSM state expansion factord_conv=4,    # Local convolution widthexpand=2,    # Block expansion factor
).to("cuda")
y = model(x)
assert y.shape == x.shape

二、Windows安装

  • 相关包下载

Mamba主要涉及到四个包,packaging、triton、conv1d、mamba,其中第一个是windows可用的,直接安装就行,后三个是linux版本,但是有大佬们提供了编译好的文件。

triton:https://hf-mirror.com/r4ziel/xformers_pre_built/blob/main/triton-2.0.0-cp310-cp310-win_amd64.whl

conv1d和mamba:Mamba-Packages,这里面也包括了triton。

下载好三个.whl文件后,就可以开始一路安装了

  • 安装
# 环境创建和基础安装
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# 包安装,记得先进入whl对应的目录
pip install triton-2.0.0-cp310-cp310-win_amd64.whl
pip install causal_conv1d-1.1.1-cp310-cp310-win_amd64.whl
pip install mamba_ssm-1.2.0.post1-py3-none-any.whl

接下来就是等待安装完毕

参考链接

Windows和Linux系统上的Mamba_ssm环境配置

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

Mamba 环境安装踩坑问题汇总及解决方法

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

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

相关文章

设计模式——程序员的武功招式

设计模式就是套路,就是武功招式。 碰到什么问题出什么招。 设计模式是软件行业几十年的应对问题的经验总结——武功招式总结。 大成境界是无招胜有招。 但是问题是无限的,对应的招式,你也可以创建,所以现在设计模式还在不断的诞生…

嵌入式Framebuffer面试题精要及参考答案

什么是Framebuffer?简述其在Linux系统中的作用。 Framebuffer,中文译作帧缓冲,是Linux内核提供的一种抽象设备接口,用于允许用户态的应用程序直接访问和操作显示设备的显存,从而实现图形的直接输出。在Linux系统中,Framebuffer扮演着连接硬件显卡和软件应用的关键角色。…

Linux 文件系统检查与修复:使用fsck、e2fsck等命令

Linux文件系统检查与修复:使用fsck、e2fsck等命令 引言 文件系统是操作系统中用于管理和存储文件的关键组件。然而,文件系统在使用过程中可能会出现各种问题,如数据损坏、文件丢失等。为了确保文件系统的完整性和稳定性,我们需要…

java-arraylist 源码分析 1

## 深入分析 Java 中的 ArrayList 源码 ArrayList 是 Java 集合框架中的一个重要类,它基于数组实现,提供了动态数组的功能。ArrayList 是一个非常常用的集合类,因为它在随机访问和遍历方面性能优越。本文将详细分析 ArrayList 的源码&#x…

spring cloud gateway客户端websocket断开连接,服务侧连接没有关闭的问题处理

之前在单体架构项目中使用了websocket主动推送消息的功能,后来改成了微服务架构,结果发现部分消息丢失,没能推送给客户端;深入排查发现服务端无法感知websocket连接状态,但是在单体架构里面是没这个问题的,…

Redis【超详细】

Redis 是一个基于内存的key-value结构的数据库 一、redis的安装 1.1、安装步骤 1)安装Redis依赖 Redis是基于c语言编写的,因此需要安装对应的gcc环境 yum install -y gcc tcl 2)进入/usr/local/src/目录上传并解压安装包 解压&#xf…

【APK】SDKManager运行后闪退

本地JDK已安装,且配置了环境变量,未安装 android studiio 问题描述:右键以管理员身份运行 SDKManager,终端窗口闪退 问题原因:未找到正确的Java路径 解决办法: 1.修改tools目录下的 android.bat 文件&am…

langchain 入门中篇:数据封装,Memory 封装

数据的处理流程可以看一张图来帮助理解 数据来源可以是网络,可以是邮件,可以是本地文件 经过 Document Loaders 加载,再在 Transform 阶段对文档进行 split, filter, translate, extract metadata 等操作,之后在 Embed 阶段进行向…

Keil用ST-LINK下载STM32程序后不自动运行

之后程序可以运行了,但是串口还没有输出,在debug模式下都是ok的。

加权 KNN 算法的原理与详解

加权kNN,k近邻算法的增强改进版本。 加权KNN算法 近邻算法(k-Nearest Neighbors, kNN)是一种用于分类和回归的非参数方法。它的基本思想是“看邻居”,即通过查找离目标点最近的 K 个数据点,来判断目标点的类别或数值。…

docker安装elasticesarch-head

安装 Elasticsearch-Head 通常涉及以下步骤: 拉取 Elasticsearch-Head 的 Docker 镜像。 运行 Elasticsearch-Head 容器并连接到 Elasticsearch 实例。 以下是具体的命令: 拉取 Elasticsearch-Head 的 Docker 镜像 docker pull mobz/elasticsearch-…

Sqlserver 如何创建全局只读账号?

由于SQL Server不支持全局数据库权限,因此需要在每个数据库中创建用户并授予其只读权限。可以使用动态SQL脚本来为所有现有数据库设置权限,具体脚本如下 ##创建登陆账号CREATE LOGIN user01 WITH PASSWORD password; ##除了系统库外给user01 db_datare…

FactoryBean原理及用法

它的作用是用制造创建过程较为复杂的产品, 如 SqlSessionFactory, 但 Bean 已具备等价功能 使用 被 FactoryBean 创建的产品 会认为创建、依赖注入、Aware 接口回调、前初始化这些都是 FactoryBean 的职责, 这些流程都不会走 唯有后初始化的流程会走, 也就是产品可以被代理增…

学习aurora64/66b.20240703

简介 The AMD LogiCORE™IP Aurora 64B/66B core是一种可扩展的轻量级高数据速率链路层协议,用于高速串行通信。该协议是开放的,可以使用AMD设备技术实现。 Aurora 64B/66B是一种轻量级的串行通信协议,适用于多千兆位链路 (如下图所示)。它…

【MATLAB源码-第139期】基于matlab的OFDM信号识别与相关参数的估计,高阶累量/小波算法调制识别,循环谱估计,带宽估计,载波数目估计等等。

操作环境: MATLAB 2022a 1、算法描述 在现代无线通信系统中,正交频分复用(OFDM)因其高效的频谱利用率、强大的抗多径衰落能力以及灵活的带宽分配等优势,成为了一种非常重要的调制技术。然而,随着无线通信…

采沙船智能监测识别摄像机

对于现代河流管理来说,采沙船智能监测识别摄像机正逐渐成为解决非法采砂和保护河流生态环境的重要工具。这类摄像机通过先进的视觉识别和数据分析技术,有效监控和管理河道上的采沙行为,对保护水域资源和改善生态环境具有显著的意义。 采沙船智…

Linux容器篇-使用kubeadm搭建一个kubernetes集群

kubernetes集群架构和组件 master节点组件 kube-apiserver:Kubernetes API,集群的统一入口,各组件的协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给APIserver处理后再交给Etcd存储。 kube…

学习Mybatis

Mybatis 第一节 引言 1. 什么是框架 框架是一个半成品,解决了软件开发过程中的普遍性问题,简化了开发步骤,提高了开发效率。 2. 什么是ORM ORM全称为Object Relational Mapping,意为对象关系映射,主要实现了将程序…

usecallback()与usememo()

简单的说 都是用来监听数据变化 来进行控制渲染、减少不必要的渲染 、优化性能 usecallback()是用来监听数据变化从而调用方法 usememo()是用来监听数据变化从而改变数据 使用return返回变化的数据 当然return 也可以返回方法 所以usememo()可以代替usecallback() 下面详解 …

常见的编码技术简介

常见的编码技术简介 文章目录 常见的编码技术简介1. 字符编码1.1 ASCII1.2 Unicode 2. 数据传输编码2.1 Base系列编码2.1.1 Base642.1.2 Base162.1.3 Base322.1.4 Base852.1.5 其他Base编码 2.2 URL编码2.3 JSON2.4 XML2.5 Protobuf (Protocol Buffers) 1. 字符编码 1.1 ASCII…