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.pswp.cn/diannao/40415.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40415.shtml
英文地址,請注明出處:http://en.pswp.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…