tensorflow 安装

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

安装bazel命令

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和主机名对应上

原文地址:https://www.cnblogs.com/xuchenCN/p/5888648.html