linux 安装pytorch3d的坑

事实上,只要按照官方文档的说明就可以完美安装。其中坑的地方在于conda的管理可能会导致下载的版本不符合你的要求(例如下载成了cpu版本、下载的cuda版本)而同样尝试使用源码编译以及其他方式下载库都会导致同样的问题,这里主要的原因是由于python的版本不对以及conda 版本不对。这里先简单总结一下本人成功安装的步骤,再简单阐述一下其中的坑,请务必完整阅读后再进行安装。

安装步骤

由于pytorch3d对于conda的要求非常刁钻,!!!这里十分建议重新创建一个虚拟环境!!!
官方链接
此外,目前测试python3.11还不可用,python3.8有点老(不太推荐)

conda create -n pytorch3d python=3.10
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
conda install -c fvcore -c iopath -c conda-forge fvcore iopath
conda install pytorch3d -c pytorch3d
#for test
pip install scikit-image matplotlib imageio plotly opencv-python

问题列表

1、conda问题

下载速度过慢/solving environment 一直转圈

下载速度过慢可以尝试更换源
清华源

vim ~/.condarc

清除原有内容,将下面内容复制进去。保存并退出。

channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/clouddeepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

最后,使用如下命令

 conda clean -i

如果出现了solving environment转圈然后失败,可能是因为你之前就已经通过命令行的方式换过源了,这将会导致换源后需要搜索的目标过大,从而导致解析失败。解决方法与上述一致,更新过后的源将会是非常干净的清华源。
当然,一直转圈的原因也有可能是conda版本过旧,可以使用如下方法更新conda

更新conda

conda update -n base -c defaults conda

若失败,则尝试

conda update -n base -c defaults conda --repodata-fn=repodata.json

2、安装pytorch3d中重新又安装了一个pytorch的cpu版本

(1)我们强烈建议先检查一下conda版本是否过低,当确认无误后再查看本节。
(2)注意:请不要使用pip来安装pytorch环境
这是因为使用pip安装的pytorch环境将不会被conda安装的pytorch3d环境检测到,这样的话会导致其认为没有pytorch的合适版本而重新安装一次,这样将会导致你之前的pytorch环境完全崩溃
(3)请检查python版本是否过老或过新

3、cuda问题

有关cuda的一些简单概念参考
我们知道pytorch和pytorch都需要使用gpu版本。但是我们需要注意到pytorch系列使用到的cuda相关工具都会再conda安装时被自动嵌入到相关环境中(如果你仔细观察会发现conda下载时会下载一些带有cuda的包),老版本的pytorch中会下一个cudatoolkit,好像新版本中不需要了。因此,我们这里所参考的cuda版本实际上就是pytorch对应后面的版本,例如
在这里插入图片描述
而像外部环境中nvida-smi 和nvcc- V的版本这里都不用管
为了增加论证,这里列出我的这两个相应的显示结果
在这里插入图片描述
在这里插入图片描述
可以看出,我的这两个版本与我下载的pytorch-cuda版本均不一致,但不影响使用
by the way:下载pytorch的时候还是要保证其gpu版本尽量和nvidia-smi显示的版本尽量一致,否则会出现虽然正常检测但是运算速度极慢的情况。

测试

请在安装pytorch后测试如下代码,检测你的版本和gpu是否可用

import torchprint(torch.__version__)
print(torch.cuda.is_available())

请在安装pytorch3d后测试如下代码,检测你的pytorch3d是否可用
CMU 3dvision 作业1

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

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

相关文章

79、如何实现接口幂等性

如何实现接口的幂等性 唯一id。每次操作,都根据操作和内容生成唯一的id,在执行之前先判断id是否存在,如果不存在则执行后续操作,并且保存到数据库或者redis等。服务端提供发送token的接口,业务调用接口前先获取token,…

redis基本操作

string数据类型的命令操作 设置键值 使用append 命令设置键值,后面跟键的名字,可以先判断该建是否存在,存在将值追加在后面,不存在自动添加该建 append mykey hello读取键值 get mykey数值类型自减1 数值类型自加1 查看值的…

每天一道C语言编程练习(5):尼科彻斯定理

题目描述 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 输入格式 任一正整数 输出格式 该数的立方分解为一串连续奇数的和 样例输入 13 样例输出 13*13*132197157159161163165167169171173175177179181 代码如下&#…

spring boot面向切面编程aop

一、什么是AOP AOP,Aspect Oriented Programming,面向切面编程 举个例子来理解 如果我们的业务需要额外做三件事情,判断是否已经登录,记录日志,统计业务执行时长 传统的做法是这样子的: 而apo的实现是这…

【PHP面试题74】PHP有哪些魔术方法,如何使用他们?

文章目录 一、前言二、模式方法讲解2.1 __construct()2.2 __destruct()2.3 __get()和__set()2.4 __call()和__callStatic()2.5 __toString()2.6 __invoke() 三、总结 一、前言 本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题&…

用于验证 JSON 数据是否符合指定 JSON Schema 的函数,并使用断言进行验证结果

PYTHON 用于验证 JSON 数据是否符合指定 JSON Schema 的函数,并使用断言进行验证结果 from jsonschema import validate, draft7_format_checker, SchemaError, ValidationErrordef jsonschema_assert(code, msg, schema, jsonSchema):assert code codeassert msg…

资深测试总结,自动化测试-JSON+YAML+CSV+Excel数据驱动(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 数据驱动 在自动…

【Linux】udp服务器实现大型网络聊天室

udp终结篇~ 文章目录 前言一、udp服务器实现大型网络聊天室总结 前言 根据上一篇文章中对于英汉互译和远程操作的两个小功能大家应该已经学会了,我们的目的是让大家可以深刻的理解udp服务器所需要的接口已经实现的简单步骤,下面我们开始实现网络聊天室。…

微信小程序custom-tab-bar

微信小程序自定义tab-bar。 tab-bar使用tdesign中的t-tab-bar 1 在项目下新建custom-tab-bar文件夹&#xff0c;新建index 组件。 1.1 index.wxml中增加t-tab-bar <t-tab-bar value"{{value}}" bindchange"onChange" theme"tag" split&…

STM32单片机语音识别台灯控制系统人检测亮度调节

实践制作DIY- GC00156-语音识别台灯控制系统 一、功能说明&#xff1a; 基于STM32单片机设计-语音识别台灯控制系统 二、功能说明&#xff1a; 电路&#xff1a;STM32F103C系列最小系统串口语音识别模块LED灯板1个红外传感器 1.任何时候没有人则关闭灯。有人可以自动打开灯。…

Python物联网开发-Python_Socket通信开发-Python与Tcp协议物联网设备通信-Socket客户端

一、前言 Python在物联网开发中的重要愈来愈重&#xff0c;因此&#xff0c;掌握Python语言与物联网设备之间的通信就显得尤为重要&#xff0c;可以通过编写Python程序实现获取物联网设备的传感器数值并可以更改物联网设备上的执行器状态。 二、程序实现 首先&#xff0c;当使…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 一)

初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。因此&#xff0c;在学习ArkTS语言之前&#xff0c;建议开发者具备TS语…

LeetCode解题记录(一)

1、两数之和 题目描述&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 示例 1&#xff1a;输入&#xff1a;nums [2,7,11,15], target 9 输出&#xff1…

LangChain(3)对话缓存方式 Conversational Memory

LLM 默认是无状态的&#xff0c;即询问当前的问题与上下文无关&#xff0c;当我们需要将多轮对话信息给到LLM 时&#xff0c;就需要使用缓存Memory。缓存方式有多种。 from langchain import OpenAI from langchain.chains import ConversationChain# first initialize the la…

Linux内核的任务:

硬件与软件之间的中间层&#xff1a;内核在技术层面上充当硬件和软件之间的中间层&#xff0c;负责将应用程序的请求传递给硬件&#xff0c;并处理硬件设备和组件的寻址和操作。 应用程序的接口&#xff1a;对于应用程序来说&#xff0c;内核是它们与硬件之间的接口。应用程序通…

抓 https 报文新方案 -Magisk+LSPosed,来试试吧

关于如何抓取Android端https报文&#xff0c;在之前一篇文章中有介绍可以通过VitualXposedJustTrustMe模块禁用SSL验证&#xff0c;这样可以抓取到https&#xff0c;还是有一些同学反馈以下的一些问题&#xff1a; App在低版本的Android上不兼容&#xff0c;需要用高版本的And…

uniapp 集成七牛云,上传图片

1 创建项目 我是可视化创建项目的 &#xff0c;cli创建的项目可以直接使用npm安装七牛云。 2 拷贝qiniuUploader.js到项目&#xff0c;下面的回复 放了qiniuUploader.js百度云链接。 3 在需要使用qiniuUploader的vue文件 引入。 4 相册选择照片&#xff0c;或者拍照后&#xff…

视频问答新增或修改视频问答

通过问答id新增或修改视频问答题目 新增或修改视频问答 图3&#xff1a;视频问答功能&#xff08;观看效果&#xff09; 图4&#xff1a;视频问答功能&#xff08;观看效果&#xff09; 图5&#xff1a;视频问答功能&#xff08;观看效果&#xff09; 单元测试 Testpublic voi…

zabbix 6.0 监控LNPM环境

这里的LNPM是指Linux&#xff0c;Nginx,php-fpm和Mysql.具体版本如下。 Linux : centos7.9Nginx: 1.22.1php-fpm:7.4Mysql: 8.0 一、centos7.9 编译安装Nginx 为了弄清楚Nginx各种配置&#xff0c;我们采用编译安装的形式部署Nginx。 1.下载安装包 首先下载Nginx软件包&am…

oracle unpivot用法

Oracle UNPIVOT函数是将列旋转为行的一种方式。UNPIVOT函数可以将多个列转换为对应的行&#xff0c;以便进行聚合或插入操作。UNPIVOT函数可以将多个列转换为对应的行&#xff0c;以便进行聚合或插入操作。下面是使用UNPIVOT函数的示例&#xff1a; 假设我们有一个表&#xff…