在我的印像中,一直认为在Mac下无法使用GPU进行训练,最近查阅了一些资料,才发我的认知太陈旧了。新版的Pytorch已经支持了多种类型的GPU,这其中也支持了Mac M1下的GPU。
今天我们就来看看该如何在Mac M1下使用GPU进入机器学习训练。
Anaconda还是Miniconada?
使用Python的人都会遇到库的安装、环境的管理问题,Conda就是这样一个工具来帮助你解决这些问题。
Anaconda想必大家比较熟悉,但是很多人并不知道还有个轻量化的Miniconda。对于有一定基础的Python使用者,我本人更推荐Miniconda的。
Anaconda
- 适合初学者(因为有图形界面,还内置了jupyter lab, spider等等)
- 预装了超过1500个科学计算库(99%其实用不上)
- 安装比较耗时,也比较占用空间
- 因为预装了很多库,所以不需要重复下载。
- 可能对一些库做了改进(?)
Miniconda
- 不介意手动安装所需的库(其实这个并不麻烦)
- 节省空间和时间
我个人感觉Anaconda太过笨重,很多人的电脑可能打开Anaconda都需要一点时间。图形化的界面在我看来反应比较迟钝,如果使用命令行其实还不如直接上Miniconda。
安装Miniconda
从这里下载Miniconda。假设我们使用的Python版本是3.10,执行下面的命令来安装Miniconda:
1 | sh Minconda3-xxx-xxx...sh -b |
然后执行下面的命令初始化conda:
1 | ~/miniconda3/bin/conda init |
至此,Miniconda就安装好了。
配置新的Python环境
当Miniconda安装好后,我们可以通过下面的命令创建一个新的Python环境:
1 | conda create --name ml python=3.10 -y |
上面我就使用conda创建了一个新的Python环境,名子叫ml,它使用的Python是3.10。
不过,虽然我们创建好了Python环境,但它还不能使用,因为在使用之前需要先将它激活。你可以使用下面的命令来激活它:
1 | conda activate ml |
另外,当我们不需要这个环境时,可以通过下面的命令退出:
1 | conda deactivate |
安装pytorch
前面将Python环境设置好后,接下来就可以安装Pytorch了,命令如下:
1 | conda install pytorch torchvision torchaudio -c pytorch |
之后,你可以使用下面命令验证你的Mac M1中是否有可用的GPU:
1 | python -c "import torch;print(torch.backends.mps.is_built())" |
如果命令的返回结果为True
,说明有GPU可用。
使用Mac M1下的GPU
在Mac M1下的GPU称作mps,它类似于Nvidia的cuda。如果你想在Mac M1下使用GPU进行深度学习的训练,只需要将运算指定到mps上运行即可。
1 | import torch |
如上代码所示,该代先首先定义了一个最简单5x1的线性模形,并告诉Pytorch它在Mac M1的GPU上运行;然后给该模形创建一个输入,该输入也是在GPU
上,是一个5x5的tensor,最后输出运算结果的维度。
如果上面的代码可以正常运行,说明你Mac上的GPU确实可以正常工作。
小结
如果你是一名机器学习的初学者,并且手上有一台Mac电脑的话,你可以直接使用Mac搭建机器学习环境进行学习。这样就可以节省一大笔钱了!