有没有办法使用机器学习模型中的图层来放大图像?

Is there a way to upscale an image using a layer in a machine learning model?

例如,假设我有一个 (32,32,1) 输入灰度图像。我想使用 EfficientNet 或任何其他预训练模型对数据进行分类(或基本上使用任何类型的迁移学习)。由于 EfficientNet 至少需要 (75,75,3) 大小的图像,是否可以仅使用模型权重来放大我的图像?

例如,Conv2DDense 等的任意组合都适用于我的用例。

  1. 您可以使用 tf.keras.layers.Resizing 将输入图像的大小调整为深度学习模型中输入层之后的目标高度和宽度。查看 doc 了解更多详情。
    或者
  2. 如果您从文件夹中读取图像数据,则无需向模型添加新层。您可以使用 tf.keras.utils.image_dataset_from_directory method 并指定 image_size (这只是一个参数,它是从磁盘读取图像后调整图像大小的大小)作为您想要的目标大小

Conv2D 只会减小图像的大小。

您可以使用 'deconvolution' 图层:https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2DTranspose 这是一个可训练层;例如 strides=(3,3) 将图像的宽度和高度乘以 3。

使用示例在https://www.tensorflow.org/tutorials/generative/dcgan

中给出