我在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.
答案 0 :(得分:0)
我曾经在nvidia Jetson TX1上使用makefile编译过tensorflow,我可以通过在示例的Makefile中添加一些行来编译并运行示例:
在第18行之后:
NSYNCLIBDIR:= $(TFMAKEFILE_DIR)/downloads/nsync/builds/default.linux.c++11 !!!将文件夹default.linux.c ++ 11更改为您的libnsync.a所在的位置!!! >
NSYNCLIBS:= $(NSYNCLIBDIR)/libnsync.a
第26行之后:
NSYNC:= $(TFMAKEFILE_DIR)/ downloads / nsync / public /
第36行之后:
-L $(NSYNCLIBDIR)\
第43行之后:
-I $(NSYNC)\
第51行之后:
-异步\
将第72行更改为:
$(EXECUTABLE_NAME):$(EXECUTABLE_OBJS)$(TFLIBS)$(NSYNCLIBS)
希望它能够适应这种变化,祝您好运:)