我正在尝试使用具有张量流服务的Resnet 101模型来服务更快的RCNN。
我知道我需要使用tf.saved_model.builder.SavedModelBuilder来导出模型定义以及变量,然后我需要像tensorflow_serving这样的脚本,如inception_client.py。
当我浏览示例和文档并进行实验时,我认为有人可能做了同样的事情。如果你做了同样的事情或知道如何完成它,那么请帮忙。提前谢谢。
答案 0 :(得分:0)
Tensorflow Object Detection API有自己的导出器脚本,比Tensorflow服务下的过时示例更复杂。
在构建Tensorflow服务时,请确保提取tensorflow / tensorflow(> r1.2)和tensorflow / models的最新主提交
为GPU构建Tensorflow服务
bazel build -c opt --config=cuda tensorflow_serving/...
如果您遇到有关crosstool和nccl的错误,请按照以下解决方案进行操作: https://github.com/tensorflow/serving/issues/186#issuecomment-251152755 https://github.com/tensorflow/serving/issues/327#issuecomment-305771708
<强>用法强>
python tf_models/object_detection/export_inference_graph.py \
--pipeline_config_path=/path/to/ssd_inception_v2.config \
--trained_checkpoint_prefix=/path/to/trained/checkpoint/model.ckpt \
--output_directory /path/to/output/1 \
--export_as_saved_model \
--input_type=image_tensor
请注意,在导出期间,所有变量都会转换为常量并烘焙到protobuf二进制文件中。如果在saved_model / variables目录下找不到任何文件,请不要惊慌失措
启动服务器,
bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server --port=9000 --model_name=inception_v2 --model_base_path=/path/to/output --enable_batching=true
至于客户端,Tensorflow服务下的示例效果很好