windows上的mamba安装
·
主要参考的这篇文章https://blog.csdn.net/2401_85154386/article/details/154653024
用这篇文章中的测试脚本测试是否安装成功:
import torch
print("检查 PyTorch GPU 状态...")
print(f"PyTorch 版本: {torch.__version__}")
print(f"CUDA 是否可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"GPU 名称: {torch.cuda.get_device_name(0)}")
print(f"CUDA 版本: {torch.version.cuda}")
print(f"cuDNN 版本: {torch.backends.cudnn.version()}")
try:
from mamba_ssm import Mamba
print("\nMamba 模块导入成功。")
except ImportError:
print("\nMamba 模块未安装或导入失败,请检查 mamba_ssm 是否正确安装。")
exit()
try:
print("\n正在测试 Mamba 在 GPU 上运行...")
model = Mamba(d_model=64, d_state=16, d_conv=4, expand=2)
model = model.cuda() if torch.cuda.is_available() else model
x = torch.randn(1, 16, 64).cuda() if torch.cuda.is_available() else torch.randn(1, 16, 64)
y = model(x)
print(f"运行成功,输出张量形状: {y.shape}")
except Exception as e:
print(f"\nMamba GPU 运行失败: {e}")
输出:
C:\Users\admin\.conda\envs\mamba\python.exe D:\master\projectzoo\MambaMorph-main\aaa.py
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.
If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.
Traceback (most recent call last): File "D:\master\projectzoo\MambaMorph-main\aaa.py", line 1, in <module>
import torch
File "C:\Users\admin\.conda\envs\mamba\lib\site-packages\torch\__init__.py", line 1382, in <module>
from .functional import * # noqa: F403
File "C:\Users\admin\.conda\envs\mamba\lib\site-packages\torch\functional.py", line 7, in <module>
import torch.nn.functional as F
File "C:\Users\admin\.conda\envs\mamba\lib\site-packages\torch\nn\__init__.py", line 1, in <module>
from .modules import * # noqa: F403
File "C:\Users\admin\.conda\envs\mamba\lib\site-packages\torch\nn\modules\__init__.py", line 35, in <module>
from .transformer import TransformerEncoder, TransformerDecoder, \
File "C:\Users\admin\.conda\envs\mamba\lib\site-packages\torch\nn\modules\transformer.py", line 20, in <module>
device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'),
C:\Users\admin\.conda\envs\mamba\lib\site-packages\torch\nn\modules\transformer.py:20: UserWarning: Failed to initialize NumPy: _ARRAY_API not found (Triggered internally at ..\torch\csrc\utils\tensor_numpy.cpp:84.)
device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'),
检查 PyTorch GPU 状态...
PyTorch 版本: 2.1.1+cu118
CUDA 是否可用: True
GPU 名称: NVIDIA GeForce RTX 4090
CUDA 版本: 11.8
cuDNN 版本: 8700
Disabling PyTorch because PyTorch >= 2.4 is required but found 2.1.1+cu118
PyTorch was not found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
Mamba 模块未安装或导入失败,请检查 mamba_ssm 是否正确安装。
Process finished with exit code 0
当前的报错是由两个非常典型的周边依赖包版本过高引发的“连环车祸”。
1. NumPy 版本冲突(致命报错一)
报错日志:
A module that was compiled using NumPy 1.x cannot be run in NumPy 2.2.6.../Failed to initialize NumPy: _ARRAY_API not found
- 原因分析:你的环境中安装了最新的 NumPy 2.2.6。但是,NumPy 2.0 版本在底层引入了破坏性的更新,导致基于旧版(1.x)编译的 PyTorch 2.1.1 无法正常读取数据格式,直接崩溃。
- 解决办法:将 NumPy 降级到 2.0 以下的版本。
2. Transformers 版本过高导致 PyTorch 被禁用(致命报错二)
报错日志:
Disabling PyTorch because PyTorch >= 2.4 is required but found 2.1.1+cu118/PyTorch was not found.
- 原因分析:你在安装某些包的时候,系统自动帮你拉取了最新版的
transformers库。这个最新版的库非常“傲娇”,它强制要求 PyTorch 的版本必须大于等于 2.4。当它发现你用的是 2.1.1 时,它直接在内部强行禁用了 PyTorch。 - 连锁反应:因为 PyTorch 被禁用了,紧接着依赖 PyTorch 的
mamba_ssm自然也就跟着报错,提示导入失败了。 - 解决办法:卸载当前过新的
transformers,安装与 PyTorch 2.1 兼容的旧版本。
请确保你激活了当前的 mamba 虚拟环境,然后在命令行中依次运行以下三条指令进行降级:
# 1. 降级 NumPy
pip install "numpy<2.0"
# 2. 卸载不兼容的 transformers
pip uninstall transformers -y
# 3. 安装兼容版本的 transformers
pip install transformers==4.36.2
更多推荐


所有评论(0)