【问题标题】:python errors in Apple TensorFlow on M1 (apple silicon)M1 上 Apple TensorFlow 中的 python 错误(苹果硅)
【发布时间】:2022-02-09 23:30:05
【问题描述】:

在 Big Sur 下的 M1 mac mini 上运行,最新版本。

按照当前的 Apple 文档在我创建的名为“apple_tensorflow”的虚拟环境中安装 tensorflow。苹果文档在这里: https://developer.apple.com/metal/tensorflow-plugin/

收到以下错误 - 我该如何解决?

(apple_tensorflow) GR@mysys ~ % python
Python 3.8.6 | packaged by conda-forge | (default, Jan 25 2021, 22:55:00) 
[Clang 11.0.1 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/homebrew/Caskroom/miniforge/base/envs/apple_tensorflow/lib/python3.8/site-packages/tensorflow/__init__.py", line 449, in <module>
    _ll.load_library(_plugin_dir)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/apple_tensorflow/lib/python3.8/site-packages/tensorflow/python/framework/load_library.py", line 155, in load_library
    py_tf.TF_LoadLibrary(lib)
tensorflow.python.framework.errors_impl.NotFoundError: dlopen(/opt/homebrew/Caskroom/miniforge/base/envs/apple_tensorflow/lib/python3.8/site-packages/tensorflow-plugins/libmetal_plugin.dylib, 6): Symbol not found: _OBJC_CLASS_$_MPSGraphCompilationDescriptor
  Referenced from: /opt/homebrew/Caskroom/miniforge/base/envs/apple_tensorflow/lib/python3.8/site-packages/tensorflow-plugins/libmetal_plugin.dylib (which was built for Mac OS X 12.0)
  Expected in: /System/Library/Frameworks/MetalPerformanceShadersGraph.framework/Versions/A/MetalPerformanceShadersGraph

>>> 

所有必需的依赖项都已正确安装。当我从 jupyter notebook 尝试时,也存在同样的错误。

提前感谢您的任何帮助、建议或意见。

【问题讨论】:

  • 你试过在终端输入pip install --upgrade tensorflow 吗?
  • 或者只是pip install tensorflow 也可以工作
  • 您可能需要将tensorflow 替换为apple_tensorflow

标签: python tensorflow apple-m1 macos-big-sur


【解决方案1】:

今天早上(2022 年 2 月 9 日)按照 Apple 的张量流说明进行操作时,我也遇到了这个错误。我也在大苏尔。我错过的是我们遵循的 Apple 文档适用于新的 PluggableDevices 版本的 Tensorflow,Apple 仅支持 MacOS 12.1 及更高版本。

PluggableDevices 可防止 TensorFlow 开发人员在每次新公司推出新硬件(如 Apple 的 M1)时都必须修改 TensorFlow 的核心。

因为我们仍在 Big Sur 上,所以我们将不得不使用 tensorflow-macos 的 alpha 版本。

我还没准备好升级到新版本的 MacOS,所以我安装了 Miniforge3,使用 conda 创建了一个 Python 3.8 环境(根据 tf macos alpha 的要求),并使用 github 页面上的 Alpha 说明进行安装:

([https://github.com/apple/tensorflow_macos/issues/153])

wget https://raw.githubusercontent.com/mwidjaja1/DSOnMacARM/main/environment.yml

conda env create --file=./environment.yml --name=tensorflow

conda activate tensorflow

pip install --upgrade --force --no-dependencies https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha3/tensorflow_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha3/tensorflow_addons_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl

然后我运行了 MINST 测试程序......

python ./test-minst.py
1875/1875 [==============================] - 1s 351us/step - loss: 0.0000e+00 - accuracy: 0.1062
Epoch 2/10
1875/1875 [==============================] - 1s 350us/step - loss: 0.0000e+00 - accuracy: 0.1045
Epoch 3/10
1875/1875 [==============================] - 1s 358us/step - loss: 0.0000e+00 - accuracy: 0.1050
Epoch 4/10
1875/1875 [==============================] - 1s 358us/step - loss: 0.0000e+00 - accuracy: 0.1070
Epoch 5/10
1875/1875 [==============================] - 1s 359us/step - loss: 0.0000e+00 - accuracy: 0.1069
Epoch 6/10
1875/1875 [==============================] - 1s 349us/step - loss: 0.0000e+00 - accuracy: 0.1068
Epoch 7/10
1875/1875 [==============================] - 1s 348us/step - loss: 0.0000e+00 - accuracy: 0.1049
Epoch 8/10
1875/1875 [==============================] - 1s 360us/step - loss: 0.0000e+00 - accuracy: 0.1038
Epoch 9/10
1875/1875 [==============================] - 1s 350us/step - loss: 0.0000e+00 - accuracy: 0.1056
Epoch 10/10
1875/1875 [==============================] - 1s 348us/step - loss: 0.0000e+00 - accuracy: 0.1073

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-22
    • 2022-08-16
    • 2021-09-08
    • 1970-01-01
    • 2021-06-12
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多