PIP安裝方式
1.准備工作
CentOS版本要求
yum -y install git
yum -y install zlib*
yum -y install gcc*
python2.7
cuda
安裝 Cuda Toolkit 7.5 and cuDNN v4.
Download and install Cuda Toolkit
https://developer.nvidia.com/cuda-downloads
Install the toolkit into e.g. /usr/local/cuda
Download and install cuDNN
https://developer.nvidia.com/cudnn
解壓縮后 將文件輔助到 cuda的安裝目錄下對應的地址,默認cuda陌路下有include,lib兩個link ,輔助到link對應的目錄下
2.安裝pip
yum install python-pip python-dev
3.通過pip安裝帶有GPU支持的tensorflow
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
安裝完成后 默認路徑在
/usr/lib/python2.7/site-packages/tensorflow
補充:卸載tensorflow
sudo pip uninstall https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
4.運行測試
$ cd tensorflow/models/image/mnist
$ python convolutional.py
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Successfully 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%
5.問題解決
could not set cudnn filter descriptor: CUDNN_STATUS_BAD_PARAM
通過pip安裝 必須使用cudnn V4,只有通過源碼安裝才支持其他cudnn版本!
——————————————————————————————————————————————————————————
源碼安裝方式
1.下載tensorflow源碼
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
切換到當前release版本
查看版本
cd /data/tensorflow/ (tensorflow的源代碼目錄)
git tag
切換版本
git checkout v0.8.0rc0
2.安裝bazel
下載文件bazel-0.2.3-installer-linux-x86_64.sh文件
wget https://github.com/bazelbuild/bazel/releases/download/0.2.3/bazel-0.2.3-installer-linux-x86_64.sh
chmod +x bazel-0.2.3-installer-linux-x86_64.sh
./bazel-0.2.3-installer-linux-x86_64.sh --user
參考文檔:
http://bazel.io/docs/install.html
3.安裝依賴包
yum -y install epel-release(centos 7需要執行)
yum -y install numpy swig python-devel python-wheel python-pip
pip install --upgrade pip
4.配置安裝(確定已經安裝cuda,cudnn)
在源碼目錄運行
cd /data/tensorflow/ (tensorflow的源代碼目錄)
./configure
(全部采用默認配置,選擇y和回車,0.9按以下截圖操作)
5.安裝
創建pip包並安裝(若安裝分布式,操作完后加上分布式編譯那一步即可,當成兩個包來操作):
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
出現錯誤:cp: cannot stat ‘bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/tensorflow’: No such file or directory
直接打開文件 /home/data/tensorflow/tensorflow/tools/pip_package/build_pip_package.sh,修改路徑成(標紅為修改部分, 0.9不需要修改)
######################
cp -R \
bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/__main__/{tensorflow,external} \
${TMPDIR}
# protobuf pip package doesn't ship with header files. Copy the headers
# over so user defined ops can be compiled.
rsync --include "*/" --include "*.h" --exclude "*" --prune-empty-dirs -a \
bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/__main__/google \
${TMPDIR}
rsync -a \
bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/__main__/third_party/eigen3 \
${TMPDIR}/third_party
######################
6.執行成功上面命令安裝tensorflow命令如下
sudo pip install /tmp/tensorflow_pkg/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl
pip install /tmp/tensorflow_pkg/tensorflow-0.9.0-cp27-none-linux_x86_64.whl
7、運行測試(使用普通賬號也執行相同命令)
cd /usr/lib/python2.7/site-packages/tensorflow/models/image/mnist
python convolutional.py
8.編譯
tutorials_example_trainer包
bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu
運行無誤即可
9.查看tensorflow的安裝版本
pip list | grep ten’
已知問題(今天安裝未出現)
安裝時報錯
ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out.
增加--default-timeout=100
pip --default-timeout=100 install --upgrade …………
補充:
環境變量配置如下(僅作參考)
export JAVA_HOME=/opt/jdk1.8.0_91
export BAZEL_HOME=/usr/local/lib/bazel
PATH=$JAVA_HOME/bin:$BAZEL_HOME/bin:$PATH:$HOME/bin:
export PATH
修改/etc/hosts文件,將ip和主機名對應上