不能MAKE tensorflow Raspberry pi的例子

时间:2018-01-04 19:45:10

标签: tensorflow makefile raspberry-pi

我在Raspberry Pi 3上安装了tensorflow,运行Jessie并通过两种方式实现了这一点,通过Python 2.7的.whl文件/ pip安装。:

https://github.com/samjabrahams/tensorflow-on-raspberry-pi

以及完整的编译:

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/makefile

两个安装(我在不同的操作系统映像上完成它们)成功并且没有错误地完成。

接下来,我想从tensorflow的git存储库中编译官方的Raspberry Pi示例:

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/pi_examples

然而,没有一个例子可以编译(无论是相机示例还是图像识别),两者都给出了同样的错误,谷歌没有告诉我任何事情:

make -f tensorflow/contrib/pi_examples/camera/Makefile gcc --std=c++11
-O0 -I/usr/local/include -I. -I/home/pi/tensorflow/tensorflow/contrib/pi_examples/camera/../../makefile/downloads
-I/home/pi/tensorflow/tensorflow/contrib/pi_examples/camera/../../makefile/downloads/eigen/
-I/home/pi/tensorflow/tensorflow/contrib/pi_examples/camera/../../makefile/gen/proto/
-I/home/pi/tensorflow/tensorflow/contrib/pi_examples/camera/../../makefile/gen/proto_text/
-c tensorflow/contrib/pi_examples/camera/camera.cc -o /home/pi/tensorflow/tensorflow/contrib/pi_examples/camera/gen/obj/tensorflow/contrib/pi_examples/camera/camera.o
In file included from ./tensorflow/core/platform/mutex.h:31:0,
                 from ./tensorflow/core/framework/variant.h:31,
                 from ./tensorflow/core/framework/allocator.h:26,
                 from ./tensorflow/core/framework/tensor.h:20,
                 from tensorflow/contrib/pi_examples/camera/camera.cc:33:
./tensorflow/core/platform/default/mutex.h:25:22: fatal error:
nsync_cv.h: No such file or directory  #include "nsync_cv.h"
                      ^ compilation terminated. tensorflow/contrib/pi_examples/camera/Makefile:80: recipe for target
'/home/pi/tensorflow/tensorflow/contrib/pi_examples/camera/gen/obj/tensorflow/contrib/pi_examples/camera/camera.o'
failed make: ***
[/home/pi/tensorflow/tensorflow/contrib/pi_examples/camera/gen/obj/tensorflow/contrib/pi_examples/camera/camera.o]
Error 1

以及:

make -f tensorflow/contrib/pi_examples/label_image/Makefile gcc
--std=c++11 -O0 -I/usr/local/include -I. -I/home/pi/tensorflow/tensorflow/contrib/pi_examples/label_image/../../makefile/downloads
-I/home/pi/tensorflow/tensorflow/contrib/pi_examples/label_image/../../makefile/downloads/eigen/
-I/home/pi/tensorflow/tensorflow/contrib/pi_examples/label_image/../../makefile/gen/proto/
-I/home/pi/tensorflow/tensorflow/contrib/pi_examples/label_image/../../makefile/gen/proto_text/
-c tensorflow/contrib/pi_examples/label_image/label_image.cc -o /home/pi/tensorflow/tensorflow/contrib/pi_examples/label_image/gen/obj/tensorflow/contrib/pi_examples/label_image/label_image.o
In file included from ./tensorflow/core/platform/mutex.h:31:0,
                 from ./tensorflow/core/framework/variant.h:31,
                 from ./tensorflow/core/framework/allocator.h:26,
                 from ./tensorflow/core/framework/tensor.h:20,
                 from tensorflow/contrib/pi_examples/label_image/label_image.cc:33:
./tensorflow/core/platform/default/mutex.h:25:22: fatal error:
nsync_cv.h: No such file or directory  #include "nsync_cv.h"
                      ^ compilation terminated. tensorflow/contrib/pi_examples/label_image/Makefile:79: recipe for
target
'/home/pi/tensorflow/tensorflow/contrib/pi_examples/label_image/gen/obj/tensorflow/contrib/pi_examples/label_image/label_image.o'
failed make: ***
[/home/pi/tensorflow/tensorflow/contrib/pi_examples/label_image/gen/obj/tensorflow/contrib/pi_examples/label_image/label_image.o]
Error 1

如何找到/添加/编译“nsync_cv.h”? 顺便说一句:

export HOST_NSYNC_LIB=`tensorflow/contrib/makefile/compile_nsync.sh`

给了我:

g++ -M -std=c++11 -DNSYNC_USE_CPP11_TIMEPOINT -DNSYNC_ATOMIC_CPP11
-I../../platform/c++11 -I../../platform/gcc -I../../platform/posix -pthread -I../../public -I../../internal ../../internal/*.c ../../testing/*.c ../../platform/c++11/src/nsync_semaphore_mutex.cc
../../platform/c++11/src/per_thread_waiter.cc
../../platform/c++11/src/yield.cc
../../platform/c++11/src/time_rep_timespec.cc
../../platform/c++11/src/nsync_panic.cc \
          ../../platform/c++11/src/start_thread.cc > dependfile make: 'nsync.a' is up to date.

1 个答案:

答案 0 :(得分:0)

我曾经在nvidia Jetson TX1上使用makefile编译过tensorflow,我可以通过在示例的Makefile中添加一些行来编译并运行示例:

  1. 在第18行之后:

    NSYNCLIBDIR:= $(TFMAKEFILE_DIR)/downloads/nsync/builds/default.linux.c++11 !!!将文件夹default.linux.c ++ 11更改为您的libnsync.a所在的位置!!!

    NSYNCLIBS:= $(NSYNCLIBDIR)/libnsync.a

  2. 第26行之后:

    NSYNC:= $(TFMAKEFILE_DIR)/ downloads / nsync / public /

  3. 第36行之后:

    -L $(NSYNCLIBDIR)\

  4. 第43行之后:

    -I $(NSYNC)\

  5. 第51行之后:

    -异步\

  6. 将第72行更改为:

    $(EXECUTABLE_NAME):$(EXECUTABLE_OBJS)$(TFLIBS)$(NSYNCLIBS)

希望它能够适应这种变化,祝您好运:)