TensorFlow在MAC環(huán)境下的安裝及環(huán)境搭建
給大家分享一下TensorFlow在MAC系統(tǒng)中的安裝步驟以及環(huán)境搭建的操作流程。
TensorFlow 底層的圖模型結(jié)構(gòu)清晰,容易改造;支持分布式訓練;可視化效果好。如果做長期項目,接觸較大數(shù)據(jù)集的話,TensorFlow很適用,而且谷歌也在不斷優(yōu)化完備它,對于使用深度學習朋友,TensorFlow是一個很好的工具。
在學習了一段時間臺大李宏毅關于deep learning的課程,以及一些其他機器學習的書之后,終于打算開始動手進行一些實踐了。
感覺保完研之后散養(yǎng)狀態(tài)下,學習效率太低了,于是便想白天學習,晚上對白天學習的知識做一些總結(jié)和記錄,如果有不妥的地方,歡迎大家批評指教,共同進步。
一、深度學習框架的選擇
隨著深度學習日趨火熱,技術的逐漸興起,各種深度學習框架也層出不窮。
目前使用普遍的框架有Tensorflow、Caffe、PyTorch、Theano、CNTK等,那么在這么多框架中該如何選擇呢?
筆者作為一個初學者,架不住Tensorflow的名氣之大,所以最開始便選擇了Tensorflow。當然不僅僅只是因為名氣大,Tensorflow作為谷歌主持的開源項目,它的社區(qū)熱度目前看來是旺盛的,而且現(xiàn)在也最為流行。聽說,它是在谷歌總結(jié)了DistBelief的經(jīng)驗教訓上形成的;它運行高效、可擴展性強,可以運行在手機、普通電腦、計算機群上。
下面再簡單介紹一下其他深度學習框架的特點:
(1) Caffe:卷積神經(jīng)網(wǎng)絡框架,專注于卷積神經(jīng)網(wǎng)絡和圖像處理,因為是基于C++語言,所以執(zhí)行速度非常的快。
(2) PyTorch:動態(tài)computation graph?。。。üP者學習Tensorflow一段后,便會轉(zhuǎn)學PyTorch試試看)
(3) Theano:因其定義復雜模型很容易,在研究中比較流行。
(4) CNTK:微軟開發(fā)的,微軟稱其在語音和圖像識別方面比其他框架更有優(yōu)勢。不過代碼只支持C++.
Tensorflow的一些特性就不再說了,網(wǎng)絡上相關資料也有很多。
下面就介紹一下Tensorflow的安裝,筆者的安裝順序是首先安裝Anaconda、然后安裝Tensorflow、再安裝Pycharm。
二、安裝Anaconda
安裝環(huán)境:
雖然筆者用的是mac,自帶了Python,但是還是先安裝了Anaconda(點擊進入官網(wǎng))。因為它集成了很多Python的第三方庫,而且可以方便的管理不同版本的Python,在不同版本的Python之間切換。而且Anaconda是一個科學計算環(huán)境,在電腦上安裝完Anaconda之后,除了相當于安裝了Python,也安裝好了一些常用的庫。
筆者安裝的是Python 2.7版的Anaconda,在安裝好Anaconda之后,就已經(jīng)安裝好了Python和一些常用的庫了。此外,還自動安裝了Spyder。
Spyder是Python一個簡單的集成開發(fā)環(huán)境,和其他的Python開發(fā)環(huán)境相比,它最大的優(yōu)點就是模仿MATLAB的“工作空間”的功能,可以很方便地觀察和修改數(shù)組的值。
在終端中輸入Spyder就可以打開它了,如下圖所示:
但是筆者更喜歡使用Pycharm作為開發(fā)環(huán)境
三、建立、激活、安裝Tensorflow
打開終端,在上面輸入:
conda create -n tensorflow python=2.7
然后等執(zhí)行完畢之后,再執(zhí)行:
source activate tensorflow
至此就激活了運行環(huán)境。
然后再執(zhí)行pip install tensorflow
以進行Tensorflow的安裝。
然后再執(zhí)行以下Hello Tensorflow代碼測試Tensorflow是否安裝成
import tensorflow as tf hello = tf.constant('Hello Tensorflow!') sess = tf.Session() print(sess.run(hello)) a = tf.constant(10) b = tf.constant(32) printf(sess.run(a+b))
如果正常的話會提示:
Hello Tensorflow! 42
四、PyCharm IDE
一直使用終端開發(fā)的話,實在是太過難用了。筆者選擇了PyCharm作為開發(fā)環(huán)境,官網(wǎng)鏈接。這里筆者用的是社區(qū)版(free)。
(1)首先新建一個Pycharm的工程
因為是做Tensorflow的開發(fā),所以這里我們只需要選擇圖中所示的interpreter即可。
~/anaconda2/envs/tensorflow/bin/python
這樣就把Tensorflow環(huán)境包括了進來,超級方便。
如果平時開發(fā),想用一些輕量級的環(huán)境,就選擇其他Python解釋器就可以了。
(2)運行一個demo進行測試
import tensorflow as tf hello = tf.constant('Hello, Tensorflow!') sess = tf.Session() print(sess.run(hello)) a = tf.constant(66) b = tf.constant(88) print(sess.run(a + b))
如果出現(xiàn)以下提示,就說明成功了,可以開始接下來的學習了~
Hello, Tensorflow! 154
五、總結(jié)
至此,我們便在機器上安裝好了Tensorflow以及其開發(fā)環(huán)境。
總的來說,只需要以下幾步:
安裝Anaconda 通過conda建立Tensorflow運行環(huán)境 激活Tensorflow運行環(huán)境 安裝Pycharm IDE
大家在本地MAC上安裝的時候,很多坑是需要留意的,我們把經(jīng)常遇到的坑給大家做了總結(jié),希望你在安裝的時候盡量的避免這些地方。
一般都是服務器上直接開干,但是也會有人在本機上裝一下的,這里寫下,tensorflow在mac上安裝的坑,給后來者一個參考
1 安裝教程
直接去官網(wǎng)按照說明安裝就好,如果要安裝GPU版本,先安裝官網(wǎng)上的mac gnu設置教程,裝下cud相關的工具,最后有個sample跑過了就算gpu計算環(huán)境配置成功
2 第一個坑
按照官網(wǎng)上的教程,直接使用pip安裝方法就好,注意pip版本要大于8.1,然后你直接sudo pip install tensorflow (不加sudo會權限不夠),然后一般會不通過,提示卸載numpy不成功。
我認為是這樣的原因:numpy是mac系統(tǒng)默認裝的庫,并且設置有保護,所以無法卸載,然后tensorflow需要更高版本的numpy,所以就不成功啦
解決方法如下:
去除mac系統(tǒng)的保護,1 重啟電腦 2 重啟看見蘋果logo了,按住command + R ,進入恢復模式 3 然后在上面的終端工具里面,進入終端 4 在終端輸入 csrutil disable 5 重啟,然后再次執(zhí)行pip安裝 還不明白的話看這篇博客
3 第二個坑
操作成功的話,就成功安裝啦,然后,進去python編輯行
輸入 import tensorflow 然后你會發(fā)現(xiàn),RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9 這個錯誤,說是你bumpy版本太低,這個時候表示日狗,剛才去除了保護,安裝的時候已經(jīng)bumpy更新到最新版了,查看numpy的版本也是最新版,查看版本方法可自行百度。
解決這個坑的方法如下:
import numpy numpy.__path__ #你會發(fā)現(xiàn)出現(xiàn)了一個包含XXX/Framework/xxx的路徑,沒錯這還是系統(tǒng)安裝的那個numpy的路勁, #雖然你升級了,然是導入包的時候還是按照之前的路勁導入,所以版本過低,這個時候只需要把老的路徑去掉 #就像這樣,在終端中(不是python編輯模式下)輸入: sudo mv /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy \ /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy_old
然后再次進入python編輯模式,輸入
import numpy numpy.__path__ #這個時候,路勁就變成了,我們升級的那個numpy的路徑了,是個XXX/local/xxx
然后你再import tensorflow 就沒問題啦,就可以去輸出hello world 了
相關文章
Numpy中如何創(chuàng)建矩陣并等間隔抽取數(shù)據(jù)
這篇文章主要介紹了Numpy中如何創(chuàng)建矩陣并等間隔抽取數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05python爬蟲請求庫httpx和parsel解析庫的使用測評
這篇文章主要介紹了python爬蟲請求庫httpx和parsel解析庫的使用測評,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下2021-05-05Python中使用platform模塊獲取系統(tǒng)信息的用法教程
這里我們整理了Python中使用platform模塊獲取系統(tǒng)信息的用法教程,包括操作系統(tǒng)與Python環(huán)境以及系統(tǒng)的環(huán)境變量等信息的獲取方法:2016-07-07