TensorFlow 中的训练芯片和目标图像格式
Training Chip and Target Image format in TensorFlow
我正在尝试为 Sentinel Image 构建土地覆盖分类模型。我使用的图像通道(波段)是 32 位浮点数。
我需要了解如何最好地格式化图像数据,包括用于训练的 chips/patches 和用于分类的目标图像。我有几个问题?
- 我需要将原始图像和训练芯片从 32 位转换为其他深度吗?
- 我是否需要确保训练 chips/patches 和目标具有相同的深度(32 位、16 位或其他)?
- 我需要转售我的数据吗?我看到一些论文在 0-1 或 0-255 之间重新缩放数据?
- 数据深度是否影响学习和预测的性能?
非常感谢。
马兹
在 PC 上使用的最佳精度是 float32
,原因有很多,例如,更高的精度使计算更准确,这是更好的,但不知何故 float16
比 float32
慢PC(我不记得为什么)和 float64
在普通机器上无法使用。
所以
你通常需要使用 float32 作为输入。所以如果它首先是 float32 那么就这样使用它。
是的,但我认为它们都会在 fit
或 predict
期间转换为所需的精度。它在 $HOME/.keras/keras.json
.
我认为这不是必需的,但是以 std 为中心的重新缩放有助于收敛,不过,google 总是简单地重新缩放到 -1 to 1
.
确实如此,但正如我所说,更高的精度提供更好的准确性,但速度更慢。
我正在尝试为 Sentinel Image 构建土地覆盖分类模型。我使用的图像通道(波段)是 32 位浮点数。
我需要了解如何最好地格式化图像数据,包括用于训练的 chips/patches 和用于分类的目标图像。我有几个问题?
- 我需要将原始图像和训练芯片从 32 位转换为其他深度吗?
- 我是否需要确保训练 chips/patches 和目标具有相同的深度(32 位、16 位或其他)?
- 我需要转售我的数据吗?我看到一些论文在 0-1 或 0-255 之间重新缩放数据?
- 数据深度是否影响学习和预测的性能?
非常感谢。
马兹
在 PC 上使用的最佳精度是 float32
,原因有很多,例如,更高的精度使计算更准确,这是更好的,但不知何故 float16
比 float32
慢PC(我不记得为什么)和 float64
在普通机器上无法使用。
所以
你通常需要使用 float32 作为输入。所以如果它首先是 float32 那么就这样使用它。
是的,但我认为它们都会在
fit
或predict
期间转换为所需的精度。它在$HOME/.keras/keras.json
.我认为这不是必需的,但是以 std 为中心的重新缩放有助于收敛,不过,google 总是简单地重新缩放到
-1 to 1
.确实如此,但正如我所说,更高的精度提供更好的准确性,但速度更慢。