吴恩达深度学习编程作业第四周第一节——Convolution model-step by step v1/v2

本文详细介绍了如何逐步构建卷积神经网络,包括零值填充的作用、卷积的单步应用、前向传播过程,以及池化层的前向和反向传播。在卷积神经网络部分,讲解了如何使用numpy进行填充,实现卷积和池化层的前向传播,并探讨了后向传播的计算公式。此外,还特别讨论了最大池化和平均池化层的反向传播算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.逐步构建卷积网络
本次要构建的网络基本架构:
在这里插入图片描述
注:每进行一次前向传播操作,都会有与之对应的后向传播,前向传播的参数将被存储,这些参数在后向传播过程中将被用来计算梯度。
2.卷积神经网络
卷积示意图
2.1零值填充
填充原理图, padding = 2
使用零值填充的好处:

  1. 填充帮助你使用卷积层而不需要收缩输入数据的高和宽,这在深度网络中十分重要;
  2. 帮助保留图片边缘信息
    使用函数 numpy.pad 介绍:
    numpy.pad(array, pad_width, mode=‘constant’, **kwargs)
    array:要填充的数组
    pad_width:(before,after)简单来说就是前面填几和后面填几,如(2,3)就是前填2后填3
    “constant”:默认填常数,可以选择别的
    2.2 卷积中的一步
    在本部分中,实现卷积的单个步骤,将滤波器应用于输入的单个位置。这将用于构建卷积单元。
    2.3 卷积神经网络的前向传播
    在这一节中,使用单个过滤器进行卷积操作,得到的结果是2D的将所得结果叠加到一起生成一个3D结果。
    过程:
    1.选择一个切片2*2
    提示:a_slice_prev = a_prev[0:2,0:2,: ] “a_prev” (shape (5,5,3))
    2.定义一个切片
    需要定义4个角:vert_start, vert_end, horiz_start ,horiz_end
    vert_start = h * stride
    vert_end = vert_start + f
    horiz_start = w * stride
    horiz_end = horiz_start + f
    定义3D切片:
a_slice_prev = a_prev_pad[vert_start : vert_end, horiz_start : horiz_end, :]

2.4池化层
2.4.1前向池化
设计最大池化层和平均池化层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值