Blu*_*lue 11 python computer-vision deep-learning conv-neural-network keras
我正在尝试使用Keras库Tensorflow后端建模一个完全卷积的神经网络.
我面临的问题是分批饲喂不同大小的图像以实现model.fit()功能.训练集包括不同大小的图像,从768x501到1024x760不等.
不超过5张图像具有相同的尺寸,因此将它们分组成批似乎没有任何帮助.
Numpy允许以列表形式将数据存储在单个变量中.但keras model.fit()函数在接收列表类型训练数组时会引发错误.
我不希望调整大小并丢失数据,因为我已经拥有一个非常小的数据集.
我该如何培训这个网络?
我认为空间金字塔池(SPP)可能会有所帮助。查看本文。
我们注意到 SPP 对于深度 CNN 来说有几个显着的特性:
1)无论输入大小如何,SPP都能够生成固定长度的输出,而之前深度网络中使用的滑动窗口池则不能;
2)SPP使用多级空间仓,而滑动窗口池化仅使用单个窗口大小。多层池化已被证明对对象变形具有鲁棒性;
3)由于输入尺度的灵活性,SPP可以汇集在可变尺度上提取的特征。通过实验,我们表明所有这些因素都提高了深度网络的识别精度。
yhenon已在 Github 上为 Keras 实现了 SPP。