Apple MacBook M1 Anaconda安装 Tensorflow

19 篇文章 2 订阅
18 篇文章 1 订阅

文章目录

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 的时候会报如上错误.

对此,查找了网上许多资料:
大概流程就是架构问题,但是问题博客基本是2020-12~2021-3月的解决方法了,应该不是最优的。
同病相怜:“zsh: illegal hardware instruction python” when installing Tensorflow on macbook pro M1

“zsh: illegal hardware instruction python” when Tensorflow on macbook pro M1
GitHub上的回音:Apple M1 chip - illegal hardware instruction #46178

截止2021-3月左右,网上时兴的解决方法都是如此:
下载 安装miniforge3然后修改配置文件。
MacBook m1芯片采用miniforge安装python3.9

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

这应该得益于官方:
目前apple developer出了3行代码的安装教程:
https://developer.apple.com/metal/tensorflow-plugin/

踩坑2:ARM版本conda

苹果提供的tensorflow仅支持python 3.8+,而python官网只有3.9+版本支持ARM。
我们的做法是:选择通过ARM版conda创建python3.8虚拟环境,再使用创建的ARM python3.8安装tensorflow.

废话忽略:通俗的说就是,你想要一个苹果公司的最好吃的苹果,但是苹果公司提供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

具体可以去GitHub看:
https://github.com/conda-forge/miniforge/#download
在这里插入图片描述下载Miniforge3-MacOSX-arm64.sh到自己的Download目录里:
终端cd Downlaod/后,开始运行脚本:

bash Miniforge3-MacOSX-arm64.sh

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

因为这里我就踩坑了,选了个No,但是没关系,可以重装Miniforge3:具体终端里删除相关文件就好了。具体操作如下:
rm -rf ~/miniforge3
rm -rf .conda
rm -rf .condarc
然后重新执行安装命令:
bash Miniforge3-MacOSX-arm64.sh

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

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

2.创建虚拟环境

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

conda create -n py38 python=3.8
conda activate py38

进入虚拟环境后,直接conda install 就能安装TensorFlow库了。
漫长的等待各个库安装完毕即可。
在这里插入图片描述最后来验证下吧!
在这里插入图片描述

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

小心坑:直接上会出错哦

首先,官网下了Anaconda的MacOS版本:
这是python3.8版本
在这里插入图片描述目前最新的版本是tensorflow2.5.0 ,下载:https://pypi.org/project/tensorflow/,支持3.6-3.8版本python.
根据提示安装后,开始进入终端安装tensorflow:
创建新的环境tensorflow:

conda create -n tensorflow_env python=3.8

激活环境:

conda activate tensorflow_env

然后直接安装:

conda install tensorflow

后面报错,就是当前是python3.8版本,conda下安装只能支持3.5-3.7的,然后就重新装了一个python3.7的环境好了。
在这里插入图片描述

低配成功了

第二种尝试成功:安装低版本的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

Python2.4版本的bug有点多,还是直接上2.5.
前面已经安装好了miniforge3,就好办了。按照官方的三行代码:https://developer.apple.com/metal/tensorflow-plugin/

step 1. 安装miniforge3,创建conda环境。
安装Tensorflow dependencies:

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

如果安装Pytorch,进入官网https://pytorch.org/get-started/locally/选择版本:官网给出了各种安装方法。
在这里插入图片描述

在前面安装好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)

因为anaconda现在还没完美支持M1,因此通用的步骤还是Xcode、miniforge、ATF2.4等。
TensorFlow 2.4 on Apple Silicon M1: installation under Conda environment

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

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

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

报错信息:

2021-09-29 12:04:50.205695: 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.205850: W tensorflow/core/platform/profile_utils/cpu_utils.cc:126] Failed to get CPU frequency: 0 Hz
2021-09-29 12:04:50.206537: 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: 524288
l3_cache_size: 524288
memory_size: 268435456

zsh: abort      /Users/dan/miniforge3/envs/pytorch_env/bin/python 

原因分析:
还是TensorFlow版本的问题, 使用一个支持Mac M1芯片的arm64版本的TensorFlow。具体的操作可以参考官方

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

Python3.8 + TensorFlow2.4正常使用中,如今可在macOS12.0+上安装TensorFlow2.5或者2.6且支持3.9。2.4还是会有点小问题,建议还是上2.5。
具体参考苹果官方的方法:https://developer.apple.com/metal/tensorflow-plugin/

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最新技术资讯。

  • 24
    点赞
  • 185
    收藏
    觉得还不错? 一键收藏
  • 36
    评论
### 回答1: 使用Anaconda安装TensorFlow很简单,首先,在Anaconda中创建一个新的环境,然后使用conda命令安装TensorFlow,最后,您可以使用Python来运行TensorFlow程序。 使用Anaconda安装TensorFlow很容易,首先,确保您有最新版本的Anaconda,然后在控制台/终端中键入:conda install -c anaconda tensorflow好的,以下是在Anaconda安装TensorFlow的步骤: 1. 打开Anaconda Navigator,点击Environments(环境)选项卡。 2. 在环境列表中,选择你想要安装TensorFlow的环境。 3. 在该环境中,点击右侧的“+”图标,打开“Add Packages”(添加包)窗口。 4. 在搜索栏中输入“tensorflow”,然后按下Enter键。 5. 在搜索结果中选择需要安装的版本,点击“Apply”按钮开始安装。 6. 等待安装完成后,可以在环境列表中看到已经安装TensorFlow。 另外,如果你想要在命令行中安装TensorFlow,可以使用以下命令: ``` conda install tensorflow ``` 希望这些步骤可以帮助你在Anaconda中成功安装TensorFlow。 ### 回答2: TensorFlow是由Google开源的深度学习框架,其强大的功能和广泛的应用使得越来越多的人开始学习和使用。而使用Anaconda安装TensorFlow则是一种相对简单,不易出错的安装方式。以下是使用Anaconda安装TensorFlow的详细步骤: 1.首先,需要下载安装Anaconda,可以从官网https://www.anaconda.com/products/individual 下载适合自己操作系统的版本并进行安装。 2.打开Anaconda Navigator,选择左侧的Environments,点击Create进入创建环境界面。 3.在Name一栏中输入环境名称,如“tensorflow”,并在右侧选择Python版本。然后点击Create按钮,等待环境创建完成。 4.在创建好的环境中,找到左侧的“Open Terminal”按钮,点击打开命令行界面。 5.在命令行中输入以下命令,安装tensorflow: pip install tensorflow 6.等待安装完成后,可以输入以下命令检验tensorflow是否安装成功: python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))" 7.如果出现结果表明安装成功,否则可能是安装过程中出现了问题,可以尝试重新安装或者查找错误原因。 总之,使用Anaconda安装TensorFlow相对来说比较简单,只需要几个简单的步骤即可完成安装。但是,在安装过程中可能会遇到一些问题,需要耐心查找错误原因并进行解决。同时,在安装TensorFlow后,还需要学习如何使用它进行深度学习开发,不断学习和实践才能有所收获。 ### 回答3: 使用Anaconda安装TensorFlow是非常简单的。以下是详细步骤: 1. 下载并安装Anaconda 首先,您需要下载并安装Anaconda。您可以从官方Anaconda网站下载免费版本。 2. 创建一个新的conda环境 打开Anaconda Navigator并创建一个新环境。选择环境并点击“Create”。 在弹出的对话框中,输入环境名称和Python版本。建议使用Python 3.6或以上版本。 3. 安装TensorFlow 回到“Home”界面,打开新创建的“conda”环境,点击“Open Terminal”以打开命令行接口。 在命令行中,输入以下命令来安装TensorFlow: ``` conda install tensorflow ``` 如果环境已激活,也可以使用以下命令: ``` pip install tensorflow ``` 等待安装完成即可。 4. 测试TensorFlow 要测试TensorFlow是否已成功安装,请在命令行中输入以下代码: ``` python import tensorflow as tf ``` 如果没有任何错误,则说明TensorFlow已经成功安装。 现在你可以开始使用TensorFlow开发神经网络了。推荐学习TensorFlow的网络课程和教程,例如Udemy上的《TensorFlow 2.0:完整的深度学习》课程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值