Deeplearning4j应该如何对数据进行标准化

Das*_*sma 1 java deep-learning deeplearning4j

我的输入数据应如何针对 Deeplearning4j 中的 model.fit 进行标准化?

目前我对大量数据进行了迭代。

我可以看到有些人标准化了完整的数据集。

在我看来,每次迭代的数据集在之前进行标准化更为合乎逻辑model.fit

是否有一些在迭代器内编码规范化的最佳实践?

那么预测的输入呢?

Pau*_*ubs 5

您应该始终标准化您的训练集。如果您只对每个批次进行归一化,那么当您只有一个示例时,在对推理进行归一化时您会做什么?

如果您使用基于统计的标准化器(即标准化为零均值,单位方差;例如NormalizerStandardize),那么您将必须首先使用.fit()DataSetIterator。这将遍历您的所有数据并收集必要的统计数据,以便能够正确标准化数据。

之后,对于不需要适合数据的标准化器(即,如果您有固定范围,就像图像一样),您可以在使用上设置标准化DataSetIterator.setPreProcessor(normalizer)。从此时起,您DataSetIterator将返回标准化值。

当您进行预测时,您可以使用用于训练的相同标准化器,并用它标准化您的新输入数据。

如果您的标准化器必须适合数据,您可以使用它的.save()方法来保存它,并使用它的.load()方法来加载它。对于其他规范化器,您只需创建一个新实例即可。