[英]what is the difference between tf.nn.convolution and tf.nn.conv2d?
我想对特征进行膨胀卷积。 在张量流中,我找到了tf.nn.convolution
和tf.nn.conv2d
。 但是tf.nn.conv2d
似乎不支持膨胀卷积。
所以我尝试使用tf.nn.convolution
。
以下2种配方的结果相同吗?
tf.nn.conv2d(x, w, strides=[1, 1, 2, 2], padding='SAME',data_format='NCHW')
tf.nn.convolution(x, w, strides=[1, 1, 2, 2], padding='SAME',data_format='NCHW')
要使用膨胀卷积,您需要使用以下函数:
tf.nn.atrous_conv2d(value, filters, rate, padding, name=None)
参考: https : //www.tensorflow.org/versions/r0.12/api_docs/python/nn/convolution#atrous_conv2d
在功能上, dilations
在augument tf.nn.conv2d
相同dilations_rate
在tf.nn.convolution
以及rate
在tf.nn.atrous_conv2d
。
它们都代表了通过在高度和宽度尺寸上插入零来对滤波器值进行升采样的速率。 输入每个维度的膨胀因子指定了滤波器的上采样/输入下采样率,否则称为无规则卷积。
用法略有不同。 令率k >= 1
表示扩张率,
在tf.nn.conv2d
,速率k
作为[batch, rate_height, rate_width, channel]
的整数[1, k, k,1]
列表传递。
在tf.nn.convolution
,速率k
作为N
整数序列作为[rate_height, rate_width]
[k,k]
[rate_height, rate_width]
。
在tf.nn.atrous_conv2d
,比率k
为正int32
,即高度和宽度的单个值。 该库已弃用,仅出于向后兼容的目的存在。
希望能帮助到你 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.