在Apple Mac M1上运行tensorflow-macos 2.11.0会导致运行时错误。

8 浏览
0 Comments

在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, in 
    import 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"是什么意思?

0
0 Comments

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,并在升级完成后重新运行程序。

0