- 安装依赖
yum -y install automake libtool libsysfs libxslt-devel libffi libffi-devel python-devel gcc openssl openssl-devel sqlite-devel
pip install six numpy wheel coverage mock
- 安装CMake
从https://cmake.org/download/选择最新的版本
wget https://github.com/Kitware/CMake/releases/download/v3.14.0-rc4/cmake-3.14.0-rc4-Linux-x86_64.tar.gz
tar -xvf cmake-3.14.0-rc4-Linux-x86_64.tar.gz
mv cmake-3.14.0-rc4-Linux-x86_64 /usr/local/share/cmake
ln -s /usr/local/share/cmake/bin/ccmake /usr/bin/ccmake
ln -s /usr/local/share/cmake/bin/cmake /usr/bin/cmake
ln -s /usr/local/share/cmake/bin/ctest /usr/bin/ctest
- 安装java
yum -y install java-1.8.0-openjdk*
- 安装Bazel
从https://github.com/bazelbuild/bazel/releases选择合适的版本,具体版本对应关系在https://tensorflow.google.cn/install/source,tensorflow r1.12对应的应是bazel 0.15.0
wget https://github.com/bazelbuild/bazel/releases/download/0.15.0/bazel-0.15.0-installer-linux-x86_64.sh
sh bazel-0.15.0-installer-linux-x86_64.sh --prefix=/usr/local/share/bazel
ln -s /usr/local/share/bazel/bin/bazel /usr/bin/bazel
- 下载TensorFlow
git clone https://github.com/tensorflow/tensorflow
或者
git clone https://jhc888007%40163.com:[password]@github.com/tensorflow/tensorflow
cd tensorflow
git checkout r1.12
./configure
接下来有一系列设置(这步好像不是必须的?),不懂的可以用默认值
- 编译C库
cd tensorflow
bazel build :libtensorflow.so
在../bazel-bin/tensorflow/生成libtensorflow.so和libtensorflow_framework.so
- 编译C++库
cd tensorflow
bazel build :libtensorflow_cc.so
在../bazel-bin/tensorflow/生成libtensorflow_cc.so和libtensorflow_framework.so
- 安装依赖
cd contrib/makefile
./build_all_linux.sh
- 安装Eigen
cd downloads/eigen
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/share/eigen ..
make install
cd /usr/local/include
ln -s ../share/eigen/include/eigen3/Eigen
ln -s ../share/eigen/include/eigen3/unsupported
- 安装Protobuf(实践证明对于1.12版本不兼容,行不通)
cd downloads/protobuf
./autogen.sh
./configure --prefix=/usr/local/share/protobuf
make && make install
如果不成功则make clean,再重新make
vim /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/share/protobuf/lib export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/share/protobuf/lib export PATH=$PATH:/usr/local/share/protobuf/bin
export PKG_CONFIG_PATH=/usr/local/share/protobuf/lib/pkgconfig/
- 安装Protobuf(手动)
在https://github.com/protocolbuffers/protobuf/releases找到合适版本
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.0/protobuf-all-3.6.0.tar.gz
tar -xvf protobuf-all-3.6.0.tar.gz
cd protobuf-3.6.0/
./configure --prefix=/usr/local/share/protobuf
make && make check && make install
vim /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/share/protobuf/lib export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/share/protobuf/lib export PATH=$PATH:/usr/local/share/protobuf/bin
export PKG_CONFIG_PATH=/usr/local/share/protobuf/lib/pkgconfig/
- 如果已经有相同系统环境编译好的tensorflow包,则只需要安装依赖环境,然后将已安装的Eigen拷贝到新机器对应位置,然后将编译好的tensorflow包拷贝到python安装目录lib目录下
Centos 编译TensorFlow C/C++库 libtensorflow.so libtensorflow_framework.so
Centos C/C++库 libtensorflow.so libtensorflow_framework.so 测试
参考文献:
https://www.cnblogs.com/hrlnw/p/7007648.html
https://www.jianshu.com/p/d46596558640
https://blog.csdn.net/qq_37674858/article/details/81095101
http://www.cnblogs.com/zjutzz/p/10182099.html
https://blog.csdn.net/u010700335/article/details/69422282/
https://www.cnblogs.com/hrlnw/p/7383951.html
https://blog.csdn.net/qq_29936933/article/details/82107861
https://blog.csdn.net/laowulong350/article/details/79001511
https://tensorflow.google.cn/install/source_windows