python - 为什么我必须将“uint8”转换为“float32”
问题描述
我刚开始研究深度学习,并开始使用 Keras 构建 CNN。
所以我注意到,通常在使用 Dataset MNIST 时,在导入图像后,它们会被转换为float32
-Datatype。
所以我的问题是,为什么会这样?似乎它应该与uint8
-Data 一起正常工作。我在这里想念什么?为什么需要 float32?
解决方案
原因很简单,神经网络的整个数学是连续的,而不是离散的,这最好用浮点数来近似。神经网络的输入、输出和权重是连续数字。
如果您有整数输出,它们仍将在管道中的某个点转换为浮点数,以便具有可以进行操作的兼容类型。这可能会显式或隐式发生,最好明确类型。
在某些框架中,如果您不将输入转换为预期的类型,您可能会遇到错误。
推荐阅读
- java - 具有一对多关系的休眠地图视图
- java - 在地图上创建自定义指南针或移动本机按钮
- javascript - 使用 github API 的趋势 github 存储库
- c++ - 我需要解释给定片段的输出
- azure-application-insights - Ap Insight 虽然启用了开发者模式但未登录
- asp.net-core - 使用 Kubernetes 持久卷进行数据保护
- java - 将实体映射到 entityDTO 的 Spring Boot 问题
- sql - 将过程结果集转换成 XML
- c# - 用于 asp.net 网站的 Steam 身份验证
- powershell - Comparing & Copying Newer Files