深度学习与Keras MNIST数据库查询为什么要将整数转换为浮点?

y0u0uwnf  于 2023-03-02  发布在  其他
关注(0)|答案(2)|浏览(213)

我正在借助Python深度学习书籍学习深度学习
下面的代码将被转换为浮点型

train_images = train_images.reshape((60000, 28 * 28))
train_images = train_images.astype('float32') / 255
test_images = test_images.reshape((10000, 28 * 28))
test_images = test_images.astype('float32') / 255

你能告诉我为什么需要转换成浮点范围(0..1),而原始列车数据是在uint8类型的形状数组(60000,28,28)中,值在[0,255]区间内吗?
谢谢你的帮忙

6qqygrtg

6qqygrtg1#

在训练神经网络时,最常见的是使用32位精度,因此在某一时刻,训练数据必须转换为32位浮点数。由于数据集很容易放入RAM,我们不妨立即转换为浮点数。

lnvxswe2

lnvxswe22#

Keras中的所有方法或函数都期望输入数据是默认的浮点数据类型(float32),即使你尝试训练 float16double 或 * 任何其他数据类型 * 的数据,你也会得到如下的运行时异常:
RuntimeError: "conv2d_cpu" not implemented for 'Half'
因此,数据和模型计算发生在 float32 上。

相关问题