如何推导预训练模型的output_node_names?

时间:2018-09-13 20:29:49

标签: tensorflow tensorflowjs-converter

我正在尝试使用Tensorflow.js为我们转换一个预训练模型:

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md

我选择了mask_rcnn_inception_v2_coco

tensorflowjs_converter需要特定的output_node_names。网络上的各种资源都指向summarize_graph之类的工具,以帮助检查潜在的输出节点名称。

不幸的是,我正在Google Colab上运行此程序,并且(据我所知)我无法安装bazel,我需要从源代码构建summarize_graph到我,它需要识别哪个{{ 1}}传递给转换器。

我在这里错过了什么吗?从现有的预训练模型到Tensorflow.js(用于在浏览器上进行推断)是否有更直接的方法?

2 个答案:

答案 0 :(得分:0)

对于mask_rcnn_inception_v2_coco_2018_01_28的结果 bazel-bin/tensorflow/tools/graph_transforms/summarize_graph --in_graph=frozen_inference_graph.pb

Found 1 possible inputs: (name=image_tensor, type=uint8(4), shape=[?,?,?,3])
No variables spotted.
Found 5 possible outputs: (name=detection_boxes, op=Identity) (name=detection_scores, op=Identity) (name=detection_classes, op=Identity) (name=num_detections, op=Identity) (name=detection_masks, op=Identity) 

答案 1 :(得分:0)

这篇文章对我有帮助: https://developer.arm.com/technologies/machine-learning-on-arm/developer-material/how-to-guides/optimizing-neural-networks-for-mobile-and-embedded-devices-with-tensorflow/determine-the-names-of-input-and-output-nodes

启动并运行tensorboard(可以在Windows或其他任何方式下完成,这是Ubuntu安装)

pip install tensorboard

>

tensorboard --logdir=/tmp/tensorboard

>

python tensorflow/python/tools/import_pb_to_tensorboard.py --model_dir resnetv1_50.pb --log_dir /tmp/tensorboard

(如果您没有import_pb_to_tensorboard.py,则可以下载文件https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/import_pb_to_tensorboard.py并指向保存的目录)

您可以使用以上命令将模型导入所服务的张量板。在tensorboard中,您可以单击进入模型并查看最终输出是什么。我的被​​称为“ import / final_result”

enter image description here