pytorch3d安装遇到的一些坑和解决过程

最近为了安装pytorch3d,折腾了两天,足足两天!

要注意,安装pytorch3d之前,必须先安装pytorch torchvision

Pytorch3d官方 是建议用conda install的方式来安装,也可以用pip来安装:

pip install PyTorch torchvision -c pytorch-nightly

1.首先说一下MacOS M1 芯片安装情况,刚开始使用的是:

conda install pytorch3d -c pytorch3d

会安装完成,但是安装完以后执行.py文件跑程序时,会出现无法引用pytorch3d的问题,也尝试过用pip install pytorch3d ,这种方式会安装成最低版本:0.0.1,跑代码的时候依然出现无法应用的问题。

也尝试过这个方法:MacBook m1安装GPU版PyTorch与简单测试 - 知乎 并且修改了项目中的device值为‘mps’,如:device='mps',但是跑程序的时候还是会出现无法引用pytorch3d异常。搜索了好久,看到一个遇到同样的问题,最终通过源码安装成功了,加上刚开始我在ubuntu18.04 系统上安装了好久pytorch3d都没成功,然后我选择了源码安装

2.通过源码安装pytorch3d

git clone https://github.com/facebookresearch/pytorch3d.git
cd pytorch3d
pip install -e .

过程有点久,但是安装成功会提示:Successfully installed pytorch3d-0.7.0

安装之前可以先使用:rm -rf build/ **/*.so 清理掉pytorch3d目录下的build文件夹,因为这个文件夹里面会生成当前设备对应的pytorch3d包。安装完成以后会生成两个文件夹:

pytorch3d/build/temp.macosx-11.1-arm64-cpython-39

pytorch3d/build/lib.macosx-11.1-arm64-cpython-39

如果只看到temp文件夹,那说明还没编译完成

但是我在macos m1上安装完成以后,跑程序时,提示异常:

ImportError: dlopen(/Users/xx/Desktop/pytorch3d/pytorch3d/_C.cpython-39-darwin.so, 0x0002): tried: '/Users/xx/Desktop/pytorch3d/pytorch3d/_C.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e'))

看起来当前有x86_64架构的pytorch3d,但是需要arm64结构的,当我用pip list 查看的时候,发现其中有一条:

pytorch3d               0.7.0              /Users/xx/Desktop/pytorch3d

而对应的 /Users/xx/Desktop/pytorch3d/build中也是arm64架构的,不知道什么原因,我目前没能在macos m1的设备上跑起来。接下来继续转战Ubuntu18.04

3.在Ubuntu18.04中安装

在这个环境我花了大部分的时间,同样遇到了和mac系统一样的无法引用pytorch3d的问题,还遇到了torch版本和cuda版本不匹配的问题,尝试过升级cuda,也按照官方文档:Start Locally | PyTorch 尝试了conda安装,会出现pytorch3d无法引用torch的问题,需要安装完torch以后,再安装pytorch3d。这个过程遇到了很多奇怪的问题,最后还是用源码安装pytorch3d解决了问题

总结:用conda和pip直接安装pytorch3d可能比较快,但可能无法引用,用源码安装应该都能解决问题。

cuda、pytorch、pytorch3d、torchvision、torchaudio 之间有较强的版本依赖,尤其是cuda11之前的版本不支持超过7.5算力的设备,需要先升级cuda版本到11以上,再安装pytorch相关库,再安装pytorch3d。

你可能感兴趣的:(pytorch,深度学习,python)