我正在尝试提取图像的特征向量。我偶然发现了这个链接,它似乎完全符合我的需要。
链接: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)
我知道要实际评估价值,我们需要一个会话。我一直在研究这个问题,但是还没有弄清楚实际计算特征变量值需要做哪些改变。
任何人都可以就此问题向我提出建议吗?
答案 0 :(得分:0)
print(feature)
不输出张量的实际值。要生成图像的特征向量,您需要运行:
session.run(feature, feed_dict={image_placeholder: testimage})
运行此命令后,可以获得测试图像的特征图