自定义 Tensorflow Hub 模块的输入

Customize Input to Tensorflow Hub module

我知道如何从 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 图像张量。

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

p.s.: 我可以很容易地做到这一点,定义我自己的图层,但尝试看看我是否可以使用 Tf-Hub API 的。

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

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

但是对于这种复杂程度的 free-form 实验,您最好直接使用和调整定义模型的代码,例如 TF Slim(针对 TF1.x)或 Keras 应用程序(也适用于 TF2)。两者都提供 Imagenet-pretrained 用于下载和恢复的检查点。