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中定义输出形状
答案 0 :(得分: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是公式。