CNN中的前向传播 及其Python代码实现
发布日期:2021-07-01 05:17:22
浏览次数:3
分类:技术文章
本文共 1026 字,大约阅读时间需要 3 分钟。
符号约定
A表示卷积的结果矩阵,W表示滤波器(filter)矩阵,b表示偏置(bias)矩阵,stride表示卷积步长,nh nw分别表示矩阵的高和宽,nc表示通道(channel)数,也就是矩阵的第三维
推导
见如下图,其中prev表示上层卷积结果
下面是层间的关系表达式
前向传播函数Python代码
def conv_forward(A_prev,W,b,hparameters): (m,n_H_prev,n_W_prev,n_C_prev)=A_prev.shape (f,f,n_C_prev,n_C)=W.shape stride=hparameters['stride'] pad=hparameters['pad'] n_H=1+int((n_H_prev-f+2*pad)/stride) n_W=1+int((n_W_prev-f+2*pad)/stride) Z=np.zeros((m,n_H,n_W,n_C))#init output A_prev_pad=zero_pad(A_prev,pad) for i in range(m): a_prev_pad=A_prev_pad[i] for h in range(n_H): for w in range(n_W): for c in range(n_C): vert_start=h*stride vert_end=vert_start+f horiz_start=w*stride horiz_end=horiz_start+f a_slice_prev=a_prev_pad[vert_start:vert_end,horiz_start:horiz_end,:] Z[i,h,w,c]=np.sum(np.multiply(a_slice_prev,W[:,:,:,c])+b[:,:,:,c]) cache=(A_prev,W,b,hparameters) return Z,cache
转载地址:https://norstc.blog.csdn.net/article/details/83790453 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年05月03日 18时48分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java提高(7)---TreeSet--排序
2019-05-08
【前端开发】--js弹框
2019-05-08
springMVC(5)---导入excel文件数据到数据库
2019-05-08
springMVC(3)---利用pdf模板下载
2019-05-08
【Java提高】---通过UUID、SHA-1、Base64组合加密
2019-05-08
springMVC(4)---生成excel文件并导出
2019-05-08
[2]Solr7.2.1添加Core
2019-05-08
[3]Solr7.2.1添加自带的中文分词
2019-05-08
java实现敏感词过滤
2019-05-08
c++调用CSerial 库函数进行串口发送
2019-05-08
我与Arduino的相识
2019-05-08
MongoDb数据库备份
2019-05-08
腾讯云Cos获取签名并通过签名上传文件
2019-05-08
树莓派java代码远程部署运行【1】------树莓派配置java环境
2019-05-08
树莓派java代码远程部署运行【2】------树莓派Tomcat安装
2019-05-08
微软Office Online服务安装部署,wopi代码实现--------(1)概述
2019-05-08