为什么我必须将“ uint8”转换为“ float32”

问题描述 投票:0回答:1

我刚刚开始研究深度学习,并开始与Keras建立CNN。

因此,我注意到,通常在使用数据集MNIST时,在导入图像后,它们会被转换为float32 -Datatype。

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

python keras deep-learning mnist
1个回答
1
投票

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

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

在某些框架中,如果不将输入转换为期望的类型,则可能会出错。

© www.soinside.com 2019 - 2024. All rights reserved.