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中定义输出形状
发布于 2019-08-20 00:25:19
它们之间有很大的不同。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是公式。
https://stackoverflow.com/questions/53667147
复制相似问题