首页 > 解决方案 > 在使用 per_image_standardization 之前,我是否仍应标准化图像数据(除以 255)?

问题描述

使用 Tensorflow 并加载图像数据时,我目前拥有:

image = tf.io.decode_png(tf.io.read_file(path), channels=3)
image = tf.reshape(image, [84, 84, 3])
image = tf.cast(image, tf.float32)
return image / 255.0

但是,我想使用tf.per_imdage_standardization,我应该保持除以 255 还是不再需要它?

标签: tensorflowmachine-learning

解决方案


它不再需要了。对图像进行归一化的原因是为了避免由于像素范围大而导致梯度爆炸的可能性,[0, 255]提高收敛速度。因此,您要么标准化每个图像,以便范围为,[-1, 1]要么您只是将 与您正在做的最大像素值相除,以便像素的范围在[0, 1]范围内。

您可能想要规范化图像数据的另一个原因是您是否正在使用迁移学习。例如,如果您使用的预训练模型已使用像素在该[0, 1]范围内的图像进行了训练,则应确保您提供给模型的输入在同一范围内。否则,您的结果将一团糟。


推荐阅读