繁体   English   中英

tf.nn.convolution和tf.nn.conv2d有什么区别?

[英]what is the difference between tf.nn.convolution and tf.nn.conv2d?

我想对特征进行膨胀卷积。 在张量流中,我找到了tf.nn.convolutiontf.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_ratetf.nn.convolution以及ratetf.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM