在使用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的除法,还是不再需要它了?
发布于 2019-08-12 07:27:15
现在不再需要它了。对图像进行归一化的原因是为了避免由于像素[0, 255]的大范围而导致的梯度爆炸的可能性,并提高收敛速度。因此,您要么标准化每个图像,使其范围为[-1, 1],要么像您所做的那样,仅用最大像素值除以,以便像素的范围在[0, 1]范围内。
您可能希望对图像数据进行标准化的另一个原因是,如果您使用的是迁移学习。例如,如果您使用的预训练模型已使用像素在[0, 1]范围内的图像进行训练,则应确保为该模型提供的输入在相同的范围内。否则,你的结果将会一团糟。
https://stackoverflow.com/questions/57454271
复制相似问题