MacOS(M1芯片?arm架構(gòu))下安裝tensorflow的詳細過程
導語
由于目前anconda官網(wǎng)上對于macos系統(tǒng)只支持X86結(jié)構(gòu)的,因此基于arm結(jié)構(gòu)的MacOS暫時無法使用anconda來對tensorflow進行配置。雖然Anconda無法在M1上運行,但是相應的替代品有Miniforge,同樣也能實現(xiàn)類似的效果。此外,蘋果官方稱還支持添加metal插件,從而可以調(diào)用集成在M1芯片中的GPU部分,但是目前只支持tensorflow2.5和2.6的版本,而本節(jié)使用使用的版本是tensorflow2.4 python3.8,因此并未安裝加速插件。官方安裝metal方法如下:
Tensorflow Plugin - Metal - Apple Developer
下面將開始講解在Mac(M1)上如何安裝tensorflow
1. 下載Miniforge3-MacOSX-arm64.sh腳本文件,并且運行
miniforge下載地址為GitHub - conda-forge/miniforge: A conda-forge distribution.
我的Miniforge3-MacOSX-arm64.sh腳本文件所安裝的路徑是
/Users/xiewenhui/MiniforgeShell/Miniforge3-MacOSX-arm64.sh
我們打開終端terminal,首先進入文件夾,進入到Miniforge3-MacOSX-arm64.sh所在的文件夾
cd ~xiewenhui cd MiniforgeShell
運行腳本文件
sh Miniforge3-MacOSX-arm64.sh
結(jié)果如下圖所示,然后一直進行enter回車,直到需要你手動輸入yes或者no的地方,對于選擇yes或者no的問題,一律輸入yes,然后一直回車直到結(jié)束。

運行成功圖如下所示,代表Miniforge3-MacOSX-arm64.sh運行完成,此時會在以用戶名命名的文件夾下(此處我的文件夾是xiewenhui)生成一個Miniforge3文件夾,代表腳本運行完畢后所生成的安裝文件(我們把Miniforge3當作anconda一樣的包管理器,其中會包含python和conda,因此conda不需要再另外安裝)。

2. 創(chuàng)建虛擬環(huán)境
(1)用conda創(chuàng)建一個虛擬環(huán)境,同時設(shè)置python版本
下面tensorflow是我創(chuàng)建的虛擬環(huán)境名,當然也可以寫成tf24等等
conda create -n 虛擬環(huán)境名稱 python=版本號 conda create -n tensorflow python=3.8
(2)激活虛擬環(huán)境
conda activate 虛擬環(huán)境名 conda activate tensorflow
提示:如果需要取消激活狀態(tài),輸入conda deactivate即可
(3)查看當前環(huán)境的python位置
此時支持tensorflow的python解釋器就位于虛擬環(huán)境envs中,它的版本和(1)中所創(chuàng)建的版本是一致的,因此之后我們在pycharm等IDE中直接導入下述地址即可(后面會講到)。

理解:miniforge3是Miniforge腳本運行后所創(chuàng)建的包管理環(huán)境,miniforge3是類似于Anconda一樣的作用,在Anconda中我們可以創(chuàng)建多個虛擬環(huán)境,在miniforge3也是一樣的其中我們所創(chuàng)建的虛擬環(huán)境位于…/miniforge3/envs文件夾下,envs下的每個文件夾對應著一個獨立的虛擬環(huán)境,當我們需要在IDE中切換python解釋器的時候,我們便找到所需的python解釋器:…/miniforge3/envs/虛擬環(huán)境名稱(是一個文件夾,文件夾名稱和你在conda create -n 虛擬環(huán)境名 python=xxx是一個名)/bin/python,然后導入IDE即可。
3. 安裝tensorflow
當創(chuàng)建完虛擬環(huán)境后,做完準備工作之后,我們需要安裝tensorflow-macos,這是我們真正的目的。
(1)下載tensorflow安裝包(支持arm架構(gòu)版本的)
下載鏈接為Releases · apple/tensorflow_macos · GitHub,下載完成之后找一個文件夾進行保存即可,然后直接解壓到當前文件夾。


(2)保持tensorflow激活狀態(tài),進入到剛剛解壓的tensorflow_macos文件夾中,手動pip安裝whl文件
注意不要輸入conda deactivate關(guān)閉了tensorflow激活狀態(tài),直接cd找到文件夾即可
我的tensorflow_macos文件夾位置是/Users/xiewenhui/tensorflow_macos
找到tensorflow_macos文件夾:

繼續(xù)進入下一級文件夾arm64:

手動pip安裝之前,先看一下arm64下面有哪些whl文件,防止pip的時候發(fā)生遺漏:

存在5個whl文件都需要安裝
pip安裝之前我們需要修改lib路徑和envs路徑(很重要),方便我們下一步的安裝:
# 更改為tensorflow_macos下載解壓后的文件夾 libs="/Users/xiewenhui/tensorflow_macos/arm64/" # 替換成tensorflow的虛擬環(huán)境路徑,tensorflow是你之前創(chuàng)建虛擬環(huán)境的名稱,虛擬環(huán)境什么名,envs下文件夾就什么名 env="/Users/xiewenhui/miniforge3/envs/tensorflow"
下面手動安裝這些文件,依次輸入下面命令:
pip install --upgrade pip wheel setuptools cached-property six pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/grpcio-1.33.2-cp38-cp38-macosx_11_0_arm64.whl" pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/h5py-2.10.0-cp38-cp38-macosx_11_0_arm64.whl" pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/numpy-1.18.5-cp38-cp38-macosx_11_0_arm64.whl" pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/tensorflow_macos-0.1a1-cp38-cp38-macosx_11_0_arm64.whl” pip install --upgrade -t "$env/lib/python3.8/site-packages/" --no-dependencies --force "$libs/tensorflow_addons_macos-0.1a2-cp38-cp38-macosx_11_0_arm64.whl” pip install absl-py astunparse flatbuffers gast google_pasta keras_preprocessing opt_einsum protobuf tensorflow_estimator termcolor typing_extensions wrapt wheel tensorboard typeguard
如果發(fā)生pip安裝錯誤,可能是文件路徑不對,lib路徑和envs路徑得確保正確,其次就是你所安裝的whl文件名和上述代碼中的不一致,以自己的whl文件名為主。tensorflow_macos不同的版本其中所包含的whl文件名可能不同。
如果出現(xiàn)命令行出現(xiàn)dquote的時候,最好自己直接粘貼ls顯示的文件名,pip指令可以復制,但是pip install ..."$libs/文件名.whl"的時候,建議文件名.whl從ls顯示出來的whl文件名中復制。
(3)以上安裝步驟就基本完成,但是注意由于Miniforge3中和Mini Conda一樣,主要包含了python和conda,其他的一些科學計算庫例如pandas等等需要自己手動安裝,方式如下:
conda install -y pandas matplotlib scikit-learn jupyterlab

以上安裝步驟已經(jīng)完成,下面可以對安裝是否成功進行測試
4. 測試
命令行輸入python,打開python shell環(huán)境
依次輸入下面代碼:
import tensorflow as tf print(tf.__version__)
當引入tensorflow不報錯并且打印出tensorflow版本時,代表tensorflow安裝成功

5. Pycharm導入含有tensorflow包的python解釋器
根據(jù)圖中路徑尋找python解釋器,在envs文件夾下,位置時~/miniforge3/envs/你的虛擬環(huán)境名(我的是tensorflow)/bin/python

Pycharm測試:
import tensorflow as tf print(tf.__version__) print(tf.config.list_physical_devices())

補充:實際上可以按照蘋果官網(wǎng)的方法進行在線pip安裝,Tensorflow Plugin - Metal - Apple Developer
python -m pip install tensorflow-macos
但是由于在安裝中可能出現(xiàn)h5py無法安裝的情況,因此我們直接下載tensorflow_macos安裝包,下載到本地之后再用pip安裝本地文件,不僅速度快,而且不會出現(xiàn)h5py的相關(guān)報錯
自己存在一些問題的小記錄:
由于安裝時的tensorflow版本時2.4.0-rc0,但是在之后創(chuàng)建一些項目之后版本莫名變成了2.7.0。如果想要在裝回以前的2.4.0-rc0,則按照上面的步驟重新pip一下whl文件即可。
到此這篇關(guān)于MacOS(M1芯片 arm架構(gòu))下如何安裝tensorflow的文章就介紹到這了,更多相關(guān)MacOS安裝tensorflow內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Python中測試訪問同一數(shù)據(jù)的競爭條件的方法
這篇文章主要介紹了在Python中測試訪問同一數(shù)據(jù)的競爭條件的方法,探究多線程或多進程情況下優(yōu)先訪問權(quán)的問題,需要的朋友可以參考下2015-04-04
python基礎(chǔ)教程之五種數(shù)據(jù)類型詳解
這篇文章主要介紹了python基礎(chǔ)教程之五種數(shù)據(jù)類型詳解的相關(guān)資料,這里對Python 的數(shù)據(jù)類型進行了詳細介紹,需要的朋友可以參考下2017-01-01
Python基于Webhook實現(xiàn)github自動化部署
這篇文章主要介紹了Python基于Webhook實現(xiàn)github自動化部署,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11
python 數(shù)據(jù)提取及拆分的實現(xiàn)代碼
這篇文章主要介紹了python 數(shù)據(jù)提取及拆分的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08
python 實現(xiàn)將小圖片放到另一個較大的白色或黑色背景圖片中
今天小編就為大家分享一篇python 實現(xiàn)將小圖片放到另一個較大的白色或黑色背景圖片中,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Pandas實現(xiàn)groupby分組統(tǒng)計方法實例
在數(shù)據(jù)處理的過程,有可能需要對一堆數(shù)據(jù)分組處理,例如對不同的列進行agg聚合操作(mean,min,max等等),下面這篇文章主要給大家介紹了關(guān)于Pandas實現(xiàn)groupby分組統(tǒng)計方法的相關(guān)資料,需要的朋友可以參考下2023-06-06

