我知道如何从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中有可能吗?关于这方面的文档尚不清楚。

附注:我可以轻松地通过定义自己的图层来做到这一点,但尝试查看我是否可以使用Tf-Hub API。

最佳答案

现有的https://tfhub.dev/google/imagenet/ ...模块不支持此功能。

一般而言,hub.Module格式允许多个签名(即输入/输出张量的组合;如tf.Session.run()中那样考虑提要和获取)。因此,如果有他们想要支持的通用使用模式,则模块发布者可以安排这些。

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

关于tensorflow - 自定义Tensorflow Hub模块的输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56216553/

10-12 18:23