https://www.tensorflow.org/install/source?hl=zh_cn
本人编译的是tensorflowr1.13版本,据我所知,tensorflow每一个版本对构建工具都有所要求,需得与对应版本进行匹配。1.13版本所需要的工具版本为:
gcc5.3.0、python3.5及以上、cuda10.0、bazel0.21.0
最后就是,不管是编译哪个版本,都要有充分的信心,编译的过程中遇到一些奇奇怪怪的错误、在所难免。
1.1、安装python3
参考文档:https://blog.csdn.net/lovefengruoqing/article/details/79284573
1.2、python3-dev、python3-pip
sudo apt install python3-dev python3-pip
1.3、安装gcc5.3.0
1.3.1、 sudo yum install libmpc-devel mpfr-devel gmp-devel
1.3.2、curl ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2 -O
1.3.3、tar xvfj gcc-5.3.0.tar.bz2
1.3.4、cd gcc-5.3.0
./configure --prefix=/usr/local/gcc-5.3.0 --enable-languages=c,c++ --disable-multilib
make -j 16 //j选项数字表示,你的cpu核数x2,目的是提高编译速度
make install
1.3.5、export LD_LIBRARY_PATH=/usr/local/gcc-5.3.0/lib64:/usr/local/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/gcc-5.3.0/bin:/usr/local/bin:$PATH
1.4、pip 软件包依赖项
pip install -U --user pip six numpy wheel setuptools mock future>=0.17.1
pip install -U --user keras_applications==1.0.6 --no-deps
pip install -U --user keras_preprocessing==1.0.5 --no-deps
1.5、安装bazel(0.21.0)
sudo yum remove bazel ---卸载原先的bazel版本
# 从 https://github.com/bazelbuild/bazel/releases 下载对应release安装
wget https://github.com/bazelbuild/bazel/releases/download/0.21.0/bazel-0.21.0-installer-linux-x86_64.sh
chmod +x bazel-0.21.0-installer-linux-x86_64.sh
./bazel-0.21.0-installer-linux-x86_64.sh --user
注:--user
参数安装Bazel在系统的 $HOME/bin
目录并设置 .bazelrc
路径到 $HOME/.bazelrc
,
所以需要在 ~/.bashrc
中添 加 export PATH="$PATH:$HOME/bin"
1.6、
CUDA10.0安装
可以去到官网里下载安装,这里因为运维事先已经安装好了。
nvidia-smi命令可以查看gpu使用情况
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git branch -a 查看远程分支
git checkout r1.13 切换到指定分支
2.1 配置编译环境
执行命令: ./configure
bazel build --config=opt --cxxopt=-fabi-version=6 --incompatible_package_name_is_a_function=false --config=cuda --verbose_failures //tensorflow/tools/pip_package:build_pip_package
bazel build --config=opt --cxxopt=-fabi-version=6 --incompatible_package_name_is_a_function=false --config=cuda --verbose_failures //tensorflow:libtensorflow_cc.so
mkdir /usr/local/include/tf
cp -r bazel-genfiles/ /usr/local/include/tf/
cp -r tensorflow /usr/local/include/tf/
cp -r third_party /usr/local/include/tf/
cp -r bazel-bin/tensorflow/libtensorflow_cc.so /usr/local/lib/