如何从预训练的Tensorflow对象检测模型中提取倒数第​​二层特征向量

时间:2019-05-30 18:37:27

标签: python tensorflow computer-vision descriptor feature-engineering

我正在运行Tensorflow安装here

附带的教程

我想从倒数第二层提取特征向量(有时称为描述符)以进行进一步分析。

我已尝试遵循here给出的建议

但是,当我从以下代码中打印all_tensor_names时,我得到了6852张量名称的列表,但我不知道该选择哪个。

ops = tf.get_default_graph().get_operations()
all_tensor_names = {output.name for op in ops for output in op.outputs}
print(all_tensor_names)

我还发现了一个适用于预先训练的模型的示例faster_rcnn_inception_resnet_v2_atrous_oid_2018_01_28 here

但是再次,我不知道这是否是正确的张量,并且仅适用于该模型。这是一段代码摘录:

image_tensor = 
tf.get_default_graph().get_tensor_by_name('image_tensor:0')
feature_tensor = sess.graph.get_tensor_by_name('SecondStageFeatureExtractor/InceptionResnetV2/Conv2d_7b_1x1/Relu:0')
image = Image.open(f)
image = np.asarray(image)
image = np.expand_dims(image, 0)
feature_set = sess.run(feature_tensor, feed_dict={image_tensor: image})
feature_vector = list(np.squeeze(feature_set).flatten())

我想知道在feature_tensor = sess.graph.get_tensor_by_name行中为Tensorflow预训练的model zoo中的模型使用哪个张量名称

或至少有助于我现在正在使用的这两个入门: ssd_mobilenet_v1_coco_2017_11_17 fast_rcnn_inception_resnet_v2_atrous_oid_2018_01_28

一个好的答案将直接帮助我使用这两个模型,并通过一个清晰的示例说明如何为其他模型找到正确的张量名称。谢谢!

0 个答案:

没有答案