1. 程式人生 > >tensorflow學習:tf.nn.conv2d 和 tf.layers.conv2d

tensorflow學習:tf.nn.conv2d 和 tf.layers.conv2d

看了很多tensorflow卷積的例子,有的用了tf.nn.conv2d,有的用了tf.layers.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(),
                    kernel_regularizer=None,
                    bias_regularizer=None,
                    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作為後端。

一個引數要注意一下:

filter: 是一個4維張量,其type必須和輸入一樣,

    [filter_height, filter_width, in_channels, out_channels]

filters:一個整數,輸出空間的維度,也就是卷積核的數量。


tf.layers.conv2d
引數豐富,一般用於從頭訓練一個模型。 tf.nn.conv2d,一般在下載預訓練好的模型時使用。 所以,喜歡哪個就用哪個咯。