【问题标题】:how to normalize my image data in Tensorflow Keras如何在 Tensorflow Keras 中标准化我的图像数据
【发布时间】: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


【解决方案1】:
    def standardize(image_data):
        image_data -= np.mean(image_data, axis=0)
        image_data /= np.std(image_data, axis=0)
        return image_data

这是解决问题的简单方法。自己预处理数据。

【讨论】:

猜你喜欢
  • 2021-05-12
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 2019-10-30
  • 1970-01-01
  • 2021-09-08
  • 2017-07-05
  • 1970-01-01
相关资源
最近更新 更多