神经网络的输入数据形状_深度学习入门-神经网络(三)预处理和批处理

预处理在神经网络中至关重要,例如图像数据的正规化能提升识别性能。批处理通过打包数据能有效缩短计算时间,尤其在大型数组运算时更显著。以手写数字识别为例,批处理可以改变输入数据形状,一次处理多张图像,提高处理效率。
摘要由CSDN通过智能技术生成

预处理

对神经网络的输入数据进行某种既定的转换称为预处理(pre-processing)。

对于手写数字识别的应用,作为对输入图像的一种预处理,可以进行正规化(normalization),即将图像的各个像素值除以255,使得数据的值在0.0~1.0的范围内。像这样把数据限定到某个范围内的处理称为正规化。

预处理在神经网络(深度学习)中非常实用,其有效性已在提高识别性能和学习的效率等众多实验中得到证明。实际上,很多预处理都会考虑到数据的整体分布。比如,利用数据整体的均值或标准差,移动数据,使数据整体以0为中心分布,或者进行正规化,把数据的延展控制在一定范围内。除此之外,还有将数据整体的分布形状均匀化的方法,即数据白化(whitening)等。

批处理

打包式的输入数据称为批(batch)。批有“捆”的意思,图像就如同纸币一样扎成一捆。

批处理对计算机的运算大有利处,可以大幅缩短每张图像的处理时间。那么为什么批处理可以缩短处理时间呢?这是因为大多数处理数值计算的库都进行了能够高效处理大型数组运算的最优化。并且,在神经网络的运算中,当数据传送成为瓶颈时,批处理可以减轻数据总线的负荷(严格地讲,相对于数据读入,可以将更多的时间用在计算上)。也就是说,批处理一次性计算大型数组要比分开逐步计算各个小型数组速度更快。

以书写数字识别为例

0c6c9305593329d86c5a30eaed69b0c3.png

从整体的处理流程来看,图3-26中,输入一个由784个元素(原本是一个28 × 28的二维数组)构成的一维数组后,输出一个有10个元素的一维数组(0~9)。这是只输入一张图像数据时的处理流程。

现在我们来考虑打包输入多张图像的情形。比如,我们想用 predict()函数一次性打包处理100张图像。为此,可以把x的形状改为100 × 784,将100张图像打包作为输入数据。用图表示的话,如图3-27所示。

695934fe091ba485bdedf8f4968fd968.png
输入数据的形状为100 × 784,输出数据的形状为100 × 10。这表示输入的100张图像的结果被一次性输出了。

其中x[0] 和y[0] 中保存了第0张图像及其推理结果, x[1] 和 y[1] 中保存了第1张图像及其推理结果,等等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值