tf.layers.conv2d与tf.nn.conv2d的参数列表对比:
tf.layers.conv2d | tf.nn.conv2d |
tf.layers.conv2d(inputs, filters, kernel_size, strides=(1,1), padding='valid',data_format='channels_last', dilation_rate=(1,1), activation=None, use_bias=True, kernel_initializer=None, bias_initializer=init_ops.zeros_initializer(), activity_regularizer=None, trainable=True, name=None, reuse=None) | tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None) |
对于卷积来说,作用是一样的。tf.layers.conv2d 使用tf.nn.convolution作为后端。
一个参数要注意一下:
tf.nn.conv2d的filters是一个4维张量,其type必须和输入一样
[filter_height, filter_width, in_channels, out_channels]
tf.layers.conv2d 的 filter为一个整数,输出空间的维度,也就是卷积核的数量