主要的安装流程参考pytorch3D Windows下安装经验总结_conda pytorch3d v windows-CSDN博客,其中提到的cub和MinGW我都没安装。
记录一下我的windows 10安装pytorch3d的过程
一、版本
conda虚拟环境
python3.11.9(亲测,下述步骤在python=3.9.19上也能安装)
pytorch2.3.1
pytorch0.7.7
cuda toolkit 12.1
二、步骤
1、安装anaconda(参照其他帖子),创建虚拟环境。
conda create -n yourenv python=3.11
conda activate yourenv
2、安装必要的库。依次执行下面的代码(一行一行来,复制一行粘贴然后回车等待安装完成再继续下一行,直到全部安装完成)
conda install -c fvcore -c iopath -c conda-forge fvcore iopath
conda install jupyter
pip install scikit-image matplotlib imageio plotly opencv-python
pip install black usort flake8 flake8-bugbear flake8-comprehensions
3、安装pytorch,在官网(Previous PyTorch Versions | PyTorch)上找合适的版本(匹配自己的python版本和cuda toolkit版本)。我这里选择的版本如下。将这段代码输入到conda命令提示符窗口并运行。
4、下载pytorch3d源码(Releases · facebookresearch/pytorch3d (github.com)),注意匹配自己的torch版本。点击链接下载压缩包。然后找个位置解压缩,注意路径不要太长,有说法是路径太长可能导致失败。
5、以管理员身份打开x64 Native Tools Command Prompt for VS 2022,激活conda环境。然后进入你解压pytorch3d的目录下。
conda activate yourenv
e:
cd E:\test\pytorch3d-0.7.7
在Prompt 窗口依次输入执行下面的命令
set DISTUTILS_USE_SDK=1
set PYTORCH3D_NO_NINJA=1
6、修改“cuda\config.h”
编辑位于 "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\(你的cudatoolkit版本)\include\thrust\system\cuda\config.h"的config.h文件。Ctrl+F搜索。
#ifndef THRUST_IGNORE_CUB_VERSION_CHECK
然后在它前面加上一行
#define THRUST_IGNORE_CUB_VERSION_CHECK
7、修改工具集版本号
打开目录“(你的VS的安装目录)\2022\Community\VC\Auxiliary\Build”,目录下类似于这样:
找到以 14.2x
开头的文件夹。然后在Prompt 窗口输入:
"(你的vs安装目录)\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.2x
这个14.2x根据上一步找到的目录下面的文件夹名的数字来确定,例如我的就是:
"D:\Microsoft\VisualStudio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.29.16.11
如果不执行这一步,可能会报错:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include\crt/host_config.h(153): fatal error C1189: #error: -- unsupported Microsoft Visual Studio version! Only the versions between 2017 and 2022 (inclusive) are supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk.
error: command 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.1\\bin\\nvcc' failed with exit code 2
8、开始安装,在Prompt 窗口输入:
python setup.py install
安装成功的效果:
Using d:\anaconda\yourenv\hggd2\lib\site-packages
Finished processing dependencies for pytorch3d==0.7.7
三、测试安装是否成功
在Prompt 窗口输入:
python
然后输入:
import torch
import pytorch3d
def test_pytorch3d():
print("PyTorch3D imported successfully!")
if torch.cuda.is_available():
device = torch.device("cuda")
print("CUDA is available. Testing PyTorch3D with GPU...")
# 创建一个 tensor 并移动到 GPU
x = torch.tensor([[1.0, 2.0, 3.0]], device=device) # 确保点是二维的
from pytorch3d.transforms import RotateAxisAngle
rot = RotateAxisAngle(angle=90, axis="X").to(device) # 将变换移动到 GPU
x_transformed = rot.transform_points(x)
print("Tensor on GPU: ", x)
print("Transformed Tensor: ", x_transformed)
else:
print("CUDA is not available. Please check your PyTorch and GPU settings.")
test_pytorch3d()
测试成功like:
PyTorch3D imported successfully!
CUDA is available. Testing PyTorch3D with GPU...
Tensor on GPU: tensor([[1., 2., 3.]], device='cuda:0')
Transformed Tensor: tensor([[ 1.0000, -3.0000, 2.0000]], device='cuda:0')
四、记录一下遇到的问题
1、其他很多说法里提到要使用x64 Native Tools Command Prompt for VS 2019,但是现在(2024.8.23)已经无法再下载VS 2019。
实测按照安装步骤的7操作,可以安装。
2、关于toolkit
注意cuda toolkit和cuda驱动是不一样的一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系-CSDN博客。
在安装pytorch的时候,一定要选择对应的cuda版本,例如:
如果没有这个版本的cuda toolkit,就得装一下,否则会在编译的时候出错!安装toolkit可以找找其他博客。装完之后记的修改环境变量CUDA_HOME和CUDA_PATH。例如我的cuda 12.1:
3、奇怪的问题
LINK : fatal error LNK1181: 无法打开输入文件“E:\Shared\pytorch3d-0.7.7\build\temp.win-amd64-cpython-39\Release\Shared\pytorch3d-0.7.7\pytorch3d\csrc\ball_query\ball_query.obj”
error: command 'D:\\Microsoft\\VisualStudio\\2022\\Community\\VC\\Tools\\MSVC\\14.40.33807\\bin\\HostX64\\x64\\link.exe' failed with exit code 1181
这个问题搜了一圈,没有看到解决方案。但是重启了一次电脑好像就好了……
除此以外,还可以参考pytorch3D Windows下安装经验总结_conda pytorch3d v windows-CSDN博客中提到的问题。
祝好运!