前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >macOS M1如何配置机器学习环境(二)

macOS M1如何配置机器学习环境(二)

作者头像
Ed_Frey
发布2021-10-20 10:08:49
1.7K0
发布2021-10-20 10:08:49
举报
文章被收录于专栏:奔跑的键盘侠奔跑的键盘侠

这是奔跑的键盘侠的第193篇文章

作者|我是奔跑的键盘侠

来源|奔跑的键盘侠(ID:runningkeyboardhero)

转载请联系授权(微信ID:ctwott)

之前写过一帖《macOS M1如何配置机器学习环境》,是基于python3.8版本配置的tensorflow,最近实验过程中发现些问题没办法解决,无奈之下卸载了重装,结果随便捣鼓一下,整个假期就快没了

至于为什么这么点背,,可能还是因为学的多了,用的模块也多了,烦恼就随之而来了。年初安装时啥都没学,就是一个试验代码通了就通了,后来随着学习的深入,发现要用到很多模块,关键嘛,这个M1设备据说python3.9更适配一些,心理也有在作祟。

之前就是装了3.8和3.9混用,实在搞不懂为毛有些模块在我M1的3.8版本死活装不上,3.9就服服帖帖。但是要跑tensorflow的话又只能滚回3.8,之前没有交叉就瞎玩,最近偶遇交叉直接死菜。

总之,恼火!

1

.condarc文档

如果不慎遭遇conda无法正常使用,可能要修改.condarc文档:

网上链接:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

代码语言:javascript
复制
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

2

python3.8安装tensorflow新方法

《21年3月最新版在Macbook M1芯片上装Tensorflow》 https://zhuanlan.zhihu.com/p/358341761 Frendo, 知乎

代码语言:javascript
复制
确保执行了如下语句安装了Macbook 自带的python3.8
xcode-select --install
使用如下命令从GitHub拉取最新版的Tensorflow
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/apple/tensorflow_macos/master/scripts/download_and_install.sh)"
安装好后以后每次输入如下命令都可以进入venv环境了(注意下方命令z红的aaaa请改成自己的用户名)
."/Users/aaaa/tensorflow_macos_venv/bin/activate"

3

python3.9安装tensorflow方法

《Tensorflow 2.5 on Apple M1》 https://github.com/ctrahey/m1-tensorflow-config Chris Trahey,Github

代码语言:javascript
复制
Steps to recreate this environment:

conda create --name tf25 --file ./conda-explicit.txt
conda activate tf25
pip install --no-deps -r requirements.txt
python confirm.py



This is the output I get:

Init Plugin
Init Graph Optimizer
Init Kernel
Running TensorFlow 2.5.0 with 1 GPUs recognized

PS:本人mac版本11.6

按《requirements.txt》中numpy版本1.21.1安装后,出现部分异常问题,于是给卸载重新安装了1.21.2版本,问题得以解决。

另外,部分模块无法使用conda安装,找不到资源,改用pip安装,问题可解决。

opencv-python无法正常安装,又是捣鼓了好一阵。。最后改用opencv_python连接线改下划线就哦了,真实狗血的

4

python3.8-tensorflow0.1a1 PK python3.9-tensorflow2.5

跟网上大佬讲的一样,python3.8版本的速度要快,而且快很多。。原因不明

测试代码如下:

代码语言:javascript
复制
#test01.py
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.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)

第一张图是python3.8耗时不到4s,第二张图是python3.9耗时近35s,对比实在悬殊。

于是换一个之前的多层感知机代码跑一下,python3.8耗时22s,python3.9耗时39s,还是3.8版本完胜。

这就有些让人困顿了,不知道是算法没跟M1适配好,还是测试的代码不具有代表性。当然这些都不是很重要,并不值得去深究,毕竟个人电脑这点配置是无法胜任真正的大任务。

5

python3.8 PK python3.9

最后,关于conda在pycharm Interpreter的配置,是要在设置里面的第三个选项System Interpreter来设置。实际项目中,可随意切换版本:

-END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奔跑的键盘侠 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档