Dilation卷积与IDCNN 笔记

版权声明:转载请声明转自Juanlyjack https://blog.csdn.net/m0_38088359/article/details/83540109

0、前言

Dilation 卷积,也被称为:空洞卷积、膨胀卷积。
在神经网络中,通常利用卷积来实现数据的特征提取。卷积层还有一个权值共享的原则:每个神经元只关注一个特征。

卷积完经过激励层做一个非线性映射,输出到Pooling layer。

池化层的作用:
(1)压缩数据和参数的量,减小过拟合。
(2)增大感受野。

主要两种方法:Max Pooling 和 Average Pooling

1、Dilation卷积

膨胀卷积的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。在自然语言处理中需要较长的sequence信息依赖的问题中,都能很好的应用。

tensorflow中的代码为:

tf.nn.atrous_conv2d(
    value,
    filters,
    rate,
    padding,
    name=None
)

参数说明:
value: 输入的卷积图像,[batch, height, width, channels]。
filters: 卷积核,[filter_height, filter_width, channels, out_channels],通常NLP相关height设为1。
rate: 正常的卷积通常会有stride,即卷积核滑动的步长,而膨胀卷积通过定义卷积核当中穿插的rate-1个0的个数,实现对原始数据采样间隔变大,一定要注意这里的rate不是指比率,是一个数。
padding: ”SAME”:补零 ; ”VALID”:丢弃多余的

2、IDCNN(Iterated Dilated CNN)

IDCNN模型一般是由多个具有相同结构的膨胀卷积块拼接在一起,而每个膨胀卷积块里面则使用多层的膨胀卷积层,每层卷积的输入都是上一层的输出,并且每层的rate可以不同。

在拼接的时候要注意拼接的是通道所在维度,用tf.concat(axis=?,values=[… , … , … , …])拼接

学习自:
作者:禅在心中 https://www.cnblogs.com/pinking/p/9192546.html

猜你喜欢

转载自blog.csdn.net/m0_38088359/article/details/83540109