【问题标题】:The difference between tf.nn.conv2d_transpose and slim.conv2d_transposetf.nn.conv2d_transpose 和 slim.conv2d_transpose 的区别
【发布时间】:2018-12-07 09:57:27
【问题描述】:

Tensorflow中这两个函数有什么区别

tf.nn.conv2d_transpose(
    value,
    filter,
    output_shape,
    strides,
    padding='SAME',
    data_format='NHWC',
    name=None
)

完整的定义在tf.nn.conv2d_transpose slim.conv2d_transpose 定义如下:

tf.layers.conv2d_transpose(
    inputs,
    filters,
    kernel_size,
    strides=(1, 1),
    padding='valid',
    data_format='channels_last',
    activation=None,
    use_bias=True,
    kernel_initializer=None,
    bias_initializer=tf.zeros_initializer(),
    kernel_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    kernel_constraint=None,
    bias_constraint=None,
    trainable=True,
    name=None,
    reuse=None
)

完整的定义在slim.conv2d_transpose

如何在 slim.conv2d_transpose 中定义输出形状

【问题讨论】:

    标签: tensorflow deconvolution


    【解决方案1】:

    它们之间存在显着差异。 tf.nn.conv2d_transpose 表示计算图中的一个操作,tf.layers.conv2d_transpose 定义了整个层。

    更精确的tf.nn.conv2d_transpose 将卷积filter 应用于inputs

    另一方面,tf.layers.conv2d_transpose 首先根据给定的参数创建用作filter 的可训练变量,然后在内部调用一些conv2d_transpose 操作。根据参数,它还应用了一些其他操作,例如添加偏差、应用非线性或对权重或输入进行归一化。

    对于tf.layers.conv2d_transpose,您无需指定output shape,因为它是根据过滤器大小、输入大小和步幅计算得出的。 Here 是公式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 2011-10-20
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多