python 实现 average pooling 和 max pooling

pooling的主要作用

1. 首要作用:下采样,降维,去除冗余信息。同时扩大感受野,保留了feature map的特征信息,降低参数量。

2. 实现非线性,一定程度上避免过拟合。

3. 可以实现特征不变性。包括平移不变性、旋转不变性、尺度不变性

复制代码
import cv2
import numpy as np
 
input = np.array([
    [1,2,1,1],
    [0,1,2,1],
    [1,1,0,1],
    [3,0,0,1]])
 
k = np.array([
    [0,1,0],
    [0,1,0],
    [0,1,0]])
 
h,w = input.shape
conv = [] # 卷积操作
max_pool = [] # 最大池化
ave_pool = [] # 平均池化
 
for i in range(h-2):
    line_conv = []
    for j in range(w-2):
        t = input[i:i+3,j:j+3]
        line_conv.append(np.sum(k*t)) # 输入3×3区域和卷积核进行对应元素相乘再相加        
    conv.append(line_conv)    
 
for i in range(0,w,2):
    line_ave = []
    line_max = []
    for j in range(0,h,2):
        t = input[i:i+2,j:j+2]
        line_ave.append(np.sum(t)/4)   
        line_max.append(np.max(t)) # 注意, 要用np.max(), 不是max()
    ave_pool.append(line_ave)    
    max_pool.append(line_max)
 
print('conv = \n',conv,'\nmax_pool = \n',max_pool,'\nave_pool = \n',ave_pool)
复制代码

 

posted @   一泓喜悲vv  阅读(392)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示