我正在尝试使用Keras库Tensorflow后端对完全卷积神经网络进行建模。
我面临的问题是将不同大小的图像分批投放到model.fit()
功能。训练集包括不同大小的图像,从768x501到1024x760不等。
不超过5张图片具有相同的尺寸,因此将它们分组成批似乎没有任何帮助。
Numpy允许以列表形式将数据存储在单个变量中。但是keras model.fit()
函数在接收列表类型训练数组时会抛出错误。
我不希望调整大小并丢失数据,因为我已经拥有一个非常小的数据集。
我如何开始培训这个网络?
答案 0 :(得分:0)
我认为空间金字塔池(SPP)可能会有所帮助。检出此paper。
我们注意到SPP对于深层CNN具有几个显着的特性:
1)SPP能够生成固定长度的输出,而不管输入大小如何,而以前的深层网络中使用的滑动窗口池则无法;
2)SPP使用多级空间仓,而滑动窗口池仅使用单个窗口大小。多层池已显示出对对象变形的鲁棒性;
3)由于输入比例尺的灵活性,SPP可以合并以可变比例尺提取的要素。通过实验表明,所有这些因素都可以提高深度网络的识别精度。
yhenon
已实施SPP for Keras on Github。