MacOS(M1芯片?arm架構)下安裝tensorflow的詳細過程
導語
由于目前anconda官網上對于macos系統(tǒng)只支持X86結構的,因此基于arm結構的MacOS暫時無法使用anconda來對tensorflow進行配置。雖然Anconda無法在M1上運行,但是相應的替代品有Miniforge,同樣也能實現(xiàn)類似的效果。此外,蘋果官方稱還支持添加metal插件,從而可以調用集成在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
結果如下圖所示,然后一直進行enter回車,直到需要你手動輸入yes或者no的地方,對于選擇yes或者no的問題,一律輸入yes,然后一直回車直到結束。
運行成功圖如下所示,代表Miniforge3-MacOSX-arm64.sh運行完成,此時會在以用戶名命名的文件夾下(此處我的文件夾是xiewenhui)生成一個Miniforge3文件夾,代表腳本運行完畢后所生成的安裝文件(我們把Miniforge3當作anconda一樣的包管理器,其中會包含python和conda,因此conda不需要再另外安裝)。
2. 創(chuàng)建虛擬環(huán)境
(1)用conda創(chuàng)建一個虛擬環(huán)境,同時設置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架構版本的)
下載鏈接為Releases · apple/tensorflow_macos · GitHub,下載完成之后找一個文件夾進行保存即可,然后直接解壓到當前文件夾。
(2)保持tensorflow激活狀態(tài),進入到剛剛解壓的tensorflow_macos文件夾中,手動pip安裝whl文件
注意不要輸入conda deactivate關閉了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
以上安裝步驟已經完成,下面可以對安裝是否成功進行測試
4. 測試
命令行輸入python,打開python shell環(huán)境
依次輸入下面代碼:
import tensorflow as tf print(tf.__version__)
當引入tensorflow不報錯并且打印出tensorflow版本時,代表tensorflow安裝成功
5. Pycharm導入含有tensorflow包的python解釋器
根據圖中路徑尋找python解釋器,在envs文件夾下,位置時~/miniforge3/envs/你的虛擬環(huán)境名(我的是tensorflow)/bin/python
Pycharm測試:
import tensorflow as tf print(tf.__version__) print(tf.config.list_physical_devices())
補充:實際上可以按照蘋果官網的方法進行在線pip安裝,Tensorflow Plugin - Metal - Apple Developer
python -m pip install tensorflow-macos
但是由于在安裝中可能出現(xiàn)h5py無法安裝的情況,因此我們直接下載tensorflow_macos安裝包,下載到本地之后再用pip安裝本地文件,不僅速度快,而且不會出現(xiàn)h5py的相關報錯
自己存在一些問題的小記錄:
由于安裝時的tensorflow版本時2.4.0-rc0,但是在之后創(chuàng)建一些項目之后版本莫名變成了2.7.0。如果想要在裝回以前的2.4.0-rc0,則按照上面的步驟重新pip一下whl文件即可。
到此這篇關于MacOS(M1芯片 arm架構)下如何安裝tensorflow的文章就介紹到這了,更多相關MacOS安裝tensorflow內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于Python+Flask實現(xiàn)一個簡易網頁驗證碼登錄系統(tǒng)案例
當今的互聯(lián)網世界中,為了防止惡意訪問,許多網站在登錄和注冊表單中都采用了驗證碼技術,驗證碼可以防止機器人自動提交表單,確保提交行為背后有一個真實的人類用戶,本文將向您展示如何使用Python的Flask框架來創(chuàng)建一個簡單的驗證碼登錄系統(tǒng)2023-09-09Python opencv相機標定實現(xiàn)原理及步驟詳解
這篇文章主要介紹了Python opencv相機標定實現(xiàn)原理及步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04PyQt5 PySide2 觸摸測試功能的實現(xiàn)代碼
這篇文章主要介紹了PyQt5 PySide2 觸摸測試功能的實現(xiàn),本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04Python網絡編程之socket與socketserver
這篇文章介紹了Python網絡編程之socket與socketserver,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05