0


Mac M1安装Miniconda+支持GPU的TensorFlow和PyTorch

电脑系统:MacBook Pro M1 + Mac Ventura 13.5

安装:Miniconda + tensorflow-macos-2.13.0 + torch-2.0.1

1、安装Miniconda

Miniconda是Anaconda的轻量化版本,如果想要节省硬盘存储空间,可以考虑安装Miniconda而非Anaconda。但是Anaconda具有一个可视化界面且预安装的包比较全(有些包我们可能一辈子都不会用到嘿嘿),对于初次使用的用户来说比较友好。

具体的关于如何安装Miniconda和Anaconda的差别,可以参考:链接。

此处仅安装Miniconda。

1.1 下载Miniconda

Miniconda下载地址:链接。选择M1版本bash文件下载。

1.2 安装Miniconda

下载完后,打开电脑Terminal(终端),进入到Download(下载)文件夹,安装Miniconda。

输入:

cd Downloads  # 进入Download文件夹

bash Miniconda3-latest-MacOSX-arm64.sh  #安装Miniconda

此时会让查看协议,输入:ENTER

查看完协议后,输入:yes。

此时会提示Miniconda的安装路径,按“ENTER”键即可。

于是开始安装,安装完毕输入:yes,完成初始化。

可以发现环境变量已经修改。

可以查看一下.zshrc文件,内容新增如下:

重启Terminal,看到开头显示(base)字样。

查看conda的版本号,在Terminal中输入:

conda --version

此时返回conda的版本,说明安装成功。

如果不想每次打开终端就自动激活conda的base环境,可以将auto_activate_base参数设置为false。在Terminal中输入(此步骤可选):

conda config --set auto_activate_base false

1.3 配置源

1.3.1 配置conda源

查看当前源配置,在Terminal中输入:

conda config --show channels

可以发现当前为defaults,表示conda目前所用的镜像源为默认的镜像源。

继续输入:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes

以上对源的配置实际上是修改home路径下.condarc文件。

1.3.2 配置pip源

在Terminal中输入:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

返回结果:

查看源配置情况,在Terminal中输入:

pip config list -v

返回结果:

1.4 Conda相关命令

功能命令示例创建虚拟环境conda create -n env_name python==versionconda create -n tf2.8 python==3.8激活虚拟环境conda activate env_nameconda activate tf2.8退出虚拟环境conda deactivateconda deactivate删除虚拟环境conda remove -n env_name --allconda remove -n tf2.8 --all查看所有已创建的虚拟环境conda env list / conda info -econda env list / conda info -e安装包conda install package_nameconda install numpy查看所有已安装的包conda listconda list升级包版本conda update package_nameconda update numpy

2、安装Xcode

在Terminal中输入:

xcode-select --install

选择“安装”即可,安装过程略长,耐心等待呀~

3、安装TensorFlow2.10-GPU

安装前提:

Requirements

  • Mac computers with Apple silicon or AMD GPUs(具备GPU)
  • macOS 12.0 or later (Get the latest beta)(12.0以上操作系统)
  • Python 3.8 or later(3.8以上python)
  • Xcode command-line tools: xcode-select --install(安装Xcode,前面已安装)

参考链接:

Get Started with tensorflow-metal

3.1 创建虚拟环境

在base环境中输入:

conda create -n tf2.13-gpu python==3.10

当出现:Proceed ([y]/n)? 提示时,输入:y。

激活虚拟环境,输入:

conda activate tf2.13-gpu

3.2 安装tensorflow-macos 2.13.0

在tf2.10-gpu环境中输入:

python -m pip install tensorflow

返回结果:

Successfully installed MarkupSafe-2.1.3 absl-py-1.4.0 astunparse-1.6.3 cachetools-5.3.1 certifi-2023.7.22 charset-normalizer-3.2.0 flatbuffers-23.5.26 gast-0.4.0 google-auth-2.22.0 google-auth-oauthlib-1.0.0 google-pasta-0.2.0 grpcio-1.56.2 h5py-3.9.0 idna-3.4 keras-2.13.1 libclang-16.0.6 markdown-3.4.4 numpy-1.24.3 oauthlib-3.2.2 opt-einsum-3.3.0 packaging-23.1 protobuf-4.23.4 pyasn1-0.5.0 pyasn1-modules-0.3.0 requests-2.31.0 requests-oauthlib-1.3.1 rsa-4.9 six-1.16.0 tensorboard-2.13.0 tensorboard-data-server-0.7.1 tensorflow-2.13.0 tensorflow-estimator-2.13.0 tensorflow-macos-2.13.0 termcolor-2.3.0 typing-extensions-4.5.0 urllib3-1.26.16 werkzeug-2.3.6 wrapt-1.15.0

3.3 安装tensorflow-metal插件

在tf2.10-gpu环境中输入:

python -m pip install tensorflow-metal

返回结果:

Successfully installed tensorflow-metal-1.0.1

3.4 验证

可以通过以下代码验证安装是否成功:

import tensorflow as tf

cifar = tf.keras.datasets.cifar100
(x_train, y_train), (x_test, y_test) = cifar.load_data()
model = tf.keras.applications.ResNet50(
    include_top=True,
    weights=None,
    input_shape=(32, 32, 3),
    classes=100,)

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
model.compile(optimizer="adam", loss=loss_fn, metrics=["accuracy"])
model.fit(x_train, y_train, epochs=5, batch_size=64)

返回结果:

2023-08-06 15:20:02.934449: I metal_plugin/src/device/metal_device.cc:1154] Metal device set to: Apple M1

2023-08-06 15:20:02.934483: I metal_plugin/src/device/metal_device.cc:296] systemMemory: 16.00 GB

2023-08-06 15:20:02.934488: I metal_plugin/src/device/metal_device.cc:313] maxCacheSize: 5.33 GB

2023-08-06 15:20:02.934545: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:303] Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support.

2023-08-06 15:20:02.934577: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:269] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 0 MB memory) -> physical PluggableDevice (device: 0, name: METAL, pci bus id: <undefined>)

Epoch 1/5

2023-08-06 15:20:05.991958: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.

782/782 [==============================] - 123s 146ms/step - loss: 4.6828 - accuracy: 0.0756

Epoch 2/5

782/782 [==============================] - 112s 143ms/step - loss: 3.9808 - accuracy: 0.1352

Epoch 3/5

782/782 [==============================] - 112s 143ms/step - loss: 3.6236 - accuracy: 0.1873

Epoch 4/5

782/782 [==============================] - 112s 143ms/step - loss: 3.4396 - accuracy: 0.2140

Epoch 5/5

782/782 [==============================] - 112s 143ms/step - loss: 3.1431 - accuracy: 0.2644

大功告成!!!

感觉也没有快很多,哈哈哈,后续再看看~~(电脑已经有点子烫了)

3.5 其他尝试

一些尝试:tensorflow-macos 2.10.0 和tensflow-metal 1.0.1/1.0.0/0.8.0/0.7.1均会有问题,暂时未解决。问题为:symbol not found in flat namespace '_TF_GetInputPropertiesList'。

可能要安装tensorflow-deps?未尝试。

4、安装PyTorch

安装前提:

Requirements

  • Mac computers with Apple silicon or AMD GPUs
  • macOS 12.3 or later
  • Python 3.7 or later
  • Xcode command-line tools: xcode-select --install

参考链接:

Accelerated PyTorch training on Mac

提升5-7倍,使用Mac M1芯片加速PyTorch

4.1 创建虚拟环境

在Terminal中输入:

conda create -n pytorch2.0.1 python==3.10.0

当出现:Proceed ([y]/n)? 提示时,输入:y。

激活虚拟环境,输入:

conda activate pytorch2.0.1

4.2 安装PyTorch 2.0.1

此处可以参考官网生成安装命令。官网:链接。

在pytorch2.0.1环境中输入:

# MPS acceleration is available on MacOS 12.3+
pip install torch torchvision torchaudio

返回结果:

Successfully installed MarkupSafe-2.1.3 certifi-2023.7.22 charset-normalizer-3.2.0 filelock-3.12.2 idna-3.4 jinja2-3.1.2 mpmath-1.3.0 networkx-3.1 numpy-1.25.2 pillow-10.0.0 requests-2.31.0 sympy-1.12 torch-2.0.1 torchaudio-2.0.2 torchvision-0.15.2 typing-extensions-4.7.1 urllib3-2.0.4

4.3 验证

可以通过以下代码验证安装是否成功:

import torch
if torch.backends.mps.is_available():
    mps_device = torch.device("mps")
    x = torch.ones(1, device=mps_device)
    print (x)
else:
    print ("MPS device not found.")

返回结果:

tensor([1.], device='mps:0')

注意:在Mac M1上,device是“mps” ,不是“cuda”。

大功告成!!!

有什么问题,小伙伴们可以一起探讨~~


本文转载自: https://blog.csdn.net/m0_55308155/article/details/132129688
版权归原作者 黄黄呼呼的学习日记 所有, 如有侵权,请联系我们删除。

“Mac M1安装Miniconda+支持GPU的TensorFlow和PyTorch”的评论:

还没有评论