《------往期经典推荐------》
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
引言
这篇文章主要介绍自己在配置SAM2运行环境时碰到的一些坑,解决花了很长时间。记录一下,希望能够帮助小伙伴们解决同样的问题。
注意事项
1. 环境配置前需要先安装pytorch
pytorch官网:https://pytorch.org/get-started/locally/
命令如下:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
根据自己的CUDA情况安装指定torch版本。
注意torch与torchvision的安装版本需要满足:“torch>=2.3.1”, “torchvision>=0.18.1”
项目环境安装命令
官方给出的命令是:
pip install -e .
建议用:
pip install --no-build-isolation -e .
命令解释如下:
pip
: Python的包管理器,用于安装和管理Python包。
install
: 这是pip的一个子命令,用于安装包。
--no-build-isolation
: 这个选项告诉pip在安装包时不要创建一个隔离的环境。通常,pip会为要安装的包创建一个隔离的构建环境,以确保构建过程不会受到其他包的影响。使用这个选项可以跳过这一步,这通常用于开发过程中,当开发者需要确保构建行为与系统中的其他包紧密相关时。
-e
: 这个选项代表“editable”,即“可编辑模式”。它允许用户安装一个包,并且可以不重新安装就能编辑源代码。这意味着当你修改了源代码后,不需要重新安装包,改动就会立即生效。
.: 这个点代表当前目录。这个命令通常在包的根目录下运行,它告诉pip在当前目录下寻找setup.py文件,并以可编辑模式安装包。
综上所述,pip install --no-build-isolation -e . 这条命令的意思是:以可编辑模式安装当前目录下的Python包,并且在安装过程中不创建隔离的构建环境。
遇到的问题
1. 配置环境时报错:OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.
使用pip install --no-build-isolation -e .
命令配置环境时,报如下错误:OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.
解决办法:
下载并安装CUDA。CUDA Toolkit - Free Tools and Training | NVIDIA Developer
地址:https://developer.nvidia.com/cuda-toolkit-archive
安装完成后在系统环境变量设置可以看到(路径为默认安装路径)
再添加一个与CUDA_PATH相同路径的CUDA_HOME,如下所示:
如果上面步骤无法解决,再继续下面内容。
在项目中的setup.py
中箭头位置添加如下代码,我是通过这个解决的…
-allow-unsupported-compiler
2. 模型推理时报错:RuntimeError: No available kernel. Aborting execution.
在运行 predictor.predict
时报错:RuntimeError: No available kernel. Aborting execution.
解决办法:
在项目中的sam2\modeling\sam\transformer.py
文件里面22行后面加上如下代码:
USE_FLASH_ATTN = False
MATH_KERNEL_ON = True
OLD_GPU = True
3. 配置环境报错:ERROR: Could not build wheels for SAM-2, which is required to install pyproject.toml-based projects
运行环境配置命令pip install -e .
报错:ERROR: Could not build wheels for SAM-2, which is required to install pyproject.toml-based projects
搜了很久原因,很多说是cuda需要12.1及以上版本,具体我也不太清楚具体原因。我根据要求切换到12.1版本,依然报同样的错误…没解决。
最终还是通过pip install --no-build-isolation -e .
命令配置的环境。
SAM2的环境配置确实坑有点多,希望这篇文章能够帮助需要的小伙伴,减少排坑时间。
如果对你有帮助,感谢给个点赞支持一下~