TensorFlow 1.15.5源码编译安装的主要步骤包括安装编译依赖、获取源码、配置相关选项、编译、安装构建好的pip软件包。
- 使用PuTTY工具,以root用户登录服务器。
- 进入TensorTlow源码编译规划路径。
- 安装编译依赖。
| pip3 install wheel
pip3 install Cython==0.29.14
pip3 install numpy==1.18.5 --no-build-isolation
pip3 install h5py==2.8.0
pip3 install protobuf==3.19.0
pip3 install keras_preprocessing==1.1.2
|
- 配置git代理。
| git config --global http.sslVerify false
git config --global https.sslverify false
git config --global http.proxy "http://用户名:密码@代理IP:代理端口"
|
- 若之前加载过环境变量配置,则可跳过该步骤。根据实际安装路径设置bazel和python环境变量。例如:
| export PATH=/path/to/bazel/bazel-0.26.1/output:$PATH
export PATH=/usr/local/python3.7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
|
- 获取TensorFlow 1.15.5源码。
| wget https://github.com/tensorflow/tensorflow/archive/refs/tags/v1.15.5.zip --no-check-certificate
|
- 解压TensorFlow源码包并进入解压目录。
| unzip v1.15.5.zip
cd tensorflow-1.15.5
|
- 执行configure,设置配置选项。
configure配置过程步骤如下:
- 确认可执行程序python的位置。
| Please specify the location of python. [Default is /usr/bin/python]:
|
如果python3路径和上述默认相同,直接按“Enter”确认;否则,请输入正确的python3路径。
- 确认Python lib库的位置。
| Found possible Python library paths:
/usr/local/python3.7.5/lib/python3.7/site-packages
Please input the desired Python library path to use. Default is [/usr/local/python3.7.5/lib/python3.7/site-packages]
|
如果python3路径和上述默认相同,直接按“Enter”确认;否则,请输入正确的Python lib库路径。
- 确认是否配置XLA JIT特性,本文选择“n”。
| Do you wish to build TensorFlow with XLA JIT support? [Y/n]:n
|
- 确认是否配置OpenCL SYCL特性,本文选择“N”。
| Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: N
|
- 确认是否配置ROCm特性,本文选择“N”。
| Do you wish to build TensorFlow with ROCm support? [y/N]: N
|
- 确认是否配置CUDA特性,本文选择“N”。
| Do you wish to build TensorFlow with CUDA support? [y/N]: N
|
- 确认是否配置clang,本文选择“N”。
| Do you wish to download a fresh release of clang? (Experimental) [y/N]: N
|
- 确认是否配置MPI,本文选择“N”。
| Do you wish to build TensorFlow with MPI support? [y/N]: N
|
- 配置编译选项,本文按默认设置,直接按“Enter”确认。
| Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:
|
- 在构建Android应用程序时,确认是否设置工作空间,本文选择“N”。
| "Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: N
|
- 编译TensorFlow。
| bazel build --config=v1 --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package
|
- 从源代码构建TensorFlow会消耗大量内存资源,如果您的系统受内存限制,编译命令追加--local_ram_resources={内存大小} ,例如:--local_ram_resources=2048表示将内存开销限制为2048MB。
- 编译过程中可能会提示依赖组件grpc编译失败的问题,提示关键信息为“external/grpc/src/core/lib/gpr/log_linux.cc:43:13: error: ambiguating new declaration of 'long int gettid()'”,解决办法请参见编译TensorFlow 1.15.5时依赖组件grpc编译失败的解决办法。
- 构建pip软件包。
| ./bazel-bin/tensorflow/tools/pip_package/build_pip_package ./output
|
在“output”目录会生成“tensorflow-1.15.5-cp37-cp37m-linux_aarch64.whl”软件包。
- 安装TensorFlow pip软件包。
| cd output
pip3 install tensorflow-1.15.5-cp37-cp37m-linux_aarch64.whl
|