【发布时间】:2017-12-27 09:52:50
【问题描述】:
我正在尝试使用 Keras 库、Tensorflow 后端对完全卷积神经网络进行建模。
我面临的问题是将不同大小的图像批量输入model.fit() 函数。训练集由不同大小的图像组成,从 768x501 到 1024x760。
不超过 5 张图像具有相同的尺寸,因此将它们分组似乎没有任何帮助。
Numpy 允许将数据以列表形式存储在单个变量中。但是 keras model.fit() 函数在接收列表类型训练数组时会抛出错误。
我不希望调整大小和丢失数据,因为我已经有一个非常小的数据集。
我该如何训练这个网络?
【问题讨论】:
-
您可以尝试填充较小的图像,使它们具有与最大图像相同的大小。如果这对您来说不是一个有效的解决方案,请尝试阅读this。到最后有人提出了和你一样的问题。
-
为什么不想调整数据大小?你有多少张图片?
-
我只有大约 1200 张图像用于训练。有些是 1024x(~650),有些是 768x(~520)。所以我所做的就是将它们分成两批并使用它们训练模型。我不想调整大小,因为我想使用纯粹未更改的数据。但似乎这是唯一的方法,或者填充。
-
所以,我正在训练一个全卷积网络。图像输入图像输出类型。所以我的输出图像与我的输入大小相同。我不明白的是,我已经使用输入形状作为(无,无,1)进行了训练。使用两批训练图像 - 1024x680 和 760x520。但是当我输入大小为 1024x720 的输入时,它会预测大小为 1024x680 的输出,这对应于我的训练批量大小之一。如何创建一个可以输入任意大小的输入图像以产生所需输出的网络 - 与输入图像大小相同的图像。
-
调整大小或裁剪是要走的路。
标签: python keras deep-learning computer-vision conv-neural-network