tensorflow中转置卷积 conv2d_transpose 的实现机理及特殊情况处理方式

想理解转置卷积的实现过程,首先应该深入理解一下卷积的实现过程,请参考我的另一篇文章:https://blog.csdn.net/qq_37691909/article/details/89487724

接下来介绍一下转置卷积的情况。官方的函数原型如下:

tf.nn.conv2d_transpose(
    value,
    filter,
    output_shape,
    strides,
    padding='SAME',
    data_format='NHWC',
    name=None
)

其中,第一个参数value,是输入的图像,是一个四维张量,分别对应于  【batchsize, 图像宽度,图像高度,图像深度】,数据类型也是浮点型

第二个参数filter,是卷积核的情况,也是四维张量,分别对应于  【核宽度,核高度,输出图像深度,输入图像深度】,这里和卷积中的参数顺序正好相反

第三个参数output_shape,是输出图像的尺寸,是一个四个元素的向量,分别对应于【batchsize,输出图像宽度,输出图像高度,输出图像深度】,注意到,在卷积的参数列表中是没有这一项的,为什么会有这一项见下面的分析。

第四个参数strides,表示步长,是一个向量,对应于【1,水平步长,垂直步长,1】

第五个参数是填充方式,和卷积的一样,SAME对应填充,VALID对应不填充

下面将详细地对这个函数的实现过程进行解释。

1、为什么要指定输出图像的尺寸?

针对这个问题,我们在卷积的时候就已经有所介绍。在卷积时会发现,当步长不是1后,可能出现两个输入图像尺寸不一致的图,但是使用同样的卷积核及参数配置,最终得到了相同尺寸的输出图像。 这是由于不能整除导致的,因此在进行反卷积的时候,通过指定输出图像的尺寸来进行不同的操作,从而可以得到更好的效果。

2、首先看一下当 使用SAME模式&#x

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值