使用张量流的图像特征向量

时间:2018-04-14 17:32:19

标签: tensorflow feature-extraction

我正在尝试提取图像的特征向量。我偶然发现了这个链接,它似乎完全符合我的需要。

链接:https://www.tensorflow.org/hub/modules/google/imagenet/resnet_v1_101/feature_vector/1

def get_2k_descriptor(self, im):

    image = tf.image.convert_image_dtype(im, tf.float32)

    module = hub.Module("https://tfhub.dev/google/imagenet/resnet_v2_101/feature_vector/1")
    height, width = hub.get_expected_image_size(module)
    resized_image = tf.image.resize_images(image, [224, 224])
    reshaped_image = tf.reshape(resized_image, [1, 224, 224, 3])
    feature = module(reshaped_image) 
    print(feature)

我按照他们的指示操作并使用上述方法。但是,运行此代码可以得到如下输出:

Tensor("module_apply_default/hub_output/feature_vector/SpatialSqueeze:0", shape=(1, 2048), dtype=float32)

我知道要实际评估价值,我们需要一个会话。我一直在研究这个问题,但是还没有弄清楚实际计算特征变量值需要做哪些改变。

任何人都可以就此问题向我提出建议吗?

1 个答案:

答案 0 :(得分:0)

print(feature)不输出张量的实际值。要生成图像的特征向量,您需要运行:

session.run(feature, feed_dict={image_placeholder: testimage})

运行此命令后,可以获得测试图像的特征图