我正在借助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]区间内吗?
谢谢你的帮忙
2条答案
按热度按时间6qqygrtg1#
在训练神经网络时,最常见的是使用32位精度,因此在某一时刻,训练数据必须转换为32位浮点数。由于数据集很容易放入RAM,我们不妨立即转换为浮点数。
lnvxswe22#
Keras中的所有方法或函数都期望输入数据是默认的浮点数据类型(float32),即使你尝试训练 float16 或 double 或 * 任何其他数据类型 * 的数据,你也会得到如下的运行时异常:
RuntimeError: "conv2d_cpu" not implemented for 'Half'
因此,数据和模型计算发生在 float32 上。