文章开始书写时间:2022-03/19-14:30
0x00:引子
最近云哥 @吃货本货 问小宋(笔者)如何在Apple的M1芯片进行深度学习开发,恰逢最近M1开发生态都趋于稳定,就把安装步骤梳理下分享出来。
0x01:分析
开始正式安装前,先对步骤进行梳理,方便后续安装。
简单分析下:
目的是在M1平台开发深度学习,需要以下几个必备因素:
- 编辑器:VSCode,跨平台最佳编程工具,不接受反驳。你要反对,就算你对。(再透露一个小秘密:其实好多大厂也是用VSCode开发哦:)
- 开发语言:不二之选-Python,这里版本采用Python3.8,最新深度学习框架依赖。
- 深度学习框架:TensorFlow与PyTorch,这里安装两个最流行的框架,读者们按照自己需求安装就好。
配置环境其实有点像打游戏,需要不断通过升级。
下面就需要针对这几个因素逐个击破:
- VSCode:目前正式版本已支持M1,网址在这:Visual Studio Code February 2022
- Python3.8:笔者习惯用conda安装和管理Python,尤其爱用Miniconda(精简版Anaconda),需要用到什么包自己安装就好。目前Miniconda也支持M1芯片了,可以在这里下载:Miniconda — Conda documentation
- TensorFlow与PyTorch:好巧不巧的,这两个框架正式版也都支持了M1芯片。TensorFlow步骤:Tensorflow Plugin - Metal - Apple Developer,PyTorch步骤:Previous PyTorch Versions | PyTorch
0x02:实操
如果你是一个开发经验丰富的人,看到这里就可以结束,根据上述分析开始安装了(如果出错了再看下方的不迟),下面教程是写给小白用户,手把手教学哒。
1、VSCode安装
首先打开网址:Visual Studio Code February 2022,如果打不开,那可能需要科学上网,如果还不会,那就放弃吧,真的做开发需要一点天赋和努力的,对了还有一点英语阅读技能。
打开以后,点击红色框内(Mac,救命,这里指的是苹果MacOS,可不是口红,手动狗头:)的绿色链接网址下载(表示Arm版MacOS的软件)。
下完成后解压双击打开即可,如果遇到需要确认的信息就点击确认下。
此时VSCode就完成了,是不是很简单,下面要开始一些有难度的了。还是一样的规劝,实在搞不定就放弃的,别在这个领域卷了,如果没有选择就好好努力吧。
2、Python安装
这里采用的Miniconda(精简版Anaconda)下载地址:Miniconda — Conda documentation
打开后找到绿色位置,点击链接下载。
要注意下,这次下载的是.sh文件,不是安装包,不可直接点击傻瓜式安装。
需要借助”终端“工具执行安装
在启动台搜索”终端“,点击打开”终端“:
下面就开始执行Miniconda安装脚本,首先你要搞清楚刚刚下载的.sh文件保存到了那里,一般默认放在Downloads文件夹下(如果不是的话,需要找一下实际位置),执行以下脚本即可开始安装:
代码语言:javascript复制bash Downloads/Miniconda3-latest-MacOSX-arm64.sh
随后执行遇到需要确认的地方回车和输入”yes“确认,即可完成安装Miniconda。
完成,打开一个新的”终端“,在里面输入
代码语言:javascript复制conda -V
如果输出正常,那么Miniconda就安装成功了,如果显示”command not found“,那么你可能需要配置一下路径。
Python环境的安装就不如VSCode那么简单轻松了,不过恭喜你走到了这一步。
行百里者,半九十也。我们也迎来了最后一步安装TensorFlow与PyTorch,打完这两个boss,今天的游戏就通关啦。
3、TensorFlow与PyTorch安装
参考TensorFlow步骤:Tensorflow Plugin - Metal - Apple Developer,PyTorch步骤:Previous PyTorch Versions | PyTorch
首先我们先使用新建一个Python3.8环境,”终端“输入:
代码语言:javascript复制conda create -n py38 python=3.8
这句翻译为文字就是,使用conda新建(conda create)名为(-n)py38(py38)的环境,指定python版本为3.8(python=3.8)。对了执行的时候保持网络连接,因为需要下载东西到本地。
新建完成后就可以进入这个环境:
代码语言:javascript复制conda activate py38
下面就开始正式安装深度学习环境啦
先安装TensorFlow,参考TensorFlow步骤:Tensorflow Plugin - Metal - Apple Developer:
依次执行:
代码语言:javascript复制conda install -c apple tensorflow-deps # Step 1: Environment setup Install the TensorFlow dependencies:
pip install tensorflow-macos # Step 2: Install base TensorFlow
pip install tensorflow-metal # Step 3: Install tensorflow-metal plugin
运行完,TensorFlow就安装完成了,下面测试一下TensorFlow:
代码语言:javascript复制song@192 ~ % conda activate py38
(py38) song@192 ~ % python
Python 3.8.11 (default, Aug 16 2021, 12:04:33)
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> print("tf version",tf.__version__)
tf version 2.8.0
>>> print("tf gpu",tf.test.is_gpu_available())
WARNING:tensorflow:From <stdin>:1: is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.config.list_physical_devices('GPU')` instead.
Metal device set to: Apple M1
systemMemory: 8.00 GB
maxCacheSize: 2.67 GB
2022-03-19 17:03:20.293520: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:305] Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support.
2022-03-19 17:03:20.294430: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:271] Created TensorFlow device (/device:GPU:0 with 0 MB memory) -> physical PluggableDevice (device: 0, name: METAL, pci bus id: <undefined>)
tf gpu True
>>>
然后安装PyTorch,参照:Previous PyTorch Versions | PyTorch ,在”终端“执行
代码语言:javascript复制pip install torch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0
安装完成后,同样做下测试:
代码语言:javascript复制(py38) song@192 ~ % python
Python 3.8.11 (default, Aug 16 2021, 12:04:33)
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print("torch version",torch.__version__)
torch version 1.9.0
>>> torch.ones(1) torch.ones(1)
tensor([2.])
>>>
最后安装一些DL常用的库:
代码语言:javascript复制pip install pandas matplotlib glob2 tqdm opencv-python scipy scikit-learn
完成上述步骤,我们就完成了使用M1芯片的MacOS电脑环境的配置,本次游戏通关欢迎下次再见,拜拜。
如果有帮到你,请不要吝啬你的点赞鼓励,我也会越来越努力哟~
0x03:参考
- Mac安装M1芯片版本miniconda流程 - Ravenna - 博客园
- Good guy:在M1上安装ARM版本的pytorch 1.80 和 M1 的tensorflow