tensorflow - 在使用 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 还是不再需要它?
解决方案
它不再需要了。对图像进行归一化的原因是为了避免由于像素范围大而导致梯度爆炸的可能性,[0, 255]
提高收敛速度。因此,您要么标准化每个图像,以便范围为,[-1, 1]
要么您只是将 与您正在做的最大像素值相除,以便像素的范围在[0, 1]
范围内。
您可能想要规范化图像数据的另一个原因是您是否正在使用迁移学习。例如,如果您使用的预训练模型已使用像素在该[0, 1]
范围内的图像进行了训练,则应确保您提供给模型的输入在同一范围内。否则,您的结果将一团糟。
推荐阅读
- python - 我收到此错误:关键错误:'文本'
- php - 在 Ionic 3 框架中创建帐户的 API - php magento2
- java - 特定数组大小声明。爪哇
- windows - Windows docker 命令行不能接受内部命令
- java - 在java中构建kibana查询以从elasticsearch中获取记录
- clojure - 如何使用 map-indexed 和 vector 在 Clojure 中格式化字符串
- laravel - 具有多个数据库的 Laravel
- python - Selenium 以编程方式单击下一步按钮,直到最后一页
- google-search-appliance - “生成报告时发生内部错误。” 发生错误
- javascript - 检查数组中是否存在相同的对象 - Javascript