如何在搭載M1的Mac安裝 Tensorflow

如何在搭載M1的Mac安裝 Tensorflow

本文將會依照apple 發布的快照版本來安裝Tensorflow。

▲圖一:2021年3月4日發布的tensorflow快照

下載快照

我們選擇下載tensorflow_macos-0.1alpha3.tar.gz,因為裡面已經包含虛擬環境的解決方案。這裡的虛擬環境不是虛擬機的意思,也不是指用Rosetta編譯的意思。指的是這個虛擬環境擁有自己一套Python module,與外面獨立、互不相干。

建立虛擬環境並安裝Tensorflow

下載後解壓縮會生成一個資料夾,開啟Terminal並且進入該資料夾。執行下面的指令來製作虛擬環境以及安裝Tensorflow。

$ /bin/bash install_venv.sh
▲圖二:install_venv.sh的支援資訊

跑出以下結果,指示我們應該怎麼設置虛擬環境。 — prompt用來指定虛擬環境內的module還有相關設定檔要放在哪裡,暫且稱為「虛擬環境資料夾」。如果不想設定的話 -y 就可以了,他會創建一個新的資料夾放在當前資料夾裏面。— python用於指定要用哪一個python來做虛擬環境,這也是看各位的喜好。 請記得,虛擬環境資料夾只是放設定檔或module的地方,你還是可以在本機的任何位置使用這個虛擬環境。綜上所述,我的作法如下:

$ /bin/bash install_venv.sh --python=/usr/bin/python3 -y tf24py38

為求教學方便,所以我就請它放在當前資料夾內了。最後面的tf24py38是這個虛擬環境的名字。此時環境設定已經做好了,但是還沒啟用。我們可以透過下列指令啟用

$ source /where/to/tensorflow_macos/tf24py38/bin/activate
# hint: 不要真的打/where/to喔!
#       那是指tensorflow_macos所在位置的意思。

如果要離開虛擬環境:

$ deactivate

為什麼要使用虛擬環境?

因為module之間有相依性,Tensorflow也是。它會利用一部分其他module的指令。那些指令可能只存在特定版本,最新的module不一定會有,太舊的也不一定有。然而,運行於Python上的程式可能有很多,每個程式適合的module版本都不一樣,所以工程師就想出了虛擬環境這個解決方案。讓每一個環境都有獨立的module。各自安裝最適合的module版本。

測試

在虛擬環境中,你會看到前面多了一個括號寫著tf24py38,如下圖。恭喜你,虛擬環境以及Tensorflow都裝好了,讓我們打開python3看一下吧。

▲圖三:測試tensorflow

在使用Tensorflow前,請記得一件事。在虛擬環境中,所有沒安裝在「系統資料夾」或是「虛擬環境資料夾」的python module都不能用。由於tensorflow在虛擬環境下運行,所以如果想要使用在系統資料夾以外的module的話,就必須重新安裝一個新的。

總結

去除教學用指令,本次安裝的指令如下。

$ /bin/bash install_venv.sh --python=$(which python3) -y tf24py38
$ source /where/to/tensorflow_macos/tf24py38/bin/activate
$ python3
>>> import tensorflow

眼尖的朋友會看到我改用$(which python3),這段話的意思是請用預設路徑中的python3。因為每個人的python3的位置可能有所不同,所以這樣寫比較泛用(general)。

備註

很高興Apple很快地就為開發者編譯了M1晶片專用的Tensorflow,讓我們得以利用其強大的神經單元訓練模型。我並不是拓荒者,中文論壇及網誌已經許多專業人士撰寫與本文類似的教學。然而他們大多是使用anaconda或是miniforge。本人不喜歡anaconda家族,因為我總是沒搞清楚過conda跟pip是如何分工的。因此當我成功安裝Tensorflow在原生Python時,希望可以分享我的作法給大家(其實跟Apple的官方作法一模一樣),讓原生Python 的中文資源越來越多。


所有文章分類

訂閱我吧

不再錯過每一篇新文章

*

Yi-Lung Chiu