TensorFlow 2.5 Mac M1 - 安装与 NumPy 库/Conda env 的兼容性问题

Posted

技术标签:

【中文标题】TensorFlow 2.5 Mac M1 - 安装与 NumPy 库/Conda env 的兼容性问题【英文标题】:TensorFlow 2.5 Mac M1 - Installing problem compatibility with NumPy library / Conda env 【发布时间】:2021-10-29 22:01:45 【问题描述】:

我在使用针对 M1(Macbook pro-2020)优化的新 Tensorflow 2.5 创建 conda 环境时遇到了很大的问题。

我遵循了这些步骤:

    从https://github.com/conda-forge/miniforge安装针对arm64处理器优化的miniforge3 然后在终端上创建一个 conda env(“conda create --name tf25”和“conda activate tf25”) 按照苹果指南 (https://developer.apple.com/metal/tensorflow-plugin/) 进行操作后

这是结果:

最后,当我尝试导入 NumPy 包时,出现导入错误。

import numpy

Traceback(最近一次调用最后一次):文件 "/Users/antoniosquicciarini/miniforge3/envs/tf25/lib/python3.9/site-packages/numpy/core/init.py", 第 22 行,在 从 。导入多数组文件“/Users/antoniosquicciarini/miniforge3/envs/tf25/lib/python3.9/site-packages/numpy/core/multiarray.py”, 第 12 行,在 从 。导入覆盖文件“/Users/antoniosquicciarini/miniforge3/envs/tf25/lib/python3.9/site-packages/numpy/core/overrides.py”, 第 7 行,在 从 numpy.core._multiarray_umath 导入(ImportError: dlopen(/Users/antoniosquicciarini/miniforge3/envs/tf25/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-darwin.so, 2):库未加载:@rpath/libcblas.3.dylib 引用自: /Users/antoniosquicciarini/miniforge3/envs/tf25/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-darwin.so 原因:找不到图片

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 "/Users/antoniosquicciarini/miniforge3/envs/tf25/lib/python3.9/site-packages/numpy/init.py", 第 140 行,在 从 。导入核心文件“/Users/antoniosquicciarini/miniforge3/envs/tf25/lib/python3.9/site-packages/numpy/core/init.py”, 第 48 行,在 引发 ImportError(msg) ImportError:

重要提示:请阅读本文以获取有关如何解决此问题的建议!

导入 numpy C 扩展失败。此错误可能发生在 原因很多,通常是由于您的设置或 NumPy 的问题 已安装。

我们在以下位置汇总了一些常见原因和故障排除提示:

https://numpy.org/devdocs/user/troubleshooting-importerror.html

请注意并检查以下内容:

Python版本为:Python3.9起 "/Users/antoniosquicciarini/miniforge3/envs/tf25/bin/python" NumPy 版本为:“1.19.5”

并确保它们是您期望的版本。请仔细 研究上面链接的文档以获得更多帮助。

原来的错误是: dlopen(/Users/antoniosquicciarini/miniforge3/envs/tf25/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-darwin.so, 2):库未加载:@rpath/libcblas.3.dylib 引用自: /Users/antoniosquicciarini/miniforge3/envs/tf25/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-darwin.so

原因:图片未找到

我已经尝试过:

用 pip 安装 numpy 安装较低版本的python (3.8)

我认为新的 TensorFlow 和 NumPy 库存在兼容性问题,因为直到今天我还在另一个 conda env 中使用了 TensorFlow 2.4

【问题讨论】:

按照官网说明在Mac上安装Tensorflow tensorflow.org/install/pip#macos 我也有同样的问题。官方网站并没有真正的帮助。如果你有修复,请告诉我。 【参考方案1】:

答案已发布在这里

Original error was: dlopen(/Users/ulto4/miniforge3/envs/python386/lib/python3.8/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so, 2):

你需要安装openblas:

conda install -c conda-forge openblas

这修复了错误并且 numpy 可以正常工作。

【讨论】:

天哪。尝试将 tensorflow 安装到我的 M1 pro 上时,我经历了两天的痛苦。你的评论救了我。谢谢你。对于其他有痛苦的人。我用这个来开始教程:caffeinedev.medium.com/… 在许多其他无法解决的随机问题之后,我重新启动了我的笔记本电脑。这是我的最后一个问题,现在它可以工作了。 @EnergyNet 是我的英雄。

以上是关于TensorFlow 2.5 Mac M1 - 安装与 NumPy 库/Conda env 的兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章

Mac M1开发环境配置---tensorflow

Tensorflow 对象检测 Api M1 Macbook 冲突错误

无法在 M1 Mac 上安装 OpenCV Python

Mac OS(M1)下 Python 下 TenserFlow 运行 出现signal 4: SIGILL等错误解决方案

Mac OS(M1)下 Python 下 TenserFlow 运行 出现signal 4: SIGILL等错误解决方案

Mac OS(M1)下 Python 下 TenserFlow 运行 出现signal 4: SIGILL等错误解决方案