電腦系統(tǒng):MacBook Pro?M1 + Mac Ventura 13.5
安裝:Miniconda + tensorflow-macos-2.13.0?+ torch-2.0.1
1、安裝Miniconda
Miniconda是Anaconda的輕量化版本,如果想要節(jié)省硬盤存儲(chǔ)空間,可以考慮安裝Miniconda而非Anaconda。但是Anaconda具有一個(gè)可視化界面且預(yù)安裝的包比較全(有些包我們可能一輩子都不會(huì)用到嘿嘿),對(duì)于初次使用的用戶來說比較友好。
具體的關(guān)于如何安裝Miniconda和Anaconda的差別,可以參考:鏈接。?
此處僅安裝Miniconda。
1.1 下載Miniconda
Miniconda下載地址:鏈接。選擇M1版本bash文件下載。
1.2 安裝Miniconda
下載完后,打開電腦Terminal(終端),進(jìn)入到Download(下載)文件夾,安裝Miniconda。
輸入:
cd Downloads # 進(jìn)入Download文件夾
bash Miniconda3-latest-MacOSX-arm64.sh #安裝Miniconda
此時(shí)會(huì)讓查看協(xié)議,輸入:ENTER?
查看完協(xié)議后,輸入:yes。
此時(shí)會(huì)提示Miniconda的安裝路徑,按“ENTER”鍵即可。
于是開始安裝,安裝完畢輸入:yes,完成初始化。
可以發(fā)現(xiàn)環(huán)境變量已經(jīng)修改。
可以查看一下.zshrc文件,內(nèi)容新增如下:
重啟Terminal,看到開頭顯示(base)字樣。
查看conda的版本號(hào),在Terminal中輸入:
conda --version
此時(shí)返回conda的版本,說明安裝成功。
如果不想每次打開終端就自動(dòng)激活conda的base環(huán)境,可以將auto_activate_base參數(shù)設(shè)置為false。在Terminal中輸入(此步驟可選):
conda config --set auto_activate_base false
1.3 配置源
1.3.1 配置conda源
查看當(dāng)前源配置,在Terminal中輸入:
conda config --show channels
可以發(fā)現(xiàn)當(dāng)前為defaults,表示conda目前所用的鏡像源為默認(rèn)的鏡像源。
?
繼續(xù)輸入:
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
以上對(duì)源的配置實(shí)際上是修改home路徑下.condarc文件。??
1.3.2 配置pip源?
在Terminal中輸入:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
返回結(jié)果:
查看源配置情況,在Terminal中輸入:
pip config list -v
返回結(jié)果:
1.4 Conda相關(guān)命令
功能 | 命令 | 示例 |
創(chuàng)建虛擬環(huán)境 | conda create -n env_name python==version | conda create -n tf2.8 python==3.8 |
激活虛擬環(huán)境 | conda activate env_name | conda activate tf2.8 |
退出虛擬環(huán)境 | conda deactivate | conda deactivate |
刪除虛擬環(huán)境 | conda remove -n env_name --all | conda remove -n tf2.8 --all |
查看所有已創(chuàng)建的虛擬環(huán)境 | conda env list / conda info -e | conda env list / conda info -e |
安裝包 | conda install package_name | conda install numpy |
查看所有已安裝的包 | conda list | conda list |
升級(jí)包版本 | conda update package_name | conda update numpy |
2、安裝Xcode
在Terminal中輸入:
xcode-select --install
選擇“安裝”即可,安裝過程略長(zhǎng),耐心等待呀~?
?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以上操作系統(tǒng))
- Python 3.8 or later(3.8以上python)
- Xcode command-line tools:?
xcode-select --install(安裝Xcode,前面已安裝)
參考鏈接:?
Get Started with tensorflow-metal
3.1 創(chuàng)建虛擬環(huán)境
在base環(huán)境中輸入:
conda create -n tf2.13-gpu python==3.10
當(dāng)出現(xiàn):Proceed ([y]/n)? 提示時(shí),輸入:y。
激活虛擬環(huán)境,輸入:
conda activate tf2.13-gpu
3.2 安裝tensorflow-macos 2.13.0
在tf2.10-gpu環(huán)境中輸入:
python -m pip install tensorflow
?返回結(jié)果:
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環(huán)境中輸入:
python -m pip install tensorflow-metal
返回結(jié)果:
Successfully installed tensorflow-metal-1.0.1
3.4 驗(yàn)證
可以通過以下代碼驗(yàn)證安裝是否成功:
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)
返回結(jié)果:
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
大功告成?。?!文章來源:http://www.zghlxwxcb.cn/news/detail-773563.html
感覺也沒有快很多,哈哈哈,后續(xù)再看看~~(電腦已經(jīng)有點(diǎn)子燙了)
3.5 其他嘗試
一些嘗試:tensorflow-macos 2.10.0 和tensflow-metal 1.0.1/1.0.0/0.8.0/0.7.1均會(huì)有問題,暫時(shí)未解決。問題為: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 創(chuàng)建虛擬環(huán)境
在Terminal中輸入:
conda create -n pytorch2.0.1 python==3.10.0
當(dāng)出現(xiàn):Proceed ([y]/n)? 提示時(shí),輸入:y。
激活虛擬環(huán)境,輸入:
conda activate pytorch2.0.1
4.2 安裝PyTorch 2.0.1
此處可以參考官網(wǎng)生成安裝命令。官網(wǎng):鏈接。
在pytorch2.0.1環(huán)境中輸入:
# MPS acceleration is available on MacOS 12.3+
pip install torch torchvision torchaudio
返回結(jié)果:
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 驗(yàn)證
可以通過以下代碼驗(yàn)證安裝是否成功:
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.")
返回結(jié)果:
tensor([1.], device='mps:0')
注意:在Mac M1上,device是“mps”?,不是“cuda”。
大功告成!??!
有什么問題,小伙伴們可以一起探討~~文章來源地址http://www.zghlxwxcb.cn/news/detail-773563.html
到了這里,關(guān)于Mac M1安裝Miniconda+支持GPU的TensorFlow和PyTorch的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!