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 的兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章
Tensorflow 对象检测 Api M1 Macbook 冲突错误
Mac OS(M1)下 Python 下 TenserFlow 运行 出现signal 4: SIGILL等错误解决方案
Mac OS(M1)下 Python 下 TenserFlow 运行 出现signal 4: SIGILL等错误解决方案
Mac OS(M1)下 Python 下 TenserFlow 运行 出现signal 4: SIGILL等错误解决方案