admin 管理员组

文章数量: 886993

        用于记录下在windows下安装pytorch3d过程,方便后期查阅,在安装过程中,以下链接提供了非常大的帮助。

pytorch3D Windows下安装经验总结

Pytorch3d Installation

1 安装Anaconda

2 创建环境

conda create -n igev python=3.9
conda activate igev

3 安装cuda及cudnn

        先安装gpu驱动,本机选用537.34,安装好以后在conda下用命令 nvidia-smi 可以查看当前驱动支持的最高cuda版本。

       结合将使用的pytorch版本,本机选择安装CUDA 11.7,然后下载Cudnn 8.8.1并解压,将解压后的文件拷入cuda11.7对应的目录中即可。此时,在conda下用命令 nvcc -V 或者 nvcc --version 查看到当前使用的默认cuda版本。

4 安装Pytorch

       从INSTALLING PREVIOUS VERSIONS OF PYTORCH中选择对应的版本安装。

# CUDA 11.7
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.7 -c pytorch -c nvidia

因本环境之前安装过其他版本,导致安装过程中出现了一些报错,按照报错提示从路径

C:\Users\Administrator\anaconda3\pkgs

找到错误提示的包并删除,然后重新执行上面的 conda install xxxxxx 直到安装成功。如果是重新创建的环境,应该不会有这种烦恼。安装好以后,可以执行以下代码测试看看是否运行正常。

>>> import torch
>>> torch.__version__
'1.13.0'
>>> torch.version.cuda
'11.7'
>>> torch.cuda.is_available()
True
>>> import torchvision
>>> torchvision.__version__
'0.14.0'
>>> torch.rand(2, 3).to(device='cuda')
tensor([[0.1089, 0.0720, 0.3776],
        [0.9196, 0.8839, 0.5279]], device='cuda:0')

5 安装NVIDIA CUB

        从 NVIDIA CUB 根据cuda版本下载对应的cub版本(本机选择cub-1.17.2),解压并设置环境变量 CUB_HOME。

6 安装pytorch3d依赖项

        因为本机环境事先安装过不少依赖项,所以只安装了以下项。

conda install -c fvcore -c iopath -c conda-forge fvcore iopath

          按照 pytorch3D Windows下安装经验总结 则需要依次安装以下项。

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

7 安装pytorch3d

        按照 Pytorch3d Installation 说明,根据pytorch版本从 Pytorch3d Release 选择下载pytorch3d-0.7.2,解压后进入编译安装环节。

        从windows开始菜单中搜索"x64 Native Tools Command Prompt for VS 2019",并以管理员身份打开。然后进入pytorch3d文件夹的目录,先配置visual studio环境变量。这一步的作用没做细致验证,作用未知,跳过这一步,直接进入下一步,不知道是否也可行。

cd F:\d2l\__install__\pytorch1.13.0_cuda11.7\pytorch3d-0.7.2
set DISTUTILS_USE_SDK=1
set PYTORCH3D_NO_NINJA=1

        接着,切换到Anaconda环境,进入pytorch3d文件夹的目录,执行。等待几分钟,可看到安装成功提示。

cd F:\d2l\__install__\pytorch1.13.0_cuda11.7\pytorch3d-0.7.2
python setup.py install

8 测试

        测试环节出了一点小插曲,在上一步Anaconda下提示成功后执行以下可以成功,

>>> import pytorch3d
>>> pytorch3d.__version__
'0.7.2'

但是,执行 Pytorch3d Get Started 测试代码时报错 " ImportError: cannot import name '_C' from 'pytorch3d' "

from pytorch3d.utils import ico_sphere
from pytorch3d.io import load_obj
from pytorch3d.structures import Meshes
from pytorch3d.ops import sample_points_from_meshes
from pytorch3d.loss import chamfer_distance

# Use an ico_sphere mesh and load a mesh from an .obj e.g. model.obj
sphere_mesh = ico_sphere(level=3)
verts, faces, _ = load_obj("model.obj")
test_mesh = Meshes(verts=[verts], faces=[faces.verts_idx])

# Differentiably sample 5k points from the surface of each mesh and then compute the loss.
sample_sphere = sample_points_from_meshes(sphere_mesh, 5000)
sample_test = sample_points_from_meshes(test_mesh, 5000)
loss_chamfer, _ = chamfer_distance(sample_sphere, sample_test)

通过google ImportError: cannot import name '_C' from 'pytorch3d',从 pytorch3d issue 中找到问题根源。

在Anaconda中执行

>>> print(pytorch3d)
<module 'pytorch3d' from 'C:\\Users\\Administrator\\anaconda3\\envs\\igev\\lib\\site-packages\\pytorch3d-0.7.2-py3.9-win-amd64.egg\\pytorch3d\\__init__.py'>

可确定当前import pytorch3d 是否pytorch3d的安装路径,而不是它的解压缩路径。确定原因后,重启Anaconda, 重新activate环境后,上述测试代码正常运行。

本文标签: Windows pytorch3d