源码编译安装

TensorFlow 1.15.5源码编译安装的主要步骤包括安装编译依赖、获取源码、配置相关选项、编译、安装构建好的pip软件包。

  1. 使用PuTTY工具,以root用户登录服务器。
  2. 进入TensorTlow源码编译规划路径。

    1
    cd /path/to/tensorflow
    

  3. 安装编译依赖。

    1
    2
    3
    4
    5
    6
    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
    

  4. 配置git代理。

    1
    2
    3
    git config --global http.sslVerify false
    git config --global https.sslverify false
    git config --global http.proxy "http://用户名:密码@代理IP:代理端口"
    

  5. 若之前加载过环境变量配置,则可跳过该步骤。根据实际安装路径设置bazel和python环境变量。例如:

    1
    2
    3
    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
    

  6. 获取TensorFlow 1.15.5源码。

    1
    wget https://github.com/tensorflow/tensorflow/archive/refs/tags/v1.15.5.zip --no-check-certificate
    

  7. 解压TensorFlow源码包并进入解压目录。

    1
    2
    unzip v1.15.5.zip
    cd tensorflow-1.15.5
    

  8. 执行configure,设置配置选项。

    1
    ./configure
    

    configure配置过程步骤如下:

    1. 确认可执行程序python的位置。
      1
      Please specify the location of python. [Default is /usr/bin/python]:
      

      如果python3路径和上述默认相同,直接按“Enter”确认;否则,请输入正确的python3路径。

    2. 确认Python lib库的位置。
      1
      2
      3
      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库路径。

    3. 确认是否配置XLA JIT特性,本文选择“n”。
      1
      Do you wish to build TensorFlow with XLA JIT support? [Y/n]:n
      
    4. 确认是否配置OpenCL SYCL特性,本文选择“N”。
      1
      Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: N
      
    5. 确认是否配置ROCm特性,本文选择“N”。
      1
      Do you wish to build TensorFlow with ROCm support? [y/N]: N
      
    6. 确认是否配置CUDA特性,本文选择“N”。
      1
      Do you wish to build TensorFlow with CUDA support? [y/N]: N
      
    7. 确认是否配置clang,本文选择“N”。
      1
      Do you wish to download a fresh release of clang? (Experimental) [y/N]: N
      
    8. 确认是否配置MPI,本文选择“N”。
      1
      Do you wish to build TensorFlow with MPI support? [y/N]: N
      
    9. 配置编译选项,本文按默认设置,直接按“Enter”确认。
      1
      Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:
      
    10. 在构建Android应用程序时,确认是否设置工作空间,本文选择“N”。
      1
      "Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: N
      

  9. 编译TensorFlow。

    1
    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。

  10. 构建pip软件包。

    1
    ./bazel-bin/tensorflow/tools/pip_package/build_pip_package  ./output
    

    在“output”目录会生成“tensorflow-1.15.5-cp37-cp37m-linux_aarch64.whl”软件包。

  11. 安装TensorFlow pip软件包。

    1
    2
    cd output 
    pip3 install tensorflow-1.15.5-cp37-cp37m-linux_aarch64.whl