Я искал лучший способ сделать это, но не смог найти четкого ответа.
Мог ли кто-нибудь создать клиент, обслуживающий тензорный поток, с помощью cmake?
У меня возникают трудности с созданием файлов CPP из прототипа, поскольку они необходимы для службы прогнозирования. Эти прото-файлы также включают прото-файлы из tensorflow.
до сих пор я придумал это:
project(serving C CXX)
find_package(Protobuf REQUIRED)
file(GLOB_RECURSE proto_files RELATIVE ${serving_SOURCE_DIR}/tensorflow/
"${serving_SOURCE_DIR}/tensorflow/*.proto")
set(PROTOBUF_GENERATE_CPP_APPEND_PATH OFF)
include_directories(${PROTOBUF_INCLUDE_DIRS})
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${proto_files})
add_library(tf_protos ${PROTO_SRCS} ${PROTO_HDRS})
target_link_libraries(tf_protos PUBLIC ${PROTOBUF_LIBRARIES})
Cmake собирается успешно, но команда make выдает ошибку:
No rule to make target '../tensorflow/tools/proto_text/test.proto', needed by 'tensorflow/tools/proto_text/test.pb.cc'. Stop.
Чтобы решить проблему отсутствия .proto
включений, я использовал команду
set(PROTOBUF_GENERATE_CPP_APPEND_PATH OFF)
который был объяснен здесь: https://groups.google.com/forum/#!topic/protobuf/eow2fNDUHvc
Моя текущая структура папок
serving/
CmakeLists.txt
tensorflow/
tensorflow_serving/
apis/
Папка apis
содержит .proto
файлов, необходимых для реализации клиента, и они включают .proto
файлы из папки tensorflow
.
Это вообще правильный путь?
Любая помощь / совет будут очень благодарны.