手动实现最大池化

最大池化(Max Pooling)

网格内的值不取平均值,而是取网格内的最大值进行池化操作。

import imageio
import numpy as np
import matplotlib.pylab as plt

img = imageio.imread("imori.jpg")
s = 8
rows,cols,C = img.shape

nrows = int(rows/s)
ncols = int(cols/s)
img1 = np.zeros((nrows,ncols,C),np.uint8)

for row in range(nrows):
    for col in range(ncols):
        for c in range(C):
            img1[row,col,c] = np.max(img[row*s:(row+1)*s-1,col*s:(col+1)*s-1,c])


# imageio.imsave("output.jpg",img1)
plt.figure(figsize=(8,6))
plt.subplot(121)
plt.imshow(img)
plt.axis('off') 
plt.subplot(122)
plt.imshow(img1)
plt.axis('off') 
plt.show()

结果:
手动实现最大池化_第1张图片

你可能感兴趣的:(手动实现最大池化)