对于那些从Google来这里寻找快速方法在机器学习应用程序中使用的numpy数组中缩小图像样本的人,这里有一个超快速方法(改编自here)。此方法仅在输入维度是输出维度的倍数时有效。
以下示例将采样从128x128降到64x64(这很容易更改)。
频道上次订购# large image is shape (128, 128, 3)
# small image is shape (64, 64, 3)
input_size = 128
output_size = 64
bin_size = input_size // output_size
small_image = large_image.reshape((output_size, bin_size,
output_size, bin_size, 3)).max(3).max(1)
信道优先排序# large image is shape (3, 128, 128)
# small image is shape (3, 64, 64)
input_size = 128
output_size = 64
bin_size = input_size // output_size
small_image = large_image.reshape((3, output_size, bin_size,
output_size, bin_size)).max(4).max(2)
对于灰度图像,只需将3更改为1,如下所示:
信道优先排序# large image is shape (1, 128, 128)
# small image is shape (1, 64, 64)
input_size = 128
output_size = 64
bin_size = input_size // output_size
small_image = large_image.reshape((1, output_size, bin_size,
output_size, bin_size)).max(4).max(2)
此方法使用与max pooling等效的方法。这是我找到的最快的方法。