我正在尝试为Sentinel图像构建一个土地覆盖分类模型。我使用的图像通道(波段)是32位浮点数。
我需要了解如何最好地格式化图像数据,包括用于训练的芯片/补丁和用于分类的目标图像。我有一些问题:
- 我需要将原始图像和训练芯片从32位转换为其他深度吗?
- 我需要确保训练芯片/补丁和目标图像具有相同深度(无论是32位、16位还是其他)吗?
- 我需要重新调整我的数据吗?我看到一些论文中数据被重新调整到0-1或0-255之间?
- 数据深度是否影响学习和预测的性能?
回答:
在个人电脑上使用的最佳精度是float32
,因为许多原因,比如更高的精度使得计算更加准确,这更好,但不知为何float16
在PC上比float32
慢(我不记得为什么了),而float64
在普通机器上慢得无法使用。
所以
-
通常你无论如何都需要使用
float32
作为输入。所以如果它最初就是float32
,就直接使用它。 -
是的,但我认为它们都会在
fit
或predict
过程中转换为所需的精度,这在$HOME/.keras/keras.json
中设定。 -
我认为这不是必须的,但标准化后的重新调整有助于收敛,不过,谷歌通常简单地将数据重新调整到
-1到1
之间。 -
确实如此,但正如我所说,更高的精度提供了更好的准确性,但速度更慢。