Python 如何规范化Tensorflow Keras中的图像数据
如前所述,我正在尝试在训练模型之前规范化我的数据集。我之前使用了Python 如何规范化Tensorflow Keras中的图像数据,python,tensorflow,keras,normalization,Python,Tensorflow,Keras,Normalization,如前所述,我正在尝试在训练模型之前规范化我的数据集。我之前使用了tf.keras.preprocessing.image.ImageDataGenerator来完成这项工作 train_data = tf.cast(train_data, tf.float32) train_gen = ImageDataGenerator( featurewise_center=True, featurewise_std_norma
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中是否提供了任何其他函数来规范我的样本
def standardize(image_data):
image_data -= np.mean(image_data, axis=0)
image_data /= np.std(image_data, axis=0)
return image_data
这是解决这个问题的一个简单方法。自己对数据进行预处理。这些都是简单的操作,您可以自己实现(如果您无法使用生成器)。您可以尝试使用numpy数组,但它不会像您在ImageDataGenerator中提到的那样是批处理的。np.平均值(列数据,轴=0),然后列数据-=列数据平均值。同样,对于std,所有样本的np.std沿轴0。@AkashKumar感谢您的建议!我在检查了源代码后解决了这个问题,并完全按照您的建议进行了操作