これを行う最善の方法を探しましたが、明確な答えが見つかりませんでした。cmakeを使ってテンソルフローを提供するクライアントを構築する
cmakeを使用してテンソルフローを提供するクライアントを誰でも作成できましたか?
protoからCPPファイルを生成するのが難しいのは、予測サービスに必要なためです。これらのプロトファイルにはテンソルフローのプロトファイルも含まれています。
これまでのところ、私はこれが出ている:
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
ファイルが含まれていると、彼らは、フォルダtensorflow
から.proto
ファイルが含まれています。
これは正しい方法ですか?
ご迷惑をおかけして申し訳ございません。
私はあきらめました。私が見つけたのは、CMakeコマンド(GENERATE_CPP)はそのビルドツリーに.pbファイルしか生成しないということです。 私がしたのは、必要なprotoファイルをすべて別のフォルダにコピーし(ディレクトリ構造を維持して)、protocシェルコマンドを呼び出すことによって.pbファイルを明示的に生成することでした。そしてcmakeと一緒に別のprrotobufライブラリを構築しました。 – Maja
私は[this](https://github.com/philosophus/tf-serving-demo)を参考にしました。 Florian Dahmsによる[ここ](http://fdahms.com/2017/03/05/tensorflow-serving-jvm-client/)の詳細な説明 – Maja