在Apple Mac M1上运行tensorflow-macos 2.11.0会导致运行时错误。
在Apple Mac M1上运行tensorflow-macos 2.11.0会导致运行时错误。
我正在使用苹果MacBook Air M1上的PyCharm来学习TensorFlow的基础知识。我使用Anaconda创建了开发环境,具体如下:
- Python版本:3.9.15
- tensorflow-macos版本:2.11.0
- tensorflow-metal版本:0.7.0
- numpy版本:1.21.5
我在我的代码中导入了TensorFlow,如下所示:
import os import tensorflow as tf import pandas as pd from sklearn.preprocessing import MinMaxScaler
当我在我的"training_loop final.py"文件中运行这段代码时,出现以下运行时错误:
/Users/kapo/opt/anaconda3/envs/env_tf/bin/python /Users/kapo/PycharmProjects/tensorflow-course/03/training_loop final.py RuntimeError: module compiled against API version 0x10 but this version of numpy is 0xf RuntimeError: module compiled against API version 0x10 but this version of numpy is 0xf ImportError: numpy.core._multiarray_umath failed to import ImportError: numpy.core.umath failed to import Traceback (most recent call last): File "/Users/kapo/PycharmProjects/tensorflow-course/03/training_loop final.py", line 2, inimport tensorflow as tf File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/__init__.py", line 37, in from tensorflow.python.tools import module_util as _module_util File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/__init__.py", line 42, in from tensorflow.python import data File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/data/__init__.py", line 21, in from tensorflow.python.data import experimental File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/data/experimental/__init__.py", line 96, in from tensorflow.python.data.experimental import service File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/data/experimental/service/__init__.py", line 419, in from tensorflow.python.data.experimental.ops.data_service_ops import distribute File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/data/experimental/ops/data_service_ops.py", line 22, in from tensorflow.python.data.experimental.ops import compression_ops File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/data/experimental/ops/compression_ops.py", line 16, in from tensorflow.python.data.util import structure File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/data/util/structure.py", line 22, in from tensorflow.python.data.util import nest File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/data/util/nest.py", line 34, in from tensorflow.python.framework import sparse_tensor as _sparse_tensor File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/framework/sparse_tensor.py", line 24, in from tensorflow.python.framework import constant_op File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/framework/constant_op.py", line 25, in from tensorflow.python.eager import execute File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/eager/execute.py", line 21, in from tensorflow.python.framework import dtypes File "/Users/kapo/opt/anaconda3/envs/env_tf/lib/python3.9/site-packages/tensorflow/python/framework/dtypes.py", line 34, in _np_bfloat16 = _pywrap_bfloat16.TF_bfloat16_type() TypeError: Unable to convert function return value to a Python type! The signature was () -> handle Process finished with exit code 1
有人知道我该如何解决这个问题吗?而且"module compiled against API version 0x10 but this version of numpy is 0xf"是什么意思?
Running tensorflow-macos 2.11.0 give runtime error on Apple Mac M1
问题原因:tensorflow-macos 2.11.0无法在当前环境下运行。需要将python升级到3.10才能运行tensorflow-macos 2.10.0。此外,numpy缺少依赖,建议将其升级至至少1.23.4版本。当前版本的tensorflow不支持python 3.11,所以使用python 3.10是最佳选择。
解决方法:
1. 升级python至3.10版本。
2. 升级numpy至至少1.23.4版本。
代码示例:
# 升级python至3.10版本
$ python3.10 -m pip install --upgrade python
# 升级numpy至至少1.23.4版本
$ python3.10 -m pip install --upgrade numpy==1.23.4
注意事项:
请确保在升级python和numpy之前,先安装了tensorflow-macos 2.10.0,并在升级完成后重新运行程序。