在Windows平台使用源码编译和安装PyTorch3D指定版本

最近在部署 SyncTalk 虚拟数字人项目时,需要安装很多依赖项,在执行到pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py38_cu113_pyt1121/download.html这一句命令时,安装 PyTorch3D 失败,输出如下信息:

(synctalk) C:\SyncTalk>pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py38_cu113_pyt1121/download.html
Looking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple, https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
ERROR: Could not find a version that satisfies the requirement pytorch3d (from versions: none)
ERROR: No matching distribution found for pytorch3d

于是,我就想着克隆 facebookresearch/pytorch3d 官方仓库源码,自行通过本地编译的方式进行安装。

了解到 SyncTalk 虚拟数字人项目依赖的 Pytorch 版本是 1.12.1,CUDA 版本是 11.3,PyTorch3D 版本是 0.7.2。

而编译 PyTorch3D 除了依赖 CUDA 之外,需要另外依赖 CUB 和 Visual Studio 2017 或 Visual Studio 2019。

根据 CUB 官方建议,CUDA 11.3 对应的 CUB 版本是 1.11.0,对照表地址:https://github.com/NVIDIA/cub

所以从 CUB 官方仓库 下载了 1.11.0 版本压缩包:https://github.com/NVIDIA/cub/archive/refs/tags/1.11.0.zip,将其解压到任意路径,

我是解压到 C:\Program Files\cub-1.11.0,然后配置 CUB_HOME 系统环境变量,填的也是这个路径,不需要额外添加到 PATH 系统环境变量。

另外,也配置了 CUDA_HOME 这个系统环境变量,指向 CUDA Toolkits 11.3 的安装路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3

以及向系统环境变量 PATH 追加了 %CUDA_HOME%\bin;%CUDA_HOME%\libnvvp;

需要再次强调的是,这里配的是系统环境变量,不是用户环境变量。系统全局范围生效,而不是当前用户生效。

至于 Visual Studio 2017 或 Visual Studio 2019,我电脑只安装了 Visual Studio 2022,

而VS官方下载页已经不开放 VS2019 及更早版本的下载,即便是登录 Microsoft 账号跳转到订阅服务页面,普通订阅也获取不到可用的下载地址。

经过一番搜索,发现这几个永久下载链接还没失效,大家可以下载收藏:

  • 最新版本 Microsoft C++ 生成工具 - Visual Studio:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/
  • Visual Studio 2022 Build Tools 下载:https://aka.ms/vs/17/release/vs_BuildTools.exe
  • Visual Studio 2019 Build Tools 下载:https://aka.ms/vs/16/release/vs_BuildTools.exe
  • Visual Studio 2017 Build Tools 下载:https://aka.ms/vs/15/release/vs_BuildTools.exe

Visual Studio 生成工具 安装后,需要重启电脑。

解决了前置依赖条件和编译环境后,打开 x64 Native Tools Command Prompt for VS 2017x64 Native Tools Command Prompt for VS 2019,执行以下命令,开始克隆 PyTorch3D 0.7.2 版本,同时进行编译和安装:

(synctalk) C:\SyncTalk>set DISTUTILS_USE_SDK=1
pip install "git+https://github.com/facebookresearch/pytorch3d.git@v0.7.2"

编译并且安装成功后,我们验证一下是否可用:

(synctalk) C:\SyncTalk>python -c "import torch; import pytorch3d; print('PyTorch version:', torch.__version__); print('PyTorch3D version:', pytorch3d.__version__)"
PyTorch version: 1.12.1+cu113
PyTorch3D version: 0.7.2

PS:CUDA Toolkits 11.3 的下载地址为:https://developer.nvidia.com/cuda-11.3.0-download-archive

如果要编译和安装 PyTorch3D 最新稳定版,可以把 @v0.7.2 改为 @stable

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

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

相关文章

忘记帝国CMS后台的管理员账号、密码、认证码或安全答案时怎么办

忘记账号在 phome_enewsuser 表中查看 username 字段的内容。忘记密码在 phome_enewsuser 表中修改 password 字段为 "322d3fef02fc39251436cb4522d29a71"。 修改 salt 字段为 "abc"。忘记认证码在 e/class/config.php 文件中将 $do_loginauth 设置为 0。忘…

重建帝国cms数据索引表,用于ecms_news_index表损坏丢失或者错误

当帝国CMS的 ecms_news_index 表损坏或丢失时,可以通过以下步骤重建数据索引表。这些操作需要在数据库中执行,请确保在执行前备份所有相关数据。 重建 ecms_news_index 表 步骤 1: 创建临时表 ecms_newstempsqlCREATE TABLE [!db.pre!]ecms_newstemp AS (SELECT id, classid,…

PHP报错getimagesize(): SSL operation failed with code 1问题解决方案

这个 PHP 错误通常发生在尝试通过 HTTPS 协议获取图像时,由于缺少或过期的 CA 证书导致 SSL 连接验证失败。以下是详细的解决方案: 解决方案一:更新 CA 证书下载最新的 CA 证书访问 curl 官方提供的 CA 证书 页面下载 cacert.pem 文件。上传证书文件将下载的 cacert.pem 文件…

串口使用DMA数据接收和发送

串口DMA部分在这里我一共分3个部分进行介绍,第一部分介绍什么是DMA第二部分是介绍串口DMA+空闲中断实现不定长数据的收发。第三部分是串口DMA中断实现数据收发。 第一部分DMA介绍 一、基本概念DMA是直接寄存器,这是指一种高速的数据传输操作,允许在外部设备和存储器和寄存器…

帝国CMS忘记后台管理员帐号解决办法

忘记后台管理员账号查看账号使用 phpMyAdmin 登录数据库。 寻找 phome_enewsuser 表。 查看 username 字段的内容,这将是你的管理员账号。忘记后台登录密码修改密码使用 phpMyAdmin 登录数据库。 寻找 phome_enewsuser 表。 修改 password 字段的内容为 "322d3fef02fc392…

宝塔面板“抱歉,站点已暂停”提示页面的修改

在宝塔面板中,如果站点被暂停,通常会显示一个默认的提示页面:“抱歉,站点已暂停”。如果你希望自定义这个提示页面,可以通过以下步骤进行修改: 1. 备份站点文件 在进行任何修改之前,建议先备份站点文件,以防万一修改出错。bashtar czf backup.tar.gz /www/wwwroot/your…

帝国cms把文章内容都存放到根目录方法

扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、二次开发、PSD转HTML、网站被黑、网站漏洞修复等。专业解决各种疑难杂症,您有任何网站问题都…

帝国CMS安装时出现You have an error in your SQL syntax错误代码的解决方法

在安装 EmpireCMS 时遇到 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near TYPE=MYISAM 的错误,通常是由于数据库版本不兼容导致的。以下是详细的解决方法: 1. 选择正确的 MySQL…

帝国cms模板里显示发布信息人的ip地址

要在 EmpireCMS 模板中显示发布信息人的 IP 地址,可以按照以下步骤进行操作: 1. 管理数据表登录 EmpireCMS 后台。 进入数据表管理:依次点击:管理数据表 -> 管理字段。添加一个 IP 字段:点击 添加字段。 输入字段名称 infoip。 字段类型选择 VARCHAR。 长度设置为 15。…

帝国cms打开升级页面e/update/index.php是空白

遇到 EmpireCMS 升级页面 e/update/index.php 显示空白的问题,通常是由于某些配置或权限问题导致的。以下是详细的解决步骤:检查“关闭所有动态页面”设置登录 EmpireCMS 后台。 进入“系统设置” -> “基本设置”。 确认“关闭所有动态页面”选项是否被开启。 如果开启,…

帝国CMS刷新数据表article提示Table ‘empirecms.phome_ecms_’ doesn’t exist的解决

遇到 EmpireCMS 刷新数据表时提示 Table ‘empirecms.phome_ecms_’ doesn’t exist 的问题,通常是因为数据表结构不一致或数据表缺失导致的。以下是详细的解决步骤: 1. 分析问题原因 问题描述中的 SQL 语句提示:sqlTable ‘empirecms.phome_ecms_’ doesn’t exist这表明某…

右键新建.xopp文件

模板文件 创建一个模板文件放在什么位置都可以(稳定不能删除的位置)注册表编辑器新建Xournal++.File项 这个对应的是右键新建后显示的内容在Xournal++.File项下新建ShellNew项 在ShellNew项下新建字符串值FileName和NullFile FileName设置数值数据(模板文件位置)参考 https…