彻底搞懂CNN中的卷积和反卷积

本文分三部分讲解卷积和反卷积,结合TensorFlow框架进行代码实践。介绍了卷积过程可视化工具,阐述卷积操作重要参数,如输入输出图片尺寸、步长、卷积核大小、填充大小等,还展示反卷积工作过程,说明了不同步长下的计算方式。

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

前言

卷积反卷积在CNN中经常被用到,想要彻底搞懂并不是那么容易。本文主要分三个部分来讲解卷积和反卷积,分别包括概念工作过程代码示例,其中代码实践部分主结合TensorFlow框架来进行实践。给大家介绍一个卷积过程的可视化工具,这个项目是github上面的一个开源项目。

在这里插入图片描述

 

 

在这里插入图片描述

上图展示了一个卷积的过程,其中蓝色的图片(4*4)表示的是进行卷积的图片,阴影的图片(3*3)表示的是卷积核,绿色的图片(2*2)表示是进行卷积计算之后的图片。在卷积操作中有几个比较重要的参数,输入图片的尺寸、步长、卷积核的大小、输出图片的尺寸、填充大小。
下面用一个图来详细介绍这些参数:
在这里插入图片描述

反卷积

在这里插入图片描述

上图展示一个反卷积的工作过程,乍看一下好像反卷积和卷积的工作过程差不多,主要的区别在于反卷积输出图片的尺寸会大于输入图片的尺寸,通过增加padding来实现这一操作,上图展示的是一个strides(步长)为1的反卷积。下面看一个strides不为1的反卷积

在这里插入图片描述

在这里插入图片描述

 在这里插入图片描述

 在这里插入图片描述

将卷积核与输入矩阵对应的位置进行乘加计算即可,对于多维输入矩阵和多维卷积核的卷积计算,将卷积后的结果进行堆叠,作为最终卷积的输出结果。 

反卷积 

 

 

需要注意的是,在进行反卷积的时候设置的stride并不是指反卷积在进行卷积时候卷积核的移动步长,而是被卷积矩阵填充的padding,仔细观察红色框内可以发现之前输入矩阵之间有一行和一列0的填充

 

反卷积计算公式
i=(o-1)*s-+k-2p
s值得是步长 反卷积图片周围0填充的行数
p值得是反卷积图片内部0填充的行数
转载https://blog.youkuaiyun.com/sinat_29957455/article/details/85558870

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值