【发布时间】:2023-01-25 04:50:37
【问题描述】:
我用python 3.10创建了一个virtualenv,并根据open3d-ml网页上的说明安装了open3d和PyTorch:Open3d-ML但是当我用import open3d.ml.torch测试它时,我得到了错误:
Exception: Open3D was not built with PyTorch support!
重现步骤
python3.10 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install open3d
pip install torch torchvision torchaudio
错误
% python -c "import open3d.ml.torch as ml3d"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/xx/.venv/lib/python3.10/site-packages/open3d/ml/torch/__init__.py", line 34, in <module>
raise Exception('Open3D was not built with PyTorch support!')
Exception: Open3D was not built with PyTorch support!
环境:
% python3 --version
Python 3.10.9
% pip freeze
open3d==0.16.1
torch==1.13.1
torchaudio==0.13.1
torchvision==0.14.1
操作系统
macOS 12.6
Kernel Version: Darwin 21.6.0
我还检查了以下类似问题,但他们没有答案:
https://github.com/isl-org/Open3D/discussions/5849
https://github.com/isl-org/Open3D-ML/issues/557
根据这个问题5849,问题不能只与 MacOs 有关,因为在 Ubuntu20.04 的 docker 中,存在类似的错误。
有谁知道我们如何解决这个问题?
【问题讨论】:
-
我还没有尝试过 Open3D-ML。首先,如果我正确地查看了自述文件,CUDA 将不是一个选项,因此它可能只需要是 CPU。此外,看起来他们支持非常特定版本的 Torch(PyTorch 1.8.2 CPU(或1.12.0+cu116)。我会尝试先安装一个版本的 PyTorch 1.8.2 CPU,然后从支持 ML/Pytorch 的源代码构建 Open3D (使用 CMake):以防万一您的 Mac CPU 没有预构建的 pip wheels(例如 M1、M2 等)....
-
...虽然这可能会浪费很多时间。从务实的角度来看,我会看看是否可以借用/使用 Ubuntu 机器先试用一下,看看它是否具有您需要的功能,然后再投资到 MacOS CPU 版本。 (也许您可以通过 Google Colab 或类似服务在免费的 Ubuntu VM 上试用它?)
-
谢谢 George 的 cmets。我在 ubuntu 20.04 上尝试了 Open3d-ML,它运行良好(这是一个与 python 3.9 一起工作的旧版本)。现在我想在我的 Mac 上安装它(我换了笔记本电脑)。我尝试在我的 Mac 上安装 Torch 1.8.2,经过一番努力,我可以找到 macos-arm64 轮子并在带有 python3.8 的 venv 中手动安装
torch-1.8.1-cp38-none-macosx_11_0_arm64.whl。然后我安装了open3d-0.14.1-cp38-cp38-linux_aarch64.whl但是我得到一个错误... -
这是错误:
ImportError: dlopen(/venv38/lib/python3.8/site-packages/torch/_C.cpython-38-darwin.so, 0x0002): tried: '/venv38/lib/python3.8/site-packages/torch/_C.cpython-38-darwin.so' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))) -
还要注意 requirements-torch 这部分:
sys_platform != 'darwin'。这暗示预编译版本的 pytorch cpu 与 OSX 不兼容。 (我确实看到了articles about M1 Pytorch,我没有 M1 mac 来测试,也不知道是否有适用于 PyTorch 1.12.0 的 M1 轮)。为了安全起见,我会选择缓慢/乏味的路线:1. git clone 并构建 PyTorch(例如 checkout 1.12.0)from source 2. git clone 并构建 Open3D
标签: python python-3.x pytorch open3d