50、实战 - 利用 conv + bn + relu + add 写一个残差结构
2024-01-07 22:19:14
上一节介绍了残差结构,还不清楚的同学可以返回上一节继续阅读。
到了这里,一个残差结构需要的算法基本都介绍完了,至少在 Resnet 这种神经网络中的残差结构是这样的。
本节我们做一个实战,基于之前几节中手写的 conv / bn 算法,来搭建一个残差结构。其中,relu 的实现和 add 的实现很简单。
relu 算法的实现用 python 来写就一行:
def ComputeReluLayer(img):
res = np.maximum(0, img)
return res
其中 img 是 relu 的输入数据,取输入数据和零的最大值即可, res 就是经过 relu 激活的结果。
而加法节点的实现就更简单,在 python 中就一个加法操作符就可以完成。
残差结构图
先看一下 resnet 中的残差结构图,在resnet50中,有两种残差结构,一种是如下的结构。
图中红框标注的是其中一种残差结构,这个结构的特点是左侧分支有3个卷积,每个卷积后面有一个 relu 激活函数。
你可能会问,左侧最后的一个卷积后面没有 relu 啊,这是因为左侧最后的一个卷积会和右侧的一个卷积相加,加完之后的结果再做 relu,实际上也相当于卷积后面都会有个relu。只要在卷积后面有一个 relu 激活函数,
文章来源:https://blog.csdn.net/dongtuoc/article/details/135374517
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!