0

我知道如何从Tensorflow Hub加载预训练的图像模型。像这样:

#load model
image_module = hub.Module('https://tfhub.dev/google/imagenet/mobilenet_v2_035_128/feature_vector/2')

#get predictions
features = image_module(batch_images)

我也知道如何自定义这个模型的输出(微调新数据集)。现有的Modules期望输入batch_images是一个 RGB 图像张量。

我的问题:我想使用张量(尺寸为 20x20x128,来自不同模型)作为 Hub 模型的输入,而不是输入特定尺寸的 RGB 图像。这意味着我需要绕过 tf-hub 模型定义的初始层(我不需要它们)。这在 tf-hub 模块 api 中可行吗?文档在这方面尚不清楚。

ps:我可以很容易地定义我自己的层,但尝试看看我是否可以使用 Tf-Hub API。

4

1 回答 1

1

现有的https://tfhub.dev/google/imagenet/ ... 模块不支持这一点。

一般来说,hub.Module 格式允许多个签名(即输入/输出张量的组合;认为 feed 和 fetches 就像在 tf.Session.run() 中一样)。因此,如果有他们想要支持的常见使用模式,模块发布者可以安排。

但对于这种复杂程度的自由形式实验,您最好直接使用和调整定义模型的代码,例如 TF Slim(用于 TF1.x)或 Keras Applications(也用于 TF2)。两者都提供 Imagenet 预训练的检查点,用于下载和恢复。

于 2019-05-24T09:09:49.373 回答