一个整理性的文档,有问题大家可以留言补充。
目录
第一部分 miniforge3下载安装以及环境变量配置
(一)下载
(二)安装
(三)环境配置
第二部分 anaconda3和miniforge3的转换
第三部分 安装tensorflow
(一)创建虚拟环境
(二)下载tensorflow
(三)测试代码
前情提要:目前anaconda还没有支持arm芯片架构的,而m1是arm芯片架构的,最明显的问题就在于anaconda3在macos m1下不支持tensorflow,为了解决这个问题,需要安装一个arm架构的anaconda,即miniforge。
miniforge3下载:macOS ARM builds on conda-forge — the conda-forge blog
点击“here”下载,得到“Miniforge3-MacOSX-arm64.sh”,放到自己打算安装的地方,例如:/Users/Myname/software。本文之后的路径都需要根据自己文件存放的位置进行更改。
进入(一)中存放的目录,运行以下命令:
bash Miniforge3-MacOSX-arm64.sh
安装完毕后,目录下会生成一个文件夹:miniforge3。
未安装过anaconda,有以下两种方法,第一种是比较多博主写到的,但是我这么写无法进入base,所以我用的是第二种,大家可以自己尝试一下(执行完如果没反应可以重启一个终端看看):
1、在命令行加入执行以下命令:
echo 'export PATH="/Users/Myname/software/miniforge3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/Users/Myname/software/miniforge3/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
source ~/.zshrc
2、在~/.zshrc和~/.bash_profile都加入以下代码
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/Myname/software/miniforge3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/Myname/software/miniforge3/etc/profile.d/conda.sh" ]; then
. "/Users/Myname/software/miniforge3/etc/profile.d/conda.sh"
else
export PATH="/Users/Myname/software/miniforge3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
之后更新环境变量:
source ~/.zshrc
source ~/.bash_profile
已经安装过anaconda,只需要看第二部分讲的转换就行了。
*.zshrc和.bash_profile的区别:
zhsrc在电脑的根目录 /下,具体位置为 /etc/zhsrc;
.bash_profile在用户目录下; /user/用户名/.bash_profile。
zhsrc是开机加载的环境变量,.bash_profile针对当前登录用户的配置,自己配置东西可以在这个里面。
在终端执行source ~/.bash_profile,只对当前端口生效,重新开窗口就无效。
查看环境,确认自己当前的环境:
conda env list
miniforge3->anaconda3:
/Users/Myname/software/anaconda3/bin/conda init zsh
/Users/Myname/software/anaconda3/bin/conda init bash
anaconda3->miniforge3:
/Users/Myname/software/miniforge3/bin/conda init zsh
/Users/Myname/software/miniforge3/bin/conda init bash
一定要明确执行的conda init所在路径。刚执行完会显示no change,重新打开一个终端就可以了。
先切换到miniforge的base,创建一个虚拟环境(名称和python版本按照自己需求定义,但是python的版本要3.8及以上)并进入,我这里创建了一个python3.8的虚拟环境:
conda create -n tf24 python=3.8
conda activate tf24
下载地址:https://github.com/apple/tensorflow_macos/releases
下载下图中圈起的文件,它里面包含了前四个文件,也包含了numpy、grpcio、h5py的安装文件。
解压后会有2个文件夹arm64和x86_64,需要cd进入arm64文件夹,以下是arm64文件夹里的内容:
先安装除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
因为安装TensorFlow有很多依赖的其他包,先安装这些依赖包:
pip install absl-py astunparse flatbuffers gast google_pasta keras_preprocessing opt_einsum protobuf tensorflow_estimator termcolor typing_extensions wrapt wheel tensorboard typeguard
继续安装来自arm64文件夹的tensorflow的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就安装完了。
查看tensorflow版本:
运行测试模型:
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)
正常结果:
参考:
https://www.icode9.com/content-4-1244256.html
Mac m1芯片anaconda上安装tensorflow_是CC姐呀的博客-CSDN博客_m1芯片安装tensorflow
Mac M1安装tensorflow_allan2222的博客-CSDN博客_m1mac安装tensorflow
anaconda与miniforge3的base切换_lc_dreams的博客-CSDN博客_miniforge和anaconda的区别