use*_*517 6 machine-learning mnist deep-learning keras tensorflow
我一直在尝试使用VGG / Inception对MNIST数据集使用转移学习。但是,这两个网络都接受尺寸至少为224x224x3的图像。如何将28x28x1 MNIST图像缩放到224x224x3,以进行传输学习?
执行您要求的一种常见方法是简单地将图像大小调整为输入层到 CNN 所需的所需分辨率。因为您已经用keras标记了您的问题,所以 keras 有一个预处理模块,允许您加载图像并可选择指定要缩放图像的所需大小。如果您查看该方法的实际来源:https : //github.com/keras-team/keras/blob/master/keras/preprocessing/image.py#L321,它在内部使用 Pillow 插值方法将图像重新缩放为所需的分辨率。
另外,由于MNIST数字原本是灰度的,你需要将单通道图像复制成多通道图像,使其人为地变成RGB。这意味着红色、绿色和蓝色通道都是相同的,并且是 MNIST 灰度对应。该load_img方法有一个名为 的附加标志grayscale,您可以将其设置为False以作为 RGB 图像加载到图像中。
加载这些图像并转换为 RGB 并重新缩放后,您可以继续使用 VGG19 执行迁移学习。事实上,之前已经这样做了。请在此处查阅此链接:https : //www.analyticsvidhya.com/blog/2017/06/transfer-learning-the-art-of-fine-tuning-a-pre-trained-model/并查看第 6 节:使用用于识别数字的预训练模型。
我想给你一个公平的警告,即拍摄 28 x 28 图像并调整为 224 x 224 图像会产生严重的插值伪影。您将对由于上采样而包含噪声的图像数据执行转移学习,但这就是我之前链接的博客文章中所做的。我建议您将插值更改为类似bilinear或bicubic。默认是使用最近的邻居,这对于上采样图像来说很糟糕。
YMMV,所以尝试将图像调整为输入层所需的大小,并用三个通道填充图像以使其成为 RGB,然后看看会发生什么。
| 归档时间: |
|
| 查看次数: |
2695 次 |
| 最近记录: |