首页 > 解决方案 > 为什么我必须将“uint8”转换为“float32”

问题描述

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

所以我注意到,通常在使用 Dataset MNIST 时,在导入图像后,它们会被转换为float32-Datatype。

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

标签: pythonkerasdeep-learningmnist

解决方案


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

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

在某些框架中,如果您不将输入转换为预期的类型,您可能会遇到错误。


推荐阅读