关于 tensorflow 中的卷积&反卷积(以stargan-vc-tf代码为例)

本文介绍了在Stargan-VC模型中,如何使用卷积和反卷积,特别是在TensorFlow 1.12和Keras中的实现。讨论了卷积尺寸计算、Conv2DTranspose的使用以及在反卷积中`SAME`和`VALID`模式的效果。同时,提到了Batch Normalization(BN)在TensorFlow中的坑和使用注意事项,以及在Stargan-VC中使用的InstantNorm(IN)。
摘要由CSDN通过智能技术生成

 

在stargan-vc模型中,有比较经典的(卷积 & 反卷积)组合,综合参考了github上的implement代码https://github.com/hujinsen/StarGAN-Voice-Conversion

其中,编码者,在Generator部分,采用手动padding,之后采用

def conv2d_layer(inputs, filters, kernel_size, strides, padding: list = None, activation=None, kernel_initializer=None, name=None):

    p = tf.constant([[0, 0], [padding[0], padding[0]], [padding[1], padding[1]], [0, 0]])
    out = tf.pad(inputs, p, name=name + 'conv2d_pad')
    """关于tf.pad 的用法:
    # https://blog.csdn.net/yy_diego/article/details/81563160"""

    conv_layer = tf.layers.conv2d(
        inputs=out,
        filters=filters,
        kernel_size=kernel_size,
        strides=strides,
        padding='valid',
        activation=activation,
        kernel_initializer=kernel_initializer,
        name=name)

    return conv_layer

来作为下采样卷积的函数;

仔细想来,其实也可以直接用 (‘SAME’模式)代替(‘VALID’+手动padding) 的方法,总的目标都是改变卷积尺寸,数据是一样的;

在查阅相关资料的时候(关于卷积&反卷积 尺寸计算的公式),做了一些笔记和整理:

 

 


 

卷积尺寸公式:https://blog.csdn.net/weixin_37697191/article/details

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值