Tensorflow的Bazel交叉编译失败

时间:2018-08-29 21:59:27

标签: python tensorflow arm bazel zynq

我正在尝试构建张量流以在Zynq(特别是Z7020)上运行。我在板上运行了petalinux和python 3.4.9。当尝试按照以下说明构建tensorflow时:[https://www.tensorflow.org/install/install_raspbian#cross-compiling_from_sources] 请注意,petalinux和raspbian都是Debian衍生产品,Z7020具有与raspberry-pi 0和1系列板卡相同的CortexA9内核。

我正在尝试在Ubuntu 16.04主机上构建。我用来构建的命令是:

sudo CI_DOCKER_EXTRA_PARAMS="-e CI_BUILD_PYTHON=python3 -e CROSSTOOL_PYTHON_INCLUDE=/home/rklein/Python-3.4.9/Include" tensorflow/tools/ci_build/ci_build.sh PI-PYTHON3 tensorflow/tools/ci_build/pi/build_raspberry_pi.sh PI_ONE

淡褐色搅动约2小时,然后返回以下错误消息:

    /home/rklein/tensorflow/bazel-ci_build-cache/.cache/bazel/_bazel_root/eab0--lots of hex digits--85e8/external/arm_compiler/bin/arm-linux-gnueablhf-gcc --lots of options

    In file included from /usr/include/python2.7/Python.h:8:0, from ./tensorflow/python/lib/core/bfloat16.h:19, 
                     from tensorflow/python/lib/core/bfloat16.h:18:
                     from /usr/include/python2.7/pyconfig.h:13:54: 
    fatal error: arm-linux-gnueabihf/python2.7/pyconfig.h: No such file or directory
    #include <arm-linux-gnueabihf/python2.7/pyconfig.h>
                                                       ^
    compilation terminated.

需要哪些设置来告诉Bazel使用python3?请注意,主机上没有/usr/include/python2.7目录,因​​此我怀疑巴塞尔在幕后做了一些巫毒。命令

find ~ -name python2.7

显示为空。

我已经尝试了在Bazel上进行尽可能多的阅读,但是文档似乎很精简-任何好的参考文献都将不胜感激。

1 个答案:

答案 0 :(得分:0)

对于您的错误消息(或完全是Bazel),我无能为力。但是我在带有Petalinux内核和Ubuntu(arm64)根文件系统的Xilinx Zynq Ultrascale +上安装了TensorFlow。它不是完全相同的芯片(但是安装过程应该相似)。我不是自己构建TensorFlow,而是使用tensorflow-on-arm项目提供的软件包。也许我的经验对其他人使TensorFlow运行很有帮助:

  1. 您需要一个运行正常的操作系统(Xilinx具有相应的文档)。根据您的芯片,您需要一个32(armhf)或64位(arm64)rootfs。我使用了Ubuntu rootfs,因此可以使用apt-install。

  2. 您需要安装一些依赖项。我遵循了tensorflow-on-arm项目的指示。
    apt-get install openjdk-8-jdk automake autoconf curl zip unzip libtool swig libpng12-dev zlib1g-dev pkg-config git g++ wget xz-utils

  3. 您还需要Python(请确保安装Python v3.5-而不是Python v3.6等)。
    apt-get install python3-numpy python3-dev python3-pip python3-mock

  4. 我还需要安装两个未列出的软件包。
    apt-get install cython3 libhdf5-dev

  5. 安装一些pip3软件包(您可能希望将其安装在虚拟环境中并更新pip3)。
    pip3 install -U --user keras_applications==1.0.5 --no-deps
    pip3 install -U --user keras_preprocessing==1.0.3 --no-deps
    pip3 install -U --user numpy grpcio h5py

  6. 现在您应该下载TensorFlow pip软件包。不同的软件包在Releases下列出。我为Python v3.5和arm64 / aarch64选择了TensorFlow v.1.12。
    wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.12.0/tensorflow-1.12.0-cp35-none-linux_aarch64.whl

  7. 现在您可以使用pip3安装该软件包。
    pip3 install -U --user tensorflow-1.12.0*

我希望它对您有用!