【发布时间】:2020-07-25 08:39:49
【问题描述】:
我正在使用来自以下 git 存储库的 Mask RCNN 训练深度学习模型:matterport/Mask_RCNN。我依赖于我的数据集(原始数据集:59 张 1988x1355x3 的图像,每个图像 > 80 个注释)的大量扩充,我将其存储在本地(评估扩充的类型/程度与验证指标所必需的)。增强数据集包含 6000 张图像。由于降低了分辨率和仿射变换,该数据集在图像的 x 和 y 维度上有所不同 - 我假设不同的 x、y 维度不会影响最终测试。
但是,每当我加载超过“X”个图像来训练模型时,我的 Python 内核就会崩溃。
因此,我想出了将数据集拆分为子数据集并迭代子数据集的想法,使用“最后”训练的权重作为新一轮的起点。但我不确定结果是否相同(阅读:相同,考虑到“随机梯度下降”的随机性质)?
我想知道,如果我不遍历每个 epoch 的子数据集,而是训练 Y epoch(例如,20 只用于“heads”,10 用于“all layers”),结果是否相同?
但是,我确信这不是解决此问题的最有效方法。欢迎提出改进意见。
注意,我没有使用keras.preprocessing.image.ImageDataGenerator(),据我了解,它随机生成数据并通过替换纪元的输入将其提供给模型,而我想提供整个数据集到模型。
【问题讨论】:
标签: python keras deep-learning data-augmentation