尝试从MobileNet V2转移学习内容时,是否可以为特征提取器使用不同的输入大小?

时间:2019-07-28 15:40:35

标签: tensorflow feature-extraction tensorflow2.0 transfer-learning

我正在尝试建立模型以对灰度图像着色。

我遵循了Coloring Black and White photos with Neural Networks的Alpha版本!

我第一次尝试加载1张彩色图像, 我按照上面的github中的建议将RGB转换为Lab。 L向量是输入,AB向量是输出。

这对于训练后的图像效果很好,但对于其他图像(我所期望的)却效果不佳。

我对该模型进行了600张图像的训练,即使对于火车图像,结果也很糟糕。

因此,我尝试使用来自MobileNet V2的转移学习,以便它将首先识别功能。

IMG_SHAPE = (160, 160, 3)

# Create the base model from the pre-trained model MobileNet V2
base_model = tf.keras.applications.MobileNetV2(input_shape=IMG_SHAPE,
                                               include_top=False,
                                               weights='imagenet')

IMG_BATCH = tf.convert_to_tensor([32, 160, 160, 3], dtype=tf.int32)
print(IMG_BATCH)

tf.Tensor([ 32 160 160   3], shape=(4,), dtype=int32)

feature_batch = base_model(IMG_BATCH)

我收到:

InvalidArgumentError: The first dimension of paddings must be the rank of inputs[4,2] [4] [Op:Pad]

当我遵循CatsVsDogs分类器Tensorflow指南:Transfer Learning Using Pretrained ConvNets

BATCH_SIZE = 32
SHUFFLE_BUFFER_SIZE = 1000

train_batches = train.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE)
validation_batches = validation.batch(BATCH_SIZE)
test_batches = test.batch(BATCH_SIZE)

for image_batch, label_batch in train_batches.take(1):
  pass

image_batch.shape

TensorShape([32, 160, 160, 3])

它工作正常,所以我想我的问题是输入大小之间不匹配。

我希望有一个模型,其中将base_model(MobileNet)与我的图层连接起来,其中输入将是向量L,输出将是AB。

有可能吗?

0 个答案:

没有答案