【深度学习】【三维重建】windows11环境配置PyTorch3d详细教程

文章目录

  • 【深度学习】【三维重建】windows11环境配置PyTorch3d详细教程
  • 前言
  • 确定版本对应关系
  • 源码编译安装Pytorch3d
  • 总结


前言

本人windows11下使用搭建PyTorch3d环境,故此以详细教程以该算法依赖的环境版本为参照。


确定版本对应关系

环境版本要求保持一致:CUDA,CUB,Pytorch,Pytorch3d
查看CUDA版本

注意这里的cub对应的是真实的物理机安装的cuda版本号(环境变量里配置的cuda),不是虚拟环境下的cuda版本号。

nvcc -V

假设已经安装了其他版本的cuda和对应的cudnn,可以参考博主的博文【Windows10中下安装多版本CUDA及其切换】
本人的安装版本为:

Python 3.9 + Pytorch 2.2.2 + CUDA 11.8 + cudnn 8_0 + pytorch3d 0.7.6 + CUB 1.17.2

使用anaconda3新建PyTorch3d虚拟环境:

conda create -n pytorch3d python=3.9
activate pytorch3d

然后安装对应版本pytorch和cuda包:

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

安装Pytorch3d的依赖项:

pip install fvcore iopath "numpy>=1.21,<2" -i https://pypi.tuna.tsinghua.edu.cn/simple/

查询对照表,查看cuda对应的cub版本。

TBD版本表示目前还没有确定下将被包含在具体那个CUDA Toolkit或NVIDIA HPC SDK版本中。博主的cuda版本为11.8,选择了cub 1.17.2,没有问题。

根据对照表需要下载对应版本的NVIDIA CUB。
设置永久环境变量:在环境变量中新建CUB_HOME变量名,设置变量值为解压路径(博主在 F:\cub-1.17.2),注意不是添加到Path中:

设置临时环境变量(推荐):要是觉得CUB用的少,避免上面那种将“杂七杂八”的内容永久塞进系统环境变量,使用 set 命令设置临时环境变量。

仅对当前命令行窗口生效,无需永久修改系统配置,不影响系统全局配置。
优先级:临时变量 > 用户变量 > 系统变量。

set CUB_HOME=F:\cub-1.17.2
# 查询环境变量,除了当前命令行窗口,在新窗口是没有显示路径的
echo %CUB_HOME%

源码编译安装Pytorch3d

选择Pytorch3d版本,各版本下有注明其适用的pytorch版本,博主这里是 0.7.6版本。

以管理者身份打开"x64 Native Tools Command Prompt for VS 2019"终端(安装VS 2019),cd到pytorch3d解压目录里(博主在 F:\pytorch3d-0.7.6),输入以下指令:

# 激活对应的环境,进入到Pytorch3d路径下
cd pytorch3d-0.7.6
activate pytorch3d
set DISTUTILS_USE_SDK=1
set PYTORCH3D_NO_NINJA=1
# 设置是临时环境变量,只在当前命令行窗口有效(设置了永久环境变量可以忽视)
set CUB_HOME=F:\cub-1.17.2

由于外部 CUB 与 CUDA 自带 Thrust/CUB 冲突,导致可能出现如下错误:

官方参考:编辑位于 "Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8/include\thrust/system/cuda/config.h"的config.h文件。

找到自己的CUDA路径下的config.h文件。

在它前面加上一行
#ifndef THRUST_IGNORE_CUB_VERSION_CHECK 
修改后为
#define THRUST_IGNORE_CUB_VERSION_CHECK
#ifndef THRUST_IGNORE_CUB_VERSION_CHECK 

继续在"x64 Native Tools Command Prompt for VS 2019"执行以下命令:

# 可能需要科学上网,需要下载一些依赖.
python setup.py install

成功安装。

# 查看环境中的是否成功安装包
conda list


用一段测试代码验证pytorch3d能否正常使用。

import torch
from pytorch3d.structures import Meshes
from pytorch3d.utils import ico_sphere# 创建一个简单的3D球体
sphere_mesh = ico_sphere(3, device=torch.device("cuda"))# 打印球体的顶点和面信息
print("顶点坐标:", sphere_mesh.verts_packed())
print("面索引:", sphere_mesh.faces_packed())

说明能够正常使用。


总结

尽可能简单、详细的介绍windows1环境配置PyTorch3d详细教程,后续可以在当前配置的PyTorch3d环境中运行三维重建相关的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/91841.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/91841.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/91841.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:日志管理(四)集成Spring Security

目录 一、前言 二、后端开发及调整 1.日志管理开发 2.配置调整 3.日志入库&#xff08;注解、切面&#xff09; 三、前端调整 1.日志管理开发 四、附&#xff1a;源码 1.源码下载地址 五、结语 一、前言 此文章在上次调整的基础上开发后端管理系统的用户请求日志功能&…

ceph 14.2.22 nautilus Balancer 数据平衡

Ceph Balancer (upmap 模式) 启用与配置 在 Ceph Nautilus (14.2.22) 版本中启用和配置 Balancer 的完整步骤 1. 前提检查 检查集群的初始状态和版本。 集群状态 (ceph -s)cluster:id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxhealth: HEALTH_OKservices:mon: 3 daemons, quo…

在Linux上对固态硬盘进行分区、格式化和挂载的步骤

在Linux上对固态硬盘进行分区、格式化和挂载的步骤如下&#xff1a; 插入固态硬盘&#xff1a;将固态硬盘插入计算机的SATA或M.2接口。 确认固态硬盘被识别&#xff1a;打开终端&#xff0c;输入以下命令查看硬盘是否被系统识别 fdisk -l 查找硬盘列表中的固态硬盘&#xf…

用Unity结合VCC更改人物模型出现的BUG

1、上传模型时出现错误经过排查是因为服装发型预制体放到人物模型上之后&#xff0c;物体上自动多了一个空脚本&#xff0c;怀疑是VRC工具箱自动添加的。解决方法&#xff1a;在上传前将带有空脚本的物体上的组件删除即可2、添加头发时出现模型碰撞错误按照【【VRCHAT】从零开始…

k8s之DevicePlugin

解密 Kubernetes Device Plugin&#xff1a;让容器轻松驾驭特殊硬件 在容器化技术飞速发展的今天&#xff0c;容器凭借轻量、隔离、可移植的特性成为应用部署的主流选择。但在实际应用中&#xff0c;当容器需要访问 GPU、FPGA 等特殊硬件资源时&#xff0c;事情就变得不那么简单…

动态规划Day7学习心得

今天给动态规划扫个尾&#xff0c;还有两题。 第一道&#xff1a;647. 回文子串 - 力扣&#xff08;LeetCode&#xff09; 暴力解法 两层for循环&#xff0c;遍历区间起始位置和终止位置&#xff0c;然后还需要一层遍历判断这个区间是不是回文。所以时间复杂度&#xff1a;O…

SpringCloud实战:机器人对战系统架构

基于Spring Cloud的机器人对战 以下是基于Spring Cloud的机器人对战实例相关案例和技术实现方向的整理,涵盖微服务架构设计、通信机制及典型应用场景: 分布式对战系统架构 采用Spring Cloud Alibaba+Nacos实现服务注册与发现,每个机器人实例作为独立微服务部署。通过Open…

LLM 核心能力解构与项目实践指南

大语言模型&#xff08;LLM&#xff09;的爆发式发展&#xff0c;本质上是其核心能力在产业场景中的规模化验证。作为技术博主&#xff0c;本文将系统拆解 LLM 的六大核心能力&#xff0c;结合工业级项目案例&#xff0c;提供从能力映射到工程实现的完整技术路径&#xff0c;并…

retro-go 1.45 编译及显示中文

最近做了个使用 retro-go 的开源掌机 基于ESP32-S3的C19掌机&#xff08;适配GBC外壳&#xff09; - 立创开源硬件平台 &#xff0c;做完后用提供的固件发现屏幕反显了&#xff0c;估计是屏幕型号不太对&#xff0c;随即自己拉 retro-go 官方库来编译&#xff0c;拉取的最新的 …

中州养老项目:Mybatis自动填充拦截器

功能:在新增护理项目的时候,创建人,创建时间和修改时间字段会自动拦截填充,这些公共字段可以省去我们一个一个处理的麻烦依靠:AutoFillInterceptor拦截器,MybatisConfig配置类第一步:我们需要借助一个MybatisConfig,configuration标志着这是一个配置类,我们需要将autoFillInter…

[创业之路-527]:什么是产品技术成熟度曲线?

产品技术成熟度曲线&#xff08;Gartner Hype Cycle&#xff09;是由全球知名咨询机构Gartner提出的工具&#xff0c;用于可视化展示新兴技术从诞生到成熟的发展轨迹&#xff0c;以及市场对其预期和实际采用趋势的变化。该曲线通过五个阶段刻画技术生命周期&#xff0c;帮助企业…

VScode对Ubuntu用root账号进行SSH远程连接开发

由于linux服务器大部分都是基于命令行的操作&#xff0c;缺乏比较方便好用的编辑工具&#xff0c;对于经常在linux服务器上做开发的同学来说直接在服务器上进行开发或配置文件的修改还不是特别的方便。虽然linux上有vi或vim比起图形化的编辑工具体验感还是不是很好。作为程序员…

【物联网】基于树莓派的物联网开发【20】——树莓派控制DHT11温湿度传感器实战

传感器概述 DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度5%RH&#xff0c; 温度2℃&#xff0c;量程湿度20-90%RH&#xff0c; 温度0~50℃。分为3个接口&#xff0c;分别为&#xff1a;VCC, DATA, GND。 产品图片主要用途 检测环境温湿度 GPIO控制DHT11温湿度传…

AI原生数据库:告别SQL的新时代来了?

在2025年的今天&#xff0c;生成式AI的浪潮正以前所未有的力量重塑着各行各业。从代码生成到艺术创作&#xff0c;大型语言模型&#xff08;LLM&#xff09;的能力边界不断被拓宽。现在&#xff0c;这股浪潮正涌向信息技术领域最古老、最核心的基石之一&#xff1a;数据库。一个…

题单【模拟与高精度】

P1042 [NOIP 2003 普及组] 乒乓球 P1042 [NOIP 2003 普及组] 乒乓球 - 洛谷 #include<bits/stdc.h> using namespace std;char C; string S; int n,A,B;void Work(int Lim) {for(char i:S){if(iW) A;if(iL) B;if(max(A,B)>Lim && abs(A-B)>2){cout<<…

数据结构学习基础和从包装类缓存到泛型擦除的避坑指南

目录 1.数据结构的概念和算法 1.1 数据结构的概念 1.2 数据结构的集合框架 1.3 算法 1.3.1 时间复杂度 1.3.2 空间复杂度 2.包装类 2.1 为什么需要包装类&#xff1f; 2.2 装箱和拆箱 3. 初识泛型 3.1 认识泛型 3.2 泛型类的使用 3.3 泛型的编译 3.4 通配符 3.4.1 …

网络安全基础知识【6】

什么是防火墙1.防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、 专用网与公共网之间的界面上构造的保护屏障 2.防火墙实际上是一种隔离技术 3.防火墙重要的特征是增加了区域的概念防火墙的定义 隔离可信与不可信网络的设备/软件&#xff0c;基于策略控制流量…

Apache Doris数据库——大数据技术

Apache Doris一、简介1.1、Apache Doris简介1.2、Apache Doris 与传统大数据架构相比1.3、doris是java团队掌控大数据能力最优选择1.4、 OLTP&#xff08;在线事务处理&#xff09; 与 OLAP&#xff08;在线分析处理&#xff09;1.5、发展历程1.6、应用现状1.7、整体架构1.7.1、…

Conda和pip的使用记录

Conda和pip的使用记录一、创建新的 Conda 环境二、激活环境三、安装其他包&#xff08;可选&#xff09;四、查看已有环境五、删除环境&#xff08;可选&#xff09;⚙️ Conda 下载缓慢的解决方案&#xff08;推荐使用国内镜像&#xff09;&#x1f527; 方法一&#xff1a;**…

详解Python标准库之互联网数据处理

详解Python标准库之互联网数据处理 在互联网时代&#xff0c;数据的产生、传输和处理无处不在。从电子邮件的收发到 API 接口的数据交换&#xff0c;从二进制数据的编码到 MIME 类型的识别&#xff0c;Python 标准库提供了一整套强大的工具集&#xff0c;帮助开发者轻松应对各种…