tensorflow学习(九)1.0正式版安装配置

近期tensorflow发布了正式版,我们也赶快更新起来。

安装环境

操作系统centOS 7.0, k80四卡。注意tensorflow1.0.0只支持CUDA8,所以需要将CUDA升级到8.0,cudnn升级到v5.1

安装OpenCV

注意之前选择的OpenCV2.4.11版本对CUDA8.0是不兼容的,要升级到OpenCV2.4.13

cd ~/opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
make -j8
sudo make install

因为OpenCV在cmake的时候找不到anaconda的python路径,所以需要手动将cv2.so和cv.py复制到anaconda对应的lib下。注意安装完之后再编译与OpenCV相关程序会出现报错cannot find -lopencv_dep_cudart。解决办法是要控制CMake的一个开关,在cmake的时候注意

cmake -D CUDA_USE_STATIC_CUDA_RUNTIME=OFF ..

或者在CMakeLists.txt中在find_package(OpenCV REQUIRED)前添加

set(CUDA_USE_STATIC_CUDA_RUNTIME OFF)

但这样还是需要更改每个工程的配置,还是有些麻烦,我采用了大杀器,更改了cmake安装包里的默认配置。使用的是cmake3.7.0这个安装包。

vim ./Modules/FindCUDA.cmake
# line 793, ON --> OFF
option(CUDA_USE_STATIC_CUDA_RUNTIME "Use the static version of the CUDA runtime library if available" OFF)

注意官网日志说明OpenCV3.2版本支持CUDA8,如果硬着头皮上OpenCV3.2,安装也没啥多说的。注意k80的GPU是kepler架构,如果是pascal架构的也要相应选择。在安装的时候还会遇到Downloading ippicv_linux_20151201.tgz...的问题,要确保服务器能访问raw.githubusercontent.com。还有一个bug是mkl也要更新到1.13新版本,不然会报错缺少mkl_version.h文件。

安装tensorflow

新版本tensorflow安装已经非常简单了,只需要直接pip安装即可。相应的依赖包都会自动更新到匹配版本,非常方便

pip install tensorflow-gpu    # gpu version
pip install tensorflow    # cpu version

tips

安装好之后可能会遇到can’t find libmkl_avx.so的问题,应该是anaconda和tensorflow的安装顺序导致的,可以通过下面的办法暂时解决

export LD_PRELOAD=libmkl_rt.so

安装bazel

安装jdk8

bazel需要java8的支持,由于系统本身有一套jdk7的环境,我这套jdk8的环境只想对我生效,配置如下:

download jdk-8u131-linux-x64.tar.gz
tar xzvf jdk-8u131-linux-x64.tar.gz
vim ~/.bashrc
    export JAVA_HOME=$HOME/software_bak/jdk1.8.0_131
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source ~/.bashrc
java -version

安装bazel

wget https://github.com/bazelbuild/bazel/releases/download/0.5.1/bazel-0.5.1-installer-linux-x86_64.sh
chmod +x bazel-0.5.1-installer-linux-x86_64.sh
./bazel-0.5.1-installer-linux-x86_64.sh --user
vim ~/.bashrc
    export PATH=$PATH:$HOME/bin
source ~/.bashrc
bazel version

源码安装tensorflow

git    clone --recurse-submodules https://github.com/tensorflow/tensorflow
cd tensorflow
./configure // 大部分都使用默认选项,注意GPU选项要打开
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
pip install /tmp/tensorflow_pkg/tensorflow-0.10.0-py2-none-any.whl