本文遷移自本人簡書賬號醬油蔥, 後續不會再在簡書更新文章, 具體原因可以檢視簡書CEO盛讚程式設計師出軌率高“真實、新鮮、多元” ,對不起打擾了
前提
筆者使用的電腦為Mac mini(Late 2014), OS系統為10.12.3. python為系統的版本2.7.10
安裝過程
安裝Homebrew
這是Mac上安裝管理工具/應用的神器, 強烈建議安裝. 在終端上執行這行命令即可.
注意, 這是硬廣告. XD:
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
由於Homebrew每次安裝新包時, 都會啟動更新, 可以考慮使用以下方式:
HOMEBREW_NO_AUTO_UPDATE=1 brew install …
或者將HOMEBREW_NO_AUTO_UPDATE=1 brew install
另外起個別名, 這樣安裝和升級就是兩件事情了
安裝pip
安裝了Homebrew後, 安裝其它東西簡直小菜一碟, 只要網上倉庫裡有它的安裝包就行. 在終端上執行這行命令
brew install pip
如果沒有安裝Homebrew, 也可以考慮直接這樣安裝pip:
sudo easy_install pip
安裝vertualenv
virtualenv用於建立獨立的Python環境,多個Python相互獨立,互不影響
這個工具也是非常必要的, 畢竟沒有人願意將自己的機器環境搞得一塌糊塗.
命令列指令如下:
sudo pip install –upgrade virtualenv
建立虛擬環境
這裡可以任意指定一個目錄作為虛擬Python環境的主目錄, 指令如下:
virtualenv –system-site-packages ~/tensorflow
啟用虛擬環境
使用bash的使用者可以使用以下命令:
cd ~/tensorflow
source bin/activate
使用csh的使用者可以使用以下命令:
cd ~/tensorflow
source bin/activate.csh
使用zsh的我只好表示作者太不人道了~ 於是乎只能選擇bash指令碼來執行. 執行結果***(終端提示符應該發生變化)***應該會顯示為:
(tensorflow)$
之前的提示符應該為
$
安裝TensorFlow
在 virtualenv 內, 安裝 TensorFlow, 目前我使用的版本是1.0.0的CPU版本. 你如果想用別的版本可以去他們github官網上去看看都有什麼路徑
pip install –upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.0.0-py2-none-any.whl
感謝TensorFlow團隊的努力, 目前也可以通過更快捷的方式安裝了:
***Made pip packages pypi compliant. TensorFlow can now be installed by pip install tensorflow command. ***
pip install tensorflow
測試TensorFlow
Tensor中文社群提供了一個簡易Python指令碼, 進行TensorFlow整合測試, 以下為Python檔案內容:
# test.py
import tensorflow as tf
import numpy as np
# 使用 NumPy 生成假資料(phony data), 總共 100 個點.
x_data = np.float32(np.random.rand(2, 100)) # 隨機輸入
y_data = np.dot([0.100, 0.200], x_data) + 0.300
# 構造一個線性模型
#
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
# 初始化變數
init = tf.initialize_all_variables()
# 啟動圖 (graph)
sess = tf.Session()
sess.run(init)
# 擬合平面
for step in xrange(0, 201):
sess.run(train)
if step % 20 == 0:
print step, sess.run(W), sess.run(b)
# 得到最佳擬合結果 W: [[0.100 0.200]], b: [0.300]
複製程式碼
以上內容儲存後, 在virtualenv環境下執行:
python test.py
就能看到我們的三維資料的平面擬合結果了:
0 [[ 0.30465344 0.70788538]] [-0.23038898]
20 [[ 0.20695965 0.35023165]] [ 0.16050725]
40 [[ 0.1383343 0.2433864]] [ 0.25552779]
60 [[ 0.11293854 0.21308941]] [ 0.28581053]
80 [[ 0.10424803 0.20405222]] [ 0.2954708]
100 [[ 0.10137596 0.20127273]] [ 0.298554]
120 [[ 0.10044261 0.20040286]] [ 0.29953831]
140 [[ 0.10014189 0.20012806]] [ 0.29985258]
160 [[ 0.10004541 0.20004079]] [ 0.29995292]
180 [[ 0.10001453 0.20001301]] [ 0.29998496]
200 [[ 0.10000464 0.20000416]] [ 0.29999521]
最後的擬合結果(python精度確實是有點讓人疑惑)為:
200 [[0.100, 0.200]], [0.300] #大約經過了200步達成
當使用完 TensorFlow, 需要退出虛擬環境, 可以執行這條指令停用 virtualenv:
deactivate
$ # 你的命令提示符會恢復原樣
還沒結束~
因為CPU版本的TensorFlow跑起來實在有點慢, 所以更好的辦法是使用GPU版本. 前提還是一樣的, 安裝brew
, pip
和virtualenv
, 然後再安裝bazel:
brew install bazel
接著安裝SWIG
brew install swig
再接著安裝Cuda
brew cask install cuda
安裝前最好檢查一下Cuda的版本是否符合預安裝的GPU版本最低限制(例如本人要下載的版本要求Cuda版本最低7.5)
brew cask info cuda
你會看到類似這些內容
cuda: 8.0.55
https://developer.nvidia.com/cuda-zone
/usr/local/Caskroom/cuda/8.0.55 (23 files, 1.3GB)
From: https://github.com/caskroom/homebrew-cask/blob/master/Casks/cuda.rb
如果你的版本低於最低限制版本, 記得更新一下brew:
brew update
brew upgrade cuda
同時, 你還得去官網NVIDIA官網下載指定版本的Cudnn(目前最新版本為5.1, 對應最高的cuda版本為8.0):
developer.nvidia.com/cudnn
這是我下載的指定檔案連結地址:
developer.nvidia.com/rdp/assets/…
下載完成後, 記得解壓並拷貝到指定目錄/usr/local/cuda, 指令如下:
tar xzvf ~/Downloads/cudnn-8.0-osx-x64-v5.0.tgz
sudo mv -v ~/Downloads/cuda/lib/libcudnn* /usr/local/cuda/lib
sudo mv -v ~/Downloads/cuda/include/cudnn.h /usr/local/cuda/include
為了保證庫能查詢到連結路徑, 你還要把~/.bash_profile(或其它環境配置項檔案)新增以下內容:
export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH
複製程式碼
//TODO: 本人還沒安裝成功, 正在糾結中, 詳細教程可以看github上這篇文章
##後記
極客學院的這篇教程提到了更多的安裝方式, 甚至還提供了Docker, 這樣能確保你的安裝能完全杜絕軟體依賴問題, 減少非常多的麻煩.
TensorFlow中文社群是我們目前國內TensorFlow最大的學習和研究社群, 大夥可以加入這個大家庭, 瞭解更多關於大資料框架TensorFlow的知識.