最近为了安装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。