为什么我必须将 "uint8" 转换为 "float32"
Why do i have to convert "uint8" into "float32"
我刚开始研究深度学习,并开始使用 Keras 构建 CNN。
所以我注意到,通常在使用数据集 MNIST 时,在导入图像后,它们会转换为 float32
-数据类型。
所以我的问题是,为什么会这样?它似乎应该与 uint8
-Data 一起正常工作。我在这里错过了什么?为什么需要 float32?
原因很简单,神经网络的整个数学是连续的,而不是离散的,最好用浮点数来近似。神经网络的输入、输出和权重都是连续的数字。
如果您有整数输出,它们仍会在管道中的某个点被转换为浮点数,以便具有可以进行操作的兼容类型。这可能会显式或隐式发生,最好明确说明类型。
在某些框架中,如果您没有将输入转换为预期的类型,您可能会出错。
答案是:
我们应该在 CNN 中执行大量数据扩充 和训练。这将导致更快的训练体验!
我刚开始研究深度学习,并开始使用 Keras 构建 CNN。
所以我注意到,通常在使用数据集 MNIST 时,在导入图像后,它们会转换为 float32
-数据类型。
所以我的问题是,为什么会这样?它似乎应该与 uint8
-Data 一起正常工作。我在这里错过了什么?为什么需要 float32?
原因很简单,神经网络的整个数学是连续的,而不是离散的,最好用浮点数来近似。神经网络的输入、输出和权重都是连续的数字。
如果您有整数输出,它们仍会在管道中的某个点被转换为浮点数,以便具有可以进行操作的兼容类型。这可能会显式或隐式发生,最好明确说明类型。
在某些框架中,如果您没有将输入转换为预期的类型,您可能会出错。
答案是:
我们应该在 CNN 中执行大量数据扩充 和训练。这将导致更快的训练体验!