Deeplearning4j数据应该如何归一化

Deeplearning4j how should data be normalized

在 Deeplearning4j 中 model.fit 我的输入数据应该如何归一化?

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

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

在我看来,在 model.fit.

之前对每次迭代的数据集进行归一化更为合乎逻辑。

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

那么预测的输入呢?

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

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

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

进行预测时,您使用与训练相同的归一化器并使用它对新输入数据进行归一化。

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