为什么我必须将 "uint8" 转换为 "float32"

Why do i have to convert "uint8" into "float32"

我刚开始研究深度学习,并开始使用 Keras 构建 CNN。

所以我注意到,通常在使用数据集 MNIST 时,在导入图像后,它们会转换为 float32-数据类型。

所以我的问题是,为什么会这样?它似乎应该与 uint8-Data 一起正常工作。我在这里错过了什么?为什么需要 float32?

原因很简单,神经网络的整个数学是连续的,而不是离散的,最好用浮点数来近似。神经网络的输入、输出和权重都是连续的数字。

如果您有整数输出,它们仍会在管道中的某个点被转换为浮点数,以便具有可以进行操作的兼容类型。这可能会显式或隐式发生,最好明确说明类型。

在某些框架中,如果您没有将输入转换为预期的类型,您可能会出错。

答案是:

我们应该在 CNN 中执行大量数据扩充 和训练。这将导致更快的训练体验