电脑系统: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”。
大功告成!!!
有什么问题,小伙伴们可以一起探讨~~
版权归原作者 黄黄呼呼的学习日记 所有, 如有侵权,请联系我们删除。