Win10 下 Vision Mamba(Vim-main)的环境配置(libcuda.so文件无法找到,windows系统运行失败)

目录

1、下载NVIDIA 驱动程序、cuda11.8、cudnn8.6.0

2、在Anaconda中创建环境并激活

3、下载gpu版本的torch

4、配置环境所需要的包

5、安装causal_conv1d和mamba-1p1p1

安装causal_conv1d

安装mamba-1p1p1

6、运行main.py失败  


请直接拉到最后查看运行失败的原因,如有解决方案欢迎讨论

1、下载NVIDIA 驱动程序、cuda11.8、cudnn8.6.0

参考另一篇博客【win10+cuda11.8+cudnn8.6.0安装】

2、在Anaconda中创建环境并激活

  • 创建环境

环境名:vim,python版本:3.10.13

conda create -n vim python=3.10.13
  • 激活环境
conda activate vim

3、下载gpu版本的torch

pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118

4、配置环境所需要的包

如果安装过程中,有部分包指定的版本安装失败,则直接【pip install package】,不指定版本安装即可。

pip install -r vim/vim_requirements.txt
  • 官方提供的triton包只支持Linux系统,请查看windows安装triton的教程链接。

5、安装causal_conv1d和mamba-1p1p1

这两个包作者提供的源码里面有,目录结构如下:

  • 安装causal_conv1d

进入VIm-main项目文件夹的causal-conv1d文件夹后,利用-e参数安装。

cd causal-conv1d
pip install -e .

安装caucal_conv1d的时候,报错:

error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/

解决方案参考:【已解决】error: Microsoft Visual C++ 14.0 or greater is required

后来发现安装完的版本是1.0.0,但是要求>=1.1.0,所以重新自己下载1.1.3版本之后再安装

causal_conv1d的1.1.3版本的下载链接:GitCode - 开发者的代码家园

下载完之后,进入causal_conv1d文件夹,输入命令【pip install -e .】安装即可。

安装完后,使用命令【pip list】查看如下:

  • 安装mamba-1p1p1

windows无法使用【MAMBA_FORCE_BUILD=TRUE pip install .】命令安装 mamba-ssm, 需要把Vim-main/mamba-1p1p1/setup.py文件中的两个变量改成 False(原因:改成False后才能强制利用已经下载的本地文件进行编译)。修改的内容如下:

修改完后,在cmd进入mamba-1p1p1文件下,执行安装。

cd mamba-1p1p1
pip install -e .

安装成功的话,显示如下

报错:【ModuleNotFoundError: No module named 'selective_scan_cuda'】

解决办法:

找到文件 mamba-1p1p1/mamba_ssm/ops/selective_scan_interface.py,修改三处内容

第一处,注释import语句

# import selective_scan_cuda

第二处,将原来的return语句注释掉,更换成新的return语句

# 将原来的return语句注释掉,更换成新的return语句
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 is
    not considered in the backward pass.
    """
    # return SelectiveScanFn.apply(u, delta, A, B, C, D, z, delta_bias, delta_softplus, return_last_state)
    return selective_scan_ref(u, delta, A, B, C, D, z, delta_bias, delta_softplus, return_last_state)  # here

 第三处,将原来的return语句注释掉,更换成新的return语句

# 将原来的return语句注释掉,更换成新的return语句
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)
    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)  # here

6、运行main.py失败  

报错1:

File "D:\anaconda\install\envs\vim\lib\site-packages\triton\compiler.py", line 1093, in default_cache_dir return os.path.join(os.environ["HOME"], ".triton", "cache") File "D:\anaconda\install\envs\vim\lib\os.py", line 680, in __getitem__ raise KeyError(key) from None KeyError: 'HOME' 

尝试解决:

在D盘下新建了一个HOME目录,然后将HOME环境变量设置为D:\HOME。关闭PyCharm并重启,使环境变量生效。重新运行main.py之后,没有报这个错误,报了另一个error。


报错2:
  File "D:\anaconda\install\envs\vim\lib\site-packages\triton\runtime\autotuner.py", line 62, in 
  File "D:\anaconda\install\envs\vim\lib\site-packages\triton\compiler.py", line 1155, in _build
    cuda_lib_dirs = libcuda_dirs()
  File "D:\anaconda\install\envs\vim\lib\site-packages\triton\compiler.py", line 1134, in libcuda_dirs
    locs = subprocess.check_output(["whereis", "libcuda.so"]).decode().strip().split()[1:]
  File "D:\anaconda\install\envs\vim\lib\subprocess.py", line 421, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "D:\anaconda\install\envs\vim\lib\subprocess.py", line 503, in run
    with Popen(*popenargs, **kwargs) as process:
  File "D:\anaconda\install\envs\vim\lib\subprocess.py", line 971, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "D:\anaconda\install\envs\vim\lib\subprocess.py", line 1456, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

原因分析: triton 库出现了问题,似乎是在尝试执行 whereis libcuda.so 命令时发生了问题,因为在 Windows 系统中并不存在 libcuda.so 文件。待解决...

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】vector模拟实现

目录 简介:私有成员:迭代器: 无参构造函数:push_back:reserve:resize:push_back: operator[]重载:begin && end:size && capacity:insert:erase:带参构造…

PyQt ui2py 使用PowerShell将ui文件转为py文件并且将导入模块PyQt或PySide转换为qtpy模块开箱即用

前言 由于需要使用不同的qt环境(PySide,PyQt)所以写了这个脚本,使用找到的随便一个uic命令去转换ui文件,然后将导入模块换成qtpy这个通用库(支持pyside2-6,pyqt5-6),老版本的是Qt.py(支持pysid…

论文阅读——Sat2Vid

Sat2Vid: Street-view Panoramic Video Synthesis from a Single Satellite Image 提出了一种新颖的方法,用于从单个卫星图像和摄像机轨迹合成时间和几何一致的街景全景视频。 即根据单个卫星图像和给定的观看位置尽可能真实地、尽可能一致地合成街景全景视频序列。…

Python+Django+Html河道垃圾识别网页系统

程序示例精选 PythonDjangoHtml河道垃圾识别网页系统 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonDjangoHtml河道垃圾识别网页系统》编写代码,代码整洁,规…

如何编写属于自己的第一个exp

0x00 前言 在我们找到一个漏洞之后,可能会想着去fofa上搜语法进而扩大战果,而有些漏洞利用起来十分繁琐,这时候就需要一个exp来批量帮我们进行扫描工作,接下来就介绍一下如何进行exp的编写,这个过程中最重要的还是体现…

Docker简单介绍、特点、与虚拟机技术的区别、核心概念及在CentOS 7 中安装卸载Docker

目录 一、什么是Docker 二、特点 三、Docker与虚拟机技术的区别 四、Docker的核心概念 Docker仓库与仓库注册服务器的区别 五、CentOS7在线安装Docker 安装配置 卸载 一、什么是Docker Docker是一个开源的容器化平台,用于打包、部署和运行应用程序。它利用…

AI设计优化电机、电路与芯片?

一、AI进行电机本体设计 使用AI进行电机本体设计是一种前沿且具有潜力的方法,通过深度学习、强化学习、遗传算法等AI技术,可以实现电机设计的自动化和优化。具体应用可以包括以下几个方面: 此图片来源于网络 1. **参数优化**: …

硬件基础知识

CPU制作 cpu组成原理 CPU (Central Processing Unit - 中央处理单元): CPU 是计算机的核心,负责解释和执行程序指令以及处理数据。它由几个关键部分组成,如算术逻辑单元(ALU)、寄存器、和控制单元(CU)&…

游戏攻略|基于Springboot和vue的游戏分享平台系统设计与实现(源码+数据库+文档)

游戏攻略分享平台目录 基于Springboot的在线考试管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台: 2、后台 5.2.1管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: …

国际体育日,一起运动起来吧

今天是国际体育日,是时候动一动,燃烧我们的卡路里啦!说到运动,我得提提最近刚入手华为WATCH GT4,真心不赖! 这个手表特别适合喜欢运动的人,它有100的运动模式,无论你是喜欢跑步、…

数据结构初阶:顺序表和链表

线性表 线性表 ( linear list ) 是 n 个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串 ... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性…

Excel列匹配VLookUp功能使用

生活中很多关于excel多列数据进行匹配计算等场景,其中最常用的一个函数就是VLookUp了,下面直接上图: 得到结果如下: 得到结果如下: 注意: 1.在需要把计算完的数据粘贴到另一列或者另个sheet时,复制后,不要直接ctrlv粘贴,这样会把计算公式粘贴到对应的列.正确做法是:右键粘贴,选…

蓝桥杯每日一题:斐波那契(矩阵乘法)

在斐波那契数列中,Fib00,Fib11,FibnFibn−1Fibn−2(n>1) 给定整数 n,求 Fibnmod10000。 输入格式 输入包含不超过 100100 组测试用例。 每个测试用例占一行,包含一个整数 当输入用例 n−1时,表示输入终止,且该…

Python环境搭建—安装PyCharm开发工具

🥇作者简介:CSDN内容合伙人、新星计划第三季Python赛道Top1 🔥本文已收录于Python系列专栏: 零基础学Python 💬订阅专栏后可私信博主进入Python学习交流群,进群可领取Python视频教程以及Python相关电子书合…

JS详解-设计模式

工厂模式: 单例模式: // 1、定义一个类class SingleTon{// 2、添加私有静态属性static #instance// 3、添加静态方法static getInstance(){// 4、判断实例是否存在if(!this.#instance){// 5、实例不存在,创建实例this.#instance new Single…

rust项目组织结构和集成测试举例

概述 在学习rust的过程中,当项目结构略微复杂的时候,写集成测试的时候发现总是不能引用项目中的代码,导致编写测试用例失败。查阅了教程,一般举例都很简单。查阅了谷歌和百度以及ai,也没有找到满意的答案。这里记录一…

Spring Boot 接入 Redis

Spring Boot 接入 Redis 简介 Redis 是一种访问速度非常快的内存数据结构存储,用作数据库、缓存、消息代理和流引擎。提供 strings、hashes、lists、sets 等数据结构。可以解决会话缓存、消息队列、分布式锁、定期将数据集存储到硬盘等功能。 通过 Redis 设计实现…

win11 安全中心打开黑屏\白屏\打不开有效解决

文章目录 问题和解决思路解决方法 问题和解决思路 问题:在重装和或者初次安装系统后,win11安全中心无法成功启动解决思路:直接重装安全中心,解决问题(作者尝试了修复和重置的功能–无效)视频教程参考WIN11…

攻防世界:mfw[WriteUP]

根据题目提示考虑是git库泄露 这里在地址栏后加.git也可以验证是git库泄露 使用GitHack工具对git库进行恢复重建 在templates目录下存在flag.php文件&#xff0c;但里面并没有flag 有内容的只有主目录下的index.php index.php源码&#xff1a; <?phpif (isset($_GET[page…

Photoshop 2024 中文---专业图像处理软件的又一次飞跃

Photoshop 2024是一款功能强大的图像处理软件&#xff0c;广泛应用于创意设计和图像处理领域。它提供了丰富的绘画和编辑工具&#xff0c;包括画笔、铅笔、颜色替换、混合器画笔等&#xff0c;使用户能够轻松进行图片编辑、合成、校色、抠图等操作&#xff0c;实现各种视觉效果…