【问题标题】:Installing Open3d-Ml with Pytorch (on MacOs)使用 Pytorch 安装 Open3d-Ml(在 MacO 上)
【发布时间】: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

Open3D-ML and pytorch

根据这个问题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


【解决方案1】:

使用 cmake 构建时需要启用 PyTorch / Tensorflow - 查看https://medium.com/@kidargueta/installing-open3d-ml-for-3d-computer-vision-with-pytorch-d640a6862e19http://www.open3d.org/docs/release/compilation.html

cmake -DBUILD_CUDA_MODULE=ON -DGLIBCXX_USE_CXX11_ABI=OFF -DBUILD_PYTORCH_OPS=ON -DBUILD_CUDA_MODULE=ON -DBUNDLE_OPEN3D_ML=ON -DOPEN3D_ML_ROOT=Open3D-ML -DBUILD_JUPYTER_EXTENSION:BOOL=ON -DBUILD_WEBRTC=ON -DBUILD_WEBRTC=ON -_DOPEN3D-com org/Open3D-ML.git -DPython3_ROOT=/path/to/your/conda-env/bin/python ..

【讨论】:

    猜你喜欢
    • 2021-03-06
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2021-08-12
    • 2019-12-21
    • 1970-01-01
    相关资源
    最近更新 更多