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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了