我正在训练我的神经网络对图像中的某些事物进行分类。我裁剪 40x40 像素的图像并将其分类为某个对象与否。所以它有 1600 个输入神经元、3 个隐藏层(500、200、30)和 1 个必须为 1 或 0 的输出神经元。我使用Flood库。
我不能用 训练它QuasiNewtonMethod
,因为它在算法中使用了一个大矩阵,它不适合我的记忆。所以我使用GradientDescent
and the ObjectiveFunctional
is NormalizedSquaredError
。
问题在于,通过训练它会溢出权重,并且神经网络的输出是INF
或NaN
对于每个输入。
此外,我的数据集太大(CSV 格式时大约 800mb),我无法完全加载它。所以我InputTargetDataSets
用 1000 个实例制作了许多实例,并将其保存为 XML(Flood的默认格式),并在每个随机打乱的数据集上训练一个 epoch。但是当我只在一个大数据集(10000 个实例)上训练它时,它也会溢出。
为什么会发生这种情况,我该如何防止这种情况发生?