TensorFlow 安裝

網址

下載與安裝

你可以使用我們提供的 Pip, Docker, Virtualenv, Anaconda 或 源碼編譯的方法安裝 TensorFlow.

1. Pip 安裝

Pip 是一個 Python 的軟件包安裝與管理工具.
在安裝 TensorFlow 過程中要涉及安裝或升級的包詳見 列表
1)首先安裝 pip (或 Python3 的 pip3 ):
Ubuntu/Linux 64-bit
$ sudo apt-get install python-pip python-dev
Mac OS X
$ sudo easy_install pip
2)安裝 TensorFlow :
Ubuntu/Linux 64-bit, CPU only, Python 2.7:
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
Ubuntu/Linux 64-bit, GPU enabled, Python 2.7. Requires CUDA toolkit 7.5 and CuDNN v4.# For other versions, see "Install from sources" below.
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
Mac OS X, CPU only:
$ sudo easy_install --upgrade six$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py2-none-any.whl
如果是 Python3 :
Ubuntu/Linux 64-bit, CPU only, Python 3.4:
$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp34-cp34m-linux_x86_64.whl
Ubuntu/Linux 64-bit, GPU enabled, Python 3.4. Requires CUDA toolkit 7.5 and CuDNN v4.# For other versions, see "Install from sources" below.
$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp34-cp34m-linux_x86_64.whl
Mac OS X, CPU only:
$ sudo easy_install --upgrade six$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py3-none-any.whl
備注:如果之前安裝過 TensorFlow < 0.7.1 的版本,應該先使用 pip uninstall
卸載 TensorFlow 和 protobuf ,保證獲取的是一個最新 protobuf 依賴下的安裝包.
之后可以測試一下.

2.基于 Docker 的安裝

我們也支持通過 Docker 運行 TensorFlow. 該方式的優點是不用操心軟件依賴問題.
首先, 安裝 Docker. 一旦 Docker 已經啟動運行, 可以通過命令啟動一個容器:
$ docker run -it b.gcr.io/tensorflow/tensorflow

該命令將啟動一個已經安裝好 TensorFlow 及相關依賴的容器.
其它鏡像
默認的 Docker 鏡像只包含啟動和運行 TensorFlow 所需依賴庫的一個最小集. 我們額外提供了 下面的容器, 該容器同樣可以通過上述 docker run
命令安裝:
b.gcr.io/tensorflow/tensorflow-full
: 鏡像中的 TensorFlow 是從源代碼完整安裝的, 包含了編譯和運行 TensorFlow 所需的全部工具. 在該鏡像上, 可以直接使用源代碼進行實驗, 而不需要再安裝上述的任何依賴.

3.基于 VirtualEnv 的安裝

我們推薦使用 virtualenv 創建一個隔離的容器, 來安裝 TensorFlow. 這是可選的, 但是這樣做能使排查安裝問題變得更容易.
首先, 安裝所有必備工具:
在 Linux 上:
'$ sudo apt-get install python-pip python-dev python-virtualenv'
在 Mac 上:
'$ sudo easy_install pip # 如果還沒有安裝 pip'
'$ sudo pip install --upgrade virtualenv'
接下來, 建立一個全新的 virtualenv 環境. 為了將環境建在 ~/tensorflow
目錄下, 執行:
$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow
然后, 激活 virtualenv:
$ source bin/activate # 如果使用 bash
$ source bin/activate.csh # 如果使用 csh
(tensorflow)$ # 終端提示符應該發生變化
在 virtualenv 內, 安裝 TensorFlow:
(tensorflow)$ pip install --upgrade <$url_to_binary.whl>
接下來, 使用類似命令運行 TensorFlow 程序:
(tensorflow)$ cd tensorflow/models/image/mnist
(tensorflow)$ python convolutional.py
當使用完 TensorFlow
(tensorflow)$ deactivate # 停用 virtualenv
$ # 你的命令提示符會恢復原樣

4.基于 Anaconda 的安裝

Anaconda 是一個集成許多第三方科學計算庫的 Python 科學計算環境,Anaconda 使用 conda 作為自己的包管理工具,同時具有自己的計算環境,類似 Virtualenv.
和 Virtualenv 一樣,不同 Python 工程需要的依賴包,conda 將他們存儲在不同的地方。 TensorFlow 上安裝的 Anaconda 不會對之前安裝的 Python 包進行覆蓋.
安裝 Anaconda
建立一個 conda 計算環境
激活環境,使用 conda 安裝 TensorFlow
安裝成功后,每次使用 TensorFlow 的時候需要激活 conda 環境

安裝 Anaconda :
參考 Anaconda 的下載頁面的指導
建立一個 conda 計算環境名字叫tensorflow
:
Python 2.7
$ conda create -n tensorflow python=2.7
Python 3.4
$ conda create -n tensorflow python=3.4

激活tensorflow
環境,然后使用其中的 pip 安裝 TensorFlow. 當使用easy_install
使用--ignore-installed
標記防止錯誤的產生。
$ source activate tensorflow
(tensorflow)$ # Your prompt should change
Ubuntu/Linux 64-bit, CPU only, Python 2.7:
(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl
Ubuntu/Linux 64-bit, GPU enabled, Python 2.7. Requires CUDA toolkit 7.5 and CuDNN v4.# For other versions, see "Install from sources" below.
(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl
Mac OS X, CPU only:
(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0rc0-py2-none-any.whl

對于 Python 3.x :
$ source activate tensorflow(tensorflow)$ # Your prompt should change
Ubuntu/Linux 64-bit, CPU only, Python 3.4:
(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0rc0-cp34-cp34m-linux_x86_64.whl
Ubuntu/Linux 64-bit, GPU enabled, Python 3.4. Requires CUDA toolkit 7.5 and CuDNN v4.# For other versions, see "Install from sources" below.
(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0rc0-cp34-cp34m-linux_x86_64.whl
Mac OS X, CPU only:
(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0rc0-py3-none-any.whl

conda 環境激活后,你可以測試
當你不用 TensorFlow 的時候,關閉環境:
(tensorflow)$ source deactivate
$ # Your prompt should change back

再次使用的時候再激活 :-)
$ source activate tensorflow
(tensorflow)$ # Your prompt should change.
Run Python programs that use TensorFlow....
When you are done using TensorFlow, deactivate the environment.
(tensorflow)$ source deactivate

嘗試你的第一個 TensorFlow 程序
(可選) 啟用 GPU 支持
如果你使用 pip 二進制包安裝了開啟 GPU 支持的 TensorFlow, 你必須確保 系統里安裝了正確的 CUDA sdk 和 CUDNN 版本. 請參間 CUDA 安裝教程
你還需要設置 LD_LIBRARY_PATH
和 CUDA_HOME
環境變量. 可以考慮將下面的命令 添加到 ~/.bashrc
文件中, 這樣每次登陸后自動生效. 注意, 下面的命令 假定 CUDA 安裝目錄為 /usr/local/cuda
:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"export CUDA_HOME=/usr/local/cuda

運行 TensorFlow
打開一個 python 終端:
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print sess.run(a+b)42
>>>

從源碼安裝
克隆 TensorFlow 倉庫
$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow

--recurse-submodules
參數是必須得, 用于獲取 TesorFlow 依賴的 protobuf 庫.
Linux 安裝
安裝 Bazel
首先依照 教程 安裝 Bazel 的依賴. 然后在 鏈接 中下載適合你的操作系統的最新穩定版, 最后按照下面腳本執行:
$ chmod +x PATH_TO_INSTALL.SH$ ./PATH_TO_INSTALL.SH --user

注意把 PATH_TO_INSTALL.SH
替換為你下載的安裝包的文件路徑.
將執行路徑 output/bazel
添加到 $PATH
環境變量中.
安裝其他依賴
For Python 2.7:
$ sudo apt-get install python-numpy swig python-dev python-wheel
For Python 3.x:
$ sudo apt-get install python3-numpy swig python3-dev python3-wheel

可選: 安裝 CUDA (在 Linux 上開啟 GPU 支持)
為了編譯并運行能夠使用 GPU 的 TensorFlow, 需要先安裝 NVIDIA 提供的 Cuda Toolkit 7.0 和 CUDNN 6.5 V2.
TensorFlow 的 GPU 特性只支持 NVidia Compute Capability >= 3.5 的顯卡. 被支持的顯卡 包括但不限于:
NVidia Titan
NVidia Titan X
NVidia K20
NVidia K40

下載并安裝 Cuda Toolkit 7.0
下載地址
將工具安裝到諸如 /usr/local/cuda
之類的路徑.
下載并安裝 CUDNN Toolkit 6.5
下載地址
解壓并拷貝 CUDNN 文件到 Cuda Toolkit 7.0 安裝路徑下. 假設 Cuda Toolkit 7.0 安裝 在 /usr/local/cuda
, 執行以下命令:
tar xvzf cudnn-6.5-linux-x64-v2.tgzsudo cp cudnn-6.5-linux-x64-v2/cudnn.h /usr/local/cuda/includesudo cp cudnn-6.5-linux-x64-v2/libcudnn* /usr/local/cuda/lib64

配置 TensorFlow 的 Cuda 選項
從源碼樹的根路徑執行:
$ ./configure
Do you wish to bulid TensorFlow with GPU support? [y/n] y
GPU support will be enabled for TensorFlowPlease specify the location where CUDA 7.0 toolkit is installed. Refer toREADME.md for more details. [default is: /usr/local/cuda]: /usr/local/cudaPlease specify the location where CUDNN 6.5 V2 library is installed. Refer toREADME.md for more details. [default is: /usr/local/cuda]: /usr/local/cudaSetting up Cuda includeSetting up Cuda lib64Setting up Cuda binSetting up Cuda nvvmConfiguration finished

這些配置將建立到系統 Cuda 庫的符號鏈接. 每當 Cuda 庫的路徑發生變更時, 必須重新執行上述 步驟, 否則無法調用 bazel 編譯命令.
編譯目標程序, 開啟 GPU 支持
從源碼樹的根路徑執行:
$ bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
$ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu# 大量的輸出信息.這個例子用 GPU 迭代計算一個 2x2 矩陣的主特征值 (major eigenvalue).# 最后幾行輸出和下面的信息類似.000009/000005 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]000006/000001 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]000009/000009 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]

注意, GPU 支持需通過編譯選項 "--config=cuda" 開啟.
已知問題
盡管可以在同一個源碼樹下編譯開啟 Cuda 支持和禁用 Cuda 支持的版本, 我們還是推薦在 在切換這兩種不同的編譯配置時, 使用 "bazel clean" 清理環境.

在執行 bazel 編譯前必須先運行 configure, 否則編譯會失敗并提示錯誤信息. 未來, 我們可能考慮將 configure 步驟包含在編譯過程中, 以簡化整個過程, 前提是 bazel 能夠提供新的特性支持這樣.

Mac OS X 安裝
Mac 和 Linux 需要的軟件依賴完全一樣, 但是安裝過程區別很大. 以下鏈接用于幫助你 在 Mac OS X 上安裝這些依賴:
Bazel
參見本網頁的 Mac OS X 安裝指南.
SWIG
Mac OS X 安裝教程.
注意: 你需要安裝PCRE, 而不是 PCRE2.
Numpy
參見安裝教程.
創建 pip 包并安裝
$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg# .whl 文件的實際名字與你所使用的平臺有關$ pip install /tmp/tensorflow_pkg/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

訓練你的第一個 TensorFlow 神經網絡模型
從源代碼樹的根路徑執行:
$ cd tensorflow/models/image/mnist
$ python convolutional.py
Succesfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.Succesfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.Succesfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.Succesfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.Extracting data/train-images-idx3-ubyte.gzExtracting data/train-labels-idx1-ubyte.gzExtracting data/t10k-images-idx3-ubyte.gzExtracting data/t10k-labels-idx1-ubyte.gzInitialized!Epoch 0.00Minibatch loss: 12.054, learning rate: 0.010000Minibatch error: 90.6%Validation error: 84.6%Epoch 0.12Minibatch loss: 3.285, learning rate: 0.010000Minibatch error: 6.2%Validation error: 7.0%......

常見問題
1.GPU 相關問題
如果在嘗試運行一個 TensorFlow 程序時出現以下錯誤:
ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory

請確認你正確安裝了 GPU 支持, 參見 相關章節.
2.在 Linux 上
如果出現錯誤:
... "add", "radd", ^SyntaxError: invalid syntax

解決方案: 確認正在使用的 Python 版本為 Python 2.7.
3.在 Mac OS X 上
如果出現錯誤:
import six.moves.copyreg as copyregImportError: No module named copyreg

解決方案: TensorFlow 使用的 protobuf 依賴 six-1.10.0
. 但是, Apple 的默認 python 環境 已經安裝了 six-1.4.1
, 該版本可能很難升級. 這里提供幾種方法來解決該問題:
升級全系統的 six
:
sudo easy_install -U six

通過 homebrew 安裝一個隔離的 python 副本:
brew install python

4.在virtualenv
內編譯或使用 TensorFlow.

如果出現錯誤:

import tensorflow as tfTraceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/site-packages/tensorflow/init.py", line 4, in <module> from tensorflow.python import * File "/usr/local/lib/python2.7/site-packages/tensorflow/python/init.py", line 13, in <module> from tensorflow.core.framework.graph_pb2 import *... File "/usr/local/lib/python2.7/site-packages/tensorflow/core/framework/tensor_shape_pb2.py", line 22, in <module> serialized_pb=_b('\n,tensorflow/core/framework/tensor_shape.proto\x12\ntensorflow"d\n\x10TensorShapeProto\x12-\n\x03\x64im\x18\x02 \x03(\x0b\x32 .tensorflow.TensorShapeProto.Dim\x1a!\n\x03\x44im\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3')TypeError: init() got an unexpected keyword argument 'syntax'

這是由于安裝了沖突的 protobuf 版本引起的, TensorFlow 需要的是 protobuf 3.0.0. 當前 最好的解決方案是確保沒有安裝舊版本的 protobuf, 可以使用以下命令重新安裝 protobuf 來解決 沖突:
brew reinstall --devel protobuf

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,488評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,034評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,327評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,554評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,337評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,883評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,975評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,114評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,625評論 1 332
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,555評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,737評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,244評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,973評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,615評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,343評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,699評論 2 370

推薦閱讀更多精彩內容