踩了很多坑,终于顺利在Windows环境下自编译安装了Pytorch3D库(PyTorch2.4+支持GPU)

踩了很多坑,终于顺利在Windows环境下自编译安装了Pytorch3D库(PyTorch2.4+支持GPU)

admin
5月27日发布
温馨提示:
本文最后更新于2025年05月27日,已超过155天没有更新,若内容或图片失效,请留言反馈。

本文详细记录了作者在Windows环境下自编译安装Pytorch3D库(支持GPU)的完整过程,分享了安装中遇到的各种问题及解决方法。作者首先指出使用conda安装Linux打包的Pytorch3D在Windows下无法使用,随后解决了显卡支持问题,通过设置CUDA_HOME和FORCE_CUDA=1消除了RuntimeError: Not compiled with GPU support错误。文章列出了安装所需的基本条件(Python 3.10、PyTorch 2.4.0、gcc & g++ ≥ 4.9),并提供了安装PyTorch、VS2022以及从GitHub下载Pytorch3D源码的步骤。为应对国内网络问题,作者还分享了蓝奏云网盘链接。编译过程中,配置Visual Studio环境变量尤为关键,最终通过测试代码验证了Pytorch3D的安装成功及GPU支持。作者最后感慨,虽然Windows环境下折腾较多,但也锻炼了技术能力。

踩坑1

在anaconda.org里下载的压缩包然后使用conda进行安装在win10下是可以安装成功的,但是不能被使用,实际原因是这是基于Linux打包的,根本不适用windows。

anaconda.orgl

踩坑2

关于显卡支持的事。第一次安装根据教程之后运行代码出现RuntimeError: Not compiled with GPU support.

于是找了找教程,发现很多人都说的不一样,不过设置了了环境变量CUDA_HOME以及FORCE_CUDA=1成功解决问题。

Pytorch3d基本条件

Python 3.10

PyTorch 2.4.0

gcc & g++ ≥ 4.9

Pytorch3d基本条件

安装PyTorch

可以使用miniconda或者anaconda新建一个环境,例如tt:

conda create -n tt python=3.10
conda activate tt

然后安装Pytorch2.4+CUDA12.1:

conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=12.1 -c pytorch -c nvidia

安装VS2022

去VS官网下载安装即可:Visual Studio 2022 - 官网

Visual Studio 2022

安装的时候勾选“使用C++的桌面开发”即可。

使用C++的桌面开发

安装完成后会有这些东西:

安装完成后

下载Pytorch3d

在Pytorch3d的Github上下载ZIP即可。由于国内的网络环境不稳定,这里我提供了完整的压缩包的蓝奏云网盘链接:

pytorch3d-github.zip - 蓝奏云网盘

Pytorch3d的Github

我下载到了D盘进行解压,得到下面的路径:

D盘进行解压

注意:新版本的pytorch3d不用修改作者的代码,要不然一直编译不出来。

编译Pytorch3d

Pytorch3d

搜索x64 Native Tools Command Prompt

x64 Native Tools Command Prompt

首先进入pytorch目录下:

cd D:\pytorch3d-github\pytorch3d-main

先配置visual studio环境变量:

set DISTUTILS_USE_SDK=1
set MSSdk=1
set FORCE_CUDA=1

tips:FORCE_CUDA=1是为了防止出现RuntimeError: Not compiled with GPU support.,不过前提是你已经成功安装了CUDA并且设置了CUDA_HOME系统变量。这些都是安装GPU驱动以及Pytorch-GPU版本的前戏操作,这里我就不再赘述。

系统变量

然后使用虚拟环境里的python进行安装:

D:\miniconda3\envs\tt\python.exe setup.py install

(图片里漏了FORCE_CUDA)
虚拟环境里的python进行安装

然后就是等待了,完成安装后显示如下:

完成安装后

编译好了可以用conda的命令框检查环境里面有没有这个包:

conda list pytorch3d

安装了pytorch3d

这时已经成果安装了pytorch3d。

验证pytorch3d

为了验证你的pytorch3d以及GPU是否可用,下面给了一个测试代码:

import torch
import matplotlib.pyplot as plt

from pytorch3d.structures import Meshes
from pytorch3d.utils import ico_sphere
from pytorch3d.renderer import (
    FoVPerspectiveCameras,
    RasterizationSettings,
    MeshRenderer,
    MeshRasterizer,
    SoftPhongShader,
    PointLights,
    TexturesVertex,
    look_at_view_transform,
)

# 设置设备
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")

# 创建单位球体网格
mesh = ico_sphere(level=3, device=device)  # 细节更高
verts_rgb = torch.ones_like(mesh.verts_packed())[None] * 0.5  # 灰色
textures = TexturesVertex(verts_features=verts_rgb.to(device))
mesh.textures = textures

# 设置摄像头视角(距离 2.7,朝向原点)
R, T = look_at_view_transform(dist=2.7, elev=10.0, azim=45.0)
cameras = FoVPerspectiveCameras(device=device, R=R, T=T)

# 设置光源(从侧上方照射)
lights = PointLights(device=device, location=[[2.0, 2.0, 2.0]])

# 光栅化设置
raster_settings = RasterizationSettings(
    image_size=512,
    blur_radius=0.0,
    faces_per_pixel=1,
)

# 创建渲染器
renderer = MeshRenderer(
    rasterizer=MeshRasterizer(
        cameras=cameras,
        raster_settings=raster_settings,
    ),
    shader=SoftPhongShader(
        device=device,
        cameras=cameras,
        lights=lights,
    )
)

# 渲染图像
images = renderer(mesh)

# 显示图像
plt.figure(figsize=(6, 6))
plt.imshow(images[0, ..., :3].cpu().numpy())
plt.title("Rendered 3D Sphere")
plt.axis("off")
plt.show()

运行结果:Using device: cuda:0

运行结果

一点感受

其实搞深度学习开发很多时候Ubuntu之类的环境可能更加合适,Windows虽然大部分时候都能满足使用,但是有时候比较费技术也比较花时间去折腾。

不过既然都选择搞技术了,折腾点也没啥,就当练技术了。

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 赞赏
评论 抢沙发
上传图片
OωO
取消