pytorch 在Apple M1中安装变压器库不起作用

ozxc1zmp  于 2023-03-18  发布在  其他
关注(0)|答案(1)|浏览(184)

我正在尝试安装rust-bert。不幸的是,我有一个Apple M1,这个库不是为新的ARM芯片设计的。特别是,pytorch和libtorch库没有链接。
这个错误在这个github issue中有描述。我已经遵循了线程中的建议,但两个建议的解决方案都不起作用。如果我们能有一个解决方案,它将对Rust社区非常有用,因为它看起来像一个有大量应用程序的令人兴奋的库。
编辑-问题的完整描述-我不能安装这个库,因为这个库说libtorch不能在mac arm 64上使用。我已经通过homebrew安装了这个库,在下载和安装pytorch的过程中通过了这个库,还通过anaconda安装了这个库。我还修改了符号链接。到目前为止还没有任何效果。
以下是错误代码段,其中包括构建不正确的库-

= note: ld: warning: ignoring file /Users/peterweyand/Code/rust-bert/target/debug/build/torch-sys-d926b35b7e909d7c/out/libtorch/libtorch/lib/libtorch.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
          ld: warning: ignoring file /Users/peterweyand/Code/rust-bert/target/debug/build/torch-sys-d926b35b7e909d7c/out/libtorch/libtorch/lib/libtorch_cpu.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
          ld: warning: ignoring file /Users/peterweyand/Code/rust-bert/target/debug/build/torch-sys-d926b35b7e909d7c/out/libtorch/libtorch/lib/libc10.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
          Undefined symbols for architecture arm64:

我在github上添加了问题-
https://github.com/guillaume-be/rust-bert/issues/326
https://github.com/pytorch/pytorch/issues/96959
我使用pip3 install torch===1.13.0尝试了pytorch的最后三个版本(1.13.0、1.13.1和2.0.0),都出现了同样的错误。
所以看起来不像是版本问题。
下面是我的python环境,它符合pytorch的错误要求-

Versions

peterweyand@Peters-MacBook-Pro rust-bert % python collect_env.py
Collecting environment information...
PyTorch version: 2.0.0
Is debug build: False
CUDA used to build PyTorch: None
ROCM used to build PyTorch: N/A

OS: macOS 13.1 (arm64)
GCC version: Could not collect
Clang version: 15.0.7
CMake version: version 3.25.1
Libc version: N/A

Python version: 3.8.16 (default, Mar 1 2023, 21:18:45) [Clang 14.0.6 ] (64-bit runtime)
Python platform: macOS-13.1-arm64-arm-64bit
Is CUDA available: False
CUDA runtime version: No CUDA
CUDA_MODULE_LOADING set to: N/A
GPU models and configuration: No CUDA
Nvidia driver version: No CUDA
cuDNN version: No CUDA
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Apple M1 Pro

Versions of relevant libraries:
[pip3] numpy==1.24.2
[pip3] torch==2.0.0
[pip3] torchaudio==2.0.1
[pip3] torchvision==0.15.1
[conda] numpy 1.24.2 pypi_0 pypi
[conda] numpy-base 1.23.5 py38h90707a3_0
[conda] torch 2.0.0 pypi_0 pypi
[conda] torchaudio 2.0.1 pypi_0 pypi
[conda] torchvision 0.15.1 pypi_0 pypi
xqkwcwgp

xqkwcwgp1#

您的计算机上混合了仅Intel和仅ARM的库。
我不知道哪一个来自哪里,但无论是你的自制或你的 rust 已经安装之前,你切换到M1的Mac,仍然是在英特尔版本,并运行模拟下Rostetta不知道你有ARM的Mac。
您需要从系统中清除所有仅英特尔库。
重新安装Rust:rustup self uninstall,然后再次https://rustup.rs。全新安装将给予你一个新的苹果硅兼容版本的 rust 。
如果这不起作用,那么您的Homebrew是英特尔唯一的,并更新或重新安装Homebrew。
torch-syshttps://download.pytorch.org/libtorch/cpu/libtorch-macos-1.13.0.zip下载libtorch,此zip文件包含仅适用于英特尔的库。
您可能需要要求https://pytorch.org/开始将库构建为支持ARM的通用二进制。
https://github.com/LaurentMazare/tch-rs/issues/629

相关问题