【发布时间】:2020-10-04 04:37:46
【问题描述】:
如前所述,我正在尝试在训练我的模型之前标准化我的数据集。我以前使用tf.keras.preprocessing.image.ImageDataGenerator 来执行此操作。
train_data = tf.cast(train_data, tf.float32)
train_gen = ImageDataGenerator(
featurewise_center=True,
featurewise_std_normalization=True
)
train_gen.fit(train_data)
train_generator = train_gen.flow(train_data, train_labels,
batch_size=batch_size,
shuffle=True)
model.fit(train_generator, epochs=base_epochs)
但是,我不得不放弃它,因为我使用自定义层实现了一个复杂的损失函数。因此,需要将数据和标签分别作为输入发送到模型。 Tensorflow Keras 中是否提供任何其他功能来规范化我的样本?
【问题讨论】:
-
这些是您可以自己实现的简单操作(如果您无法使用生成器)。
-
您可以尝试使用 numpy 数组,但是,它不会像您在 ImageDataGenerator 中提到的那样批量处理。 np.mean(train_data, axis=0) 然后是 train_data -= train_data_mean。同样,对于所有样本,对于 std,沿轴 0 的 np.std。
-
@AkashKumar 感谢您的友好建议!我在检查源代码后解决了问题,并完全按照您的建议进行操作。
标签: python tensorflow keras normalization