Apple MacBook M1 Anaconda安装 Tensorflow

Apple MacBook M1 Anaconda安装 TensorflowMacBookAirM1 芯片安装 Tensorflow 踩坑踩坑 1 在 macm1 上安装 tensorflow 报错 zsh illegalhardw 环境 anaconda python3 8 直接用 pipinstallte 安装 能够顺利安装 tensorflow2 5 0 但是 importtensor 的时候会报如上错误 对此 查找了网上许多资料 大概流程就是架构问题 但是问题博客基本是 2020 12 2021 3 月的解决方法了

文章目录

MacBook M1芯片安装Tensorflow踩坑(建议用推荐)

首先看下TensorFlow版本和Python的适配:

参考:https://tensorflow.google.cn/install/source#macos

macOSTensorFlow-Python

踩坑1:在mac m1上安装tensorflow报错“zsh: illegal hardware instruction”

环境: macOS Big Sur 11.5.1 + anaconda + python3.8

直接用 pip install tensorflow 安装,能够顺利安装tensorflow2.5.0,但是import tensorflow 的时候会报如上错误.

macOS M1(Apple Silicon) 安装配置 Conda 环境

踩坑2:ARM版本conda

废话忽略:通俗的说就是,你想要一个苹果公司的最好吃的苹果,但是苹果公司提供38号苹果树只能结普通苹果,但是苹果市场有39号的苹果树能结最好吃苹果,而且支持嫁接给苹果公司的苹果树。那我们的做法是,选市场里的39号苹果树培养一个结最好吃苹果的38号苹果树,再把这个38号苹果树给苹果公司种植,然后你就能得到最好吃的苹果了。

废话不多说,开干吧!

总结:国内技术贴上的各个教程都不尽相同,而且看的比较烦躁了,花了我5-6小时,搞得我都疑惑 :Anaconda目前为止还不支持M1芯片吗?还是自己摸索下吧。本人也最烦配置参数和修改系统文件了。如下简单粗暴的安装大家可以参照,如有更优选择,烦请告知。

第一种方法:下载miniforge3适配Python3.8+TensorFlow2.4.0

1. 下载ARM版Miniforge3

下载ARM版Miniforge3:选择最新的arm64版本;

https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh

bash Miniforge3-MacOSX-arm64.sh 

这里安装开始,一定要慢慢回车,问题全部选择yes.

安装完成后重启终端,然后输入Python就可以看到Python 3.9了。

在这里插入图片描述这样miniforge就安装好了。

2.创建虚拟环境

创建Python3.8虚拟环境并安装TensorFlow:

conda create -n py38 python=3.8 conda activate py38 

第二种方法:安装了Anaconda的,目前可行的最简单的conda install 方法: 低版本适配Python3.7+tensorflow2.0.0

小心坑:直接上会出错哦

conda create -n tensorflow_env python=3.8 

激活环境:

conda activate tensorflow_env 

然后直接安装:

conda install tensorflow 

低配成功了

第二种尝试成功:安装低版本的tensorflow 2.0.0, python = 3.7,创建新的环境:

conda create -n tensorflow_env_py37 python=3.7 conda activate tensorflow_env_py37 # check your python version python --version # install conda install tensorflow # enter your python python # check tensorflow import tensorflow as tf 

需要等待一会,加载tensorflow,之后没有报错。

下面用官网的一个例子,测试下,可以正常运行。

import tensorflow as tf # 载入MNIST数据集 mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 # 搭建模型 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 训练并验证模型 model.fit(x_train, y_train, epochs=5) model.evaluate(x_test, y_test, verbose=2) 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
这样两个各个版本的TensorFlow都可以拥有了。目前没啥问题。

第三种方法:Python3.9 +TensorFlow2.5

conda install -c apple tensorflow-deps 

step 2. Install base TensorFlow

python -m pip install tensorflow-macos 

step 3. Install tensorflow-metal plugin

python -m pip install tensorflow-metal 

如果安装pycharm,使用TensorFlow

pycharm是支持M1 芯片的,放心使用,就是选择Python解释器时,选择你前面创建的虚拟环境即可。

在这里插入图片描述

Anaconda上安装pytorch

在前面安装好miniforge3的基础上,在Anaconda上的可以安装Pytorch1.8.0版本。

conda install pytorch torchvision -c pytorch 

在这里插入图片描述

可以正常安装。

在这里插入图片描述

第四种方法(推荐):TensorFlow2.4(ARM64)

踩坑3(9月更新:避坑推荐):Mac-optimized TensorFlow and TensorFlow Addon

具体看我的另一篇博文:Macbook M1避坑指南:安装Apple-TensorFlow(arm64)

3.1 针对能import tensorflow,但是模型无法编译

如果在虚拟环境下能正常import tensorflow,但是模型无法编译。 例如使用keras,一个简单的Sequential模型,到model.compile()就报错了。错误如下:

问题描述:无法在M1上使用keras进行模型编译

报错信息:

2021-09-29 12:04:50.: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2) 2021-09-29 12:04:50.: W tensorflow/core/platform/profile_utils/cpu_utils.cc:126] Failed to get CPU frequency: 0 Hz 2021-09-29 12:04:50.: F tensorflow/core/grappler/costs/op_level_cost_estimator.cc:710] Check failed: 0 < gflops (0 vs. 0)type: "CPU" model: "0" num_cores: 8 environment { 
    key: "cpu_instruction_set" value: "ARM NEON" } environment { 
    key: "eigen" value: "3.3.90" } l1_cache_size: 16384 l2_cache_size:  l3_cache_size:  memory_size:  zsh: abort /Users/dan/miniforge3/envs/pytorch_env/bin/python 

3.2解决方案

Step 1:安装Xcode Command Line Tools,Apple Developer下载安装即可。
Step 2:安装arm版本miniforge。

从miniforge github选择最新的ARM64版本,一路yes就行。

之后终端conda --versionconda info -e检查是否成功。

Step 3: 从Mac-optimized TensorFlow2.4 and TensorFlow Addons下载ARM64版本的TensorFlow2.4,具体的安装要求是macOS 11.0+, Python3.8.

在这里插入图片描述

进入releases选择最新的版本tensorflow_macos-0.1alpha3.tar.gz

在这里插入图片描述

tensorflow_macos-0.1alpha3.tar.gz下载后,先解压会出现2个文件夹arm64和x86_64,需要cd进入arm64文件夹。

Step 4:路径到.\arm64,创建conda虚拟环境。

创建一个新环境tf24:

conda create --name tf24 

创建后利用conda info -e 查看。

激活环境tf24,安装Python3.8.6和pandas等。

conda activate tf24 conda install -y python==3.8.6 conda install -y pandas matplotlib scikit-learn jupyterlab 
Step 5:开始安装Apple-TensorFlow2.4
Step 5.1查看arm64文件夹,强制安装这些whl文件(注意:这里不安装Tensorflow的包)

如下所示arm64文件夹内的whl文件:

在这里插入图片描述

先强制安装除Tensorflow包以外的whl:

pip install --upgrade --no-dependencies --force numpy-1.18.5-cp38-cp38-macosx_11_0_arm64.whl grpcio-1.33.2-cp38-cp38-macosx_11_0_arm64.whl h5py-2.10.0-cp38-cp38-macosx_11_0_arm64.whl 

在这里插入图片描述

Step 5.2 安装完成后,再安装一些依赖库:

因为安装TensorFlow有很多依赖的其他包,先安装这些依赖包。具体如下所示:

在这里插入图片描述

pip install absl-py astunparse flatbuffers gast google_pasta keras_preprocessing opt_einsum protobuf tensorflow_estimator termcolor typing_extensions wrapt wheel tensorboard typeguard 

在这里插入图片描述

Step 5.3 终于可以安装TensorFlow

继续安装来自arm64文件夹的whl文件:

pip install --upgrade --force --no-dependencies tensorflow_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl 
pip install --upgrade --force --no-dependencies tensorflow_addons_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl 

在这里插入图片描述

至此tensorflow安装完成。

Step 5.4 进入Python检查TensorFlow版本

在这里插入图片描述

Step 5.5 测试代码
import tensorflow as tf import time mnist = tf.keras.datasets.mnist (x_train, y_train),(x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) model.summary() model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) start = time.time() model.fit(x_train, y_train, epochs=5) end = time.time() model.evaluate(x_test, y_test) print(end - start) 

可以正常编译:

在这里插入图片描述

第五种方法(最新推荐):支持M1的3.9+TensorFlow2.5/2.6

Step 1. 把你的macOS升级到最新版本12.0+

Step 2. arm64 : Apple Silicon环境安装,即miniforge3安装(具体安装可以参考第一种方法介绍)

下载并安装Conda env:

chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh sh ~/Downloads/Miniforge3-MacOSX-arm64.sh source ~/miniforge3/bin/activate 

Step 3. 安装TensorFlow依赖:

有以下2种情况:

第一种情况:已经安装过2.4的依赖,现在想要升级到2.5或2.6版本的:
# uninstall existing tensorflow-macos and tensorflow-metal python -m pip uninstall tensorflow-macos python -m pip uninstall tensorflow-metal # Upgrade tensorflow-deps conda install -c apple tensorflow-deps --force-reinstall # or point to specific conda environment conda install -c apple tensorflow-deps --force-reinstall -n my_env 
第二种情况:第一次安装,可选TensorFlow版本2.5或2.6

如果是TensorFlow 2.5:

conda install -c apple tensorflow-deps==2.5.0 

如果是TensorFlow 2.6:

conda install -c apple tensorflow-deps==2.6.0 

Step 4. 安装TensorFlow base:

python -m pip install tensorflow-macos 

Step 5. 安装TensorFlow插件:

python -m pip install tensorflow-metal 

Anaconda安装package出问题

可以看另二篇博文:

  1. Macbook m1 with conda-forge安装package报错和解决
  2. 异常处理:macOS M1下Anaconda安装package
    包括安装gensim,keras等常用库时遇到的报错。

欢迎各位关注我的个人公众号:HsuDan,我将分享更多自己的学习心得、避坑总结、面试经验、AI最新技术资讯。

Apple MacBook M1 Anaconda安装 Tensorflow
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223461.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午2:09
下一篇 2026年3月17日 下午2:09


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号