【问题标题】:Why do i have to convert "uint8" into "float32"为什么我必须将“uint8”转换为“float32”
【发布时间】:2020-05-16 02:06:48
【问题描述】:

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

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

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

【问题讨论】:

  • 你想要衍生品和小步骤,对吧?虽然uint8 中可以有源数据,但计算机需要类似的类型来执行数学运算

标签: python keras deep-learning mnist


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    答案是:

    我们应该在 CNN 中进行大量的数据增强和训练。这将带来更快的培训体验

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-31
      • 2010-09-24
      • 2019-12-11
      • 2016-05-15
      • 1970-01-01
      相关资源
      最近更新 更多