如何使用具有张量流服务的Resnet 101模型提供更快的RCNN

时间:2017-07-21 04:47:56

标签: object-detection tensorflow-serving

我正在尝试使用具有张量流服务的Resnet 101模型来服务更快的RCNN。

我知道我需要使用tf.saved_model.builder.SavedModelBuilder来导出模型定义以及变量,然后我需要像tensorflow_serving这样的脚本,如inception_client.py。

当我浏览示例和文档并进行实验时,我认为有人可能做了同样的事情。如果你做了同样的事情或知道如何完成它,那么请帮忙。提前谢谢。

1 个答案:

答案 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服务下的示例效果很好