你可以使用我們提供的 Pip, Docker, Virtualenv, Anaconda 或 源碼編譯的方法安裝 TensorFlow.
Pip 是一個(gè) Python 的軟件包安裝與管理工具.
在安裝 TensorFlow 過(guò)程中要涉及安裝或升級(jí)的包詳見(jiàn) 列表
首先安裝 pip (或 Python3 的 pip3 ):
# Ubuntu/Linux 64-bit
$ sudo apt-get install python-pip python-dev
# Mac OS X
$ sudo easy_install pip
安裝 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
備注:如果之前安裝過(guò) TensorFlow < 0.7.1 的版本,應(yīng)該先使用 pip uninstall 卸載 TensorFlow 和 protobuf ,保證獲取的是一個(gè)最新 protobuf 依賴下的安裝包.
之后可以測(cè)試一下.
我們也支持通過(guò) Docker 運(yùn)行 TensorFlow. 該方式的優(yōu)點(diǎn)是不用操心軟件依賴問(wèn)題.
首先, 安裝 Docker. 一旦 Docker 已經(jīng)啟動(dòng)運(yùn)行, 可以通過(guò)命令啟動(dòng)一個(gè)容器:
$ docker run -it b.gcr.io/tensorflow/tensorflow
該命令將啟動(dòng)一個(gè)已經(jīng)安裝好 TensorFlow 及相關(guān)依賴的容器.
默認(rèn)的 Docker 鏡像只包含啟動(dòng)和運(yùn)行 TensorFlow 所需依賴庫(kù)的一個(gè)最小集. 我們額外提供了
下面的容器, 該容器同樣可以通過(guò)上述 docker run 命令安裝:
b.gcr.io/tensorflow/tensorflow-full: 鏡像中的 TensorFlow 是從源代碼完整安裝的,
包含了編譯和運(yùn)行 TensorFlow 所需的全部工具. 在該鏡像上, 可以直接使用源代碼進(jìn)行實(shí)驗(yàn),
而不需要再安裝上述的任何依賴.我們推薦使用 virtualenv 創(chuàng)建一個(gè)隔離的容器, 來(lái)安裝 TensorFlow. 這是可選的, 但是這樣做能使排查安裝問(wèn)題變得更容易.
首先, 安裝所有必備工具:
# 在 Linux 上:
$ sudo apt-get install python-pip python-dev python-virtualenv
# 在 Mac 上:
$ sudo easy_install pip # 如果還沒(méi)有安裝 pip
$ sudo pip install --upgrade virtualenv
接下來(lái), 建立一個(gè)全新的 virtualenv 環(huán)境. 為了將環(huán)境建在 ~/tensorflow
目錄下, 執(zhí)行:
$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow
然后, 激活 virtualenv:
$ source bin/activate # 如果使用 bash
$ source bin/activate.csh # 如果使用 csh
(tensorflow)$ # 終端提示符應(yīng)該發(fā)生變化
在 virtualenv 內(nèi), 安裝 TensorFlow:
(tensorflow)$ pip install --upgrade <$url_to_binary.whl>
接下來(lái), 使用類似命令運(yùn)行 TensorFlow 程序:
(tensorflow)$ cd tensorflow/models/image/mnist
(tensorflow)$ python convolutional.py
# 當(dāng)使用完 TensorFlow
(tensorflow)$ deactivate # 停用 virtualenv
$ # 你的命令提示符會(huì)恢復(fù)原樣
Anaconda 是一個(gè)集成許多第三方科學(xué)計(jì)算庫(kù)的 Python 科學(xué)計(jì)算環(huán)境,Anaconda 使用 conda 作為自己的包管理工具,同時(shí)具有自己的計(jì)算環(huán)境,類似 Virtualenv.
和 Virtualenv 一樣,不同 Python 工程需要的依賴包,conda 將他們存儲(chǔ)在不同的地方。 TensorFlow 上安裝的 Anaconda 不會(huì)對(duì)之前安裝的 Python 包進(jìn)行覆蓋.
安裝 Anaconda :
參考 Anaconda 的下載頁(yè)面的指導(dǎo)
建立一個(gè) conda 計(jì)算環(huán)境名字叫tensorflow:
# Python 2.7
$ conda create -n tensorflow python=2.7
# Python 3.4
$ conda create -n tensorflow python=3.4
激活tensorflow環(huán)境,然后使用其中的 pip 安裝 TensorFlow. 當(dāng)使用easy_install使用--ignore-installed標(biāo)記防止錯(cuò)誤的產(chǎn)生。
$ 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
對(duì)于 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 環(huán)境激活后,你可以測(cè)試
當(dāng)你不用 TensorFlow 的時(shí)候,關(guān)閉環(huán)境:
(tensorflow)$ source deactivate
$ # Your prompt should change back
再次使用的時(shí)候再激活 :-)
$ 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
如果你使用 pip 二進(jìn)制包安裝了開(kāi)啟 GPU 支持的 TensorFlow, 你必須確保 系統(tǒng)里安裝了正確的 CUDA sdk 和 CUDNN 版本. 請(qǐng)參間 CUDA 安裝教程
你還需要設(shè)置 LD_LIBRARY_PATH 和 CUDA_HOME 環(huán)境變量. 可以考慮將下面的命令
添加到 ~/.bash_profile 文件中, 這樣每次登陸后自動(dòng)生效. 注意, 下面的命令
假定 CUDA 安裝目錄為 /usr/local/cuda:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda
打開(kāi)一個(gè) 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
>>>
$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow
--recurse-submodules 參數(shù)是必須得, 用于獲取 TesorFlow 依賴的 protobuf 庫(kù).
首先依照 教程 安裝 Bazel 的依賴. 然后在 鏈接 中下載適合你的操作系統(tǒng)的最新穩(wěn)定版, 最后按照下面腳本執(zhí)行:
$ chmod +x PATH_TO_INSTALL.SH
$ ./PATH_TO_INSTALL.SH --user
注意把 PATH_TO_INSTALL.SH 替換為你下載的安裝包的文件路徑.
將執(zhí)行路徑 output/bazel 添加到 $PATH 環(huán)境變量中.
# 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
為了編譯并運(yùn)行能夠使用 GPU 的 TensorFlow, 需要先安裝 NVIDIA 提供的 Cuda Toolkit 7.0 和 CUDNN 6.5 V2.
TensorFlow 的 GPU 特性只支持 NVidia Compute Capability >= 3.5 的顯卡. 被支持的顯卡 包括但不限于:
將工具安裝到諸如 /usr/local/cuda 之類的路徑.
解壓并拷貝 CUDNN 文件到 Cuda Toolkit 7.0 安裝路徑下. 假設(shè) Cuda Toolkit 7.0 安裝
在 /usr/local/cuda, 執(zhí)行以下命令:
tar xvzf cudnn-6.5-linux-x64-v2.tgz
sudo cp cudnn-6.5-linux-x64-v2/cudnn.h /usr/local/cuda/include
sudo cp cudnn-6.5-linux-x64-v2/libcudnn* /usr/local/cuda/lib64
從源碼樹(shù)的根路徑執(zhí)行:
$ ./configure
Do you wish to bulid TensorFlow with GPU support? [y/n] y
GPU support will be enabled for TensorFlow
Please specify the location where CUDA 7.0 toolkit is installed. Refer to
README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda
Please specify the location where CUDNN 6.5 V2 library is installed. Refer to
README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda
Setting up Cuda include
Setting up Cuda lib64
Setting up Cuda bin
Setting up Cuda nvvm
Configuration finished
這些配置將建立到系統(tǒng) Cuda 庫(kù)的符號(hào)鏈接. 每當(dāng) Cuda 庫(kù)的路徑發(fā)生變更時(shí), 必須重新執(zhí)行上述 步驟, 否則無(wú)法調(diào)用 bazel 編譯命令.
從源碼樹(shù)的根路徑執(zhí)行:
$ bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
$ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu
# 大量的輸出信息. 這個(gè)例子用 GPU 迭代計(jì)算一個(gè) 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 支持需通過(guò)編譯選項(xiàng) "--config=cuda" 開(kāi)啟.
盡管可以在同一個(gè)源碼樹(shù)下編譯開(kāi)啟 Cuda 支持和禁用 Cuda 支持的版本, 我們還是推薦在 在切換這兩種不同的編譯配置時(shí), 使用 "bazel clean" 清理環(huán)境.
Mac 和 Linux 需要的軟件依賴完全一樣, 但是安裝過(guò)程區(qū)別很大. 以下鏈接用于幫助你 在 Mac OS X 上安裝這些依賴:
參見(jiàn)本網(wǎng)頁(yè)的 Mac OS X 安裝指南.
注意: 你需要安裝PCRE, 而不是 PCRE2.
參見(jiàn)安裝教程.
$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
# .whl 文件的實(shí)際名字與你所使用的平臺(tái)有關(guān)
$ pip install /tmp/tensorflow_pkg/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
從源代碼樹(shù)的根路徑執(zhí)行:
$ 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.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
Initialized!
Epoch 0.00
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%
Epoch 0.12
Minibatch loss: 3.285, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.0%
...
...
如果在嘗試運(yùn)行一個(gè) TensorFlow 程序時(shí)出現(xiàn)以下錯(cuò)誤:
ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory
請(qǐng)確認(rèn)你正確安裝了 GPU 支持, 參見(jiàn) 相關(guān)章節(jié).
如果出現(xiàn)錯(cuò)誤:
...
"__add__", "__radd__",
^
SyntaxError: invalid syntax
解決方案: 確認(rèn)正在使用的 Python 版本為 Python 2.7.
如果出現(xiàn)錯(cuò)誤:
import six.moves.copyreg as copyreg
ImportError: No module named copyreg
解決方案: TensorFlow 使用的 protobuf 依賴 six-1.10.0. 但是, Apple 的默認(rèn) python 環(huán)境
已經(jīng)安裝了 six-1.4.1, 該版本可能很難升級(jí). 這里提供幾種方法來(lái)解決該問(wèn)題:
升級(jí)全系統(tǒng)的 six:
sudo easy_install -U six
通過(guò) homebrew 安裝一個(gè)隔離的 python 副本:
brew install python
virtualenv 內(nèi)編譯或使用 TensorFlow.如果出現(xiàn)錯(cuò)誤:
>>> import tensorflow as tf
Traceback (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. 當(dāng)前 最好的解決方案是確保沒(méi)有安裝舊版本的 protobuf, 可以使用以下命令重新安裝 protobuf 來(lái)解決 沖突:
brew reinstall --devel protobuf
原文:Download and Setup 翻譯:@doc001 校對(duì):@yangtze