
上QQ阅读APP看书,第一时间看更新
3.5.1 尺度缩放
我们重新加载MNIST数据集,正如之前所做的:

然后,可以简单地调用rescale()方法来创建一个尺度被重新缩放的图像。调整图像尺度大小的目的是将其重新缩放到原始大小,使得图像看起来像原始图像的一个较低分辨率的图像。在缩放过程中,图像会失去一些特征,但实际上可以由此训练出一个更加健壮的深度学习模型。也就是说,这个模型对图像中目标的尺度具有更好的健壮性。

对于要处理的原始图像x,可以按如下方式对其进行缩小和放大:

此时,增强(尺度缩放)的图像在x_中。注意,在本例中,图像被缩小了2倍(50%),然后又被放大了2倍(200%)。multichannel参数设置为false,因为图像只有一个通道,这意味着它们是灰度图像。
在进行尺度缩放时,要注意需要按能够对分辨率进行精确等分的因子进行缩放。例如,一张28×28的图像,如果缩小0.5倍,就会变成14×14,这挺好的。但如果缩小0.3倍,就会缩小到8.4×8.4,也就是9×9,因为这会增加不必要的复杂情况,所以并不好。要尽量保持简单。
除了尺度缩放之外,还可以稍微修改现有数据,使现有数据既发生一些变化,又不至于偏离原始数据,下面对此进行讨论。