【TensorFlow】下載與安裝

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

Pip 安裝

Pip) 是一個 Python 的軟件包安裝與管理工具.

在安裝 TensorFlow 過程中要涉及安裝或升級的包詳見 列表

首先安裝 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
備註:如果之前安裝過 TensorFlow < 0.7.1 的版本,應該先使用 pip uninstall 卸載 TensorFlow 和 protobuf ,保證獲取的是一個最新 protobuf 依賴下的安裝包.

之後可以測試一下.

基於 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 所需的全部工具. 在該鏡像上, 可以直接使用源代碼進行實驗, 而不需要再安裝上述的任何依賴.
基於 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

$ # 你的命令提示符會恢復原樣
基於 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 環境變量. 可以考慮將下面的命令 添加到 ~/.bash_profile 文件中, 這樣每次登陸後自動生效. 注意, 下面的命令 假定 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.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
配置 TensorFlow 的 Cuda 選項
從源碼樹的根路徑執行:

$ ./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
這些配置將建立到系統 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.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%

常見問題

GPU 相關問題
如果在嘗試運行一個 TensorFlow 程序時出現以下錯誤:

ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory
請確認你正確安裝了 GPU 支持, 參見 相關章節.

在 Linux 上
如果出現錯誤:


add”, “radd”,
^
SyntaxError: invalid syntax
解決方案: 確認正在使用的 Python 版本爲 Python 2.7.

在 Mac OS X 上
如果出現錯誤:

import six.moves.copyreg as copyreg

ImportError: 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
在virtualenv 內編譯或使用 TensorFlow.

如果出現錯誤:

>>> 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. 當前 最好的解決方案是確保沒有安裝舊版本的 protobuf, 可以使用以下命令重新安裝 protobuf 來解決 衝突:
brew reinstall --devel protobuf
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章