簡體   English   中英

Tensorflow的Bazel交叉編譯失敗

[英]Bazel cross compile of tensorflow for ARM fails

我正在嘗試構建tensorflow以在Zynq(特別是Z7020)上運行。 我在板上運行了petalinux和python 3.4.9。 當試圖建立以下這個網址的指示tensorflow:[ https://www.tensorflow.org/install/install_raspbian#cross-compiling_from_sources]請注意這兩個的PetaLinux和raspbian都是Debian衍生系統和Z7020具有相同的CortexA9核心的樹莓派0和1系列主板。

我正在嘗試在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

Bazel攪動約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上進行盡可能多的閱讀,但是文檔似乎很精簡-任何出色的參考文獻都將不勝感激。

對於您的錯誤消息(或完全是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軟件包。 發行版下列出了不同的軟件包。 我為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*

希望它對您有用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM