tensorflow一维卷积输入_Tensorflow中的卷积与反卷积(下)——反卷积

本文深入探讨Tensorflow中的反卷积操作,主要介绍conv2d_transpose函数。内容包括反卷积的输出尺寸设定、步长的理解、补0操作的差异以及运算方式,并指出其实际是借助反向传播求导实现的。
摘要由CSDN通过智能技术生成

在上一篇文章里研究了tensorflow中的conv2d的一些细节问题,在这篇文章中,就来看看tensorflow中的反卷积是如何实现的。

在tensorflow中,反卷积是使用了conv2d_transpose这条函数来实现,跟卷积操作的conv2d的参数一样,严格意义上来讲,其实反卷积的运算本身应该不能算是卷积操作了,它所作的运算只是为了把卷积的输入跟输出反过来。所以,conv2d_transpose有以下几个细节:

1、反卷积需要指定反卷积的输出尺寸,因为根据上篇文章中卷积操作的公式可以看到,因为存在着向上取整或是向下取整这一个操作,所以在卷积操作中,不同的输入尺寸可以对应相同的输出。

kernel = tf.constant(1.0, shape=[5,5,3,1])

x3 = tf.constant(1.0, shape=[1,10,10,3])

y = tf.nn.conv2d(x3, kernel, strides=[1,2,2,1], padding="VALID")

根据公式

此时的输出y的大小是:(1, 3, 3, 1)

那么输入尺寸x3从[1,10,10,3]更改到[1,9,9,3],对应的输出y的尺寸仍然不变。

因此,如果对卷积进行逆操作的话,需要对输出的尺寸进行指定,不然tensorflow不知道应该属输出[1,10,10,3]还是[1,9,9,3]。

2、反卷积中的步长是1,反卷积中的参数也指定了一个stride,但是这个stride只是用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值