Tensorflow API ------tf.layers.conv2d
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=<tensorflow.python.ops.init_ops.Zeros object at 0x000002596A1FD898>, kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, trainable=True, name=None, reuse=None)
##作用
2D 卷積層的函式介面
這個層建立了一個卷積核,將輸入進行卷積來輸出一個 tensor。如果 use_bias
是 True
(且提供了 bias_initializer
),則一個偏差向量會被加到輸出中。最後,如果 activation
不是 None
,啟用函式也會被應用到輸出中。
##引數inputs
:Tensor 輸入
filters
:整數,表示輸出空間的維數(即卷積過濾器的數量)
kernel_size
:一個整數,或者包含了兩個整數的元組/佇列,表示卷積窗的高和寬。如果是一個整數,則寬高相等。
strides
:一個整數,或者包含了兩個整數的元組/佇列,表示卷積的縱向和橫向的步長。如果是一個整數,則橫縱步長相等。另外, strides
dilation_rate
不等於1 這兩種情況不能同時存在。
padding
:"valid"
或者 "same"
(不區分大小寫)。"valid"
表示不夠卷積核大小的塊就丟棄,"same"
表示不夠卷積核大小的塊就補0。"valid"
的輸出形狀為
"same"
的輸出形狀為
其中,L 為輸入的 size(高或寬),F為 filter 的 size,S為 strides 的大小, ceil() 為向上取整。
data_format
:channels_last
或者 channels_first
,表示輸入維度的排序。
`channels_last` corresponds to inputs with shape; `(batch, height, width, channels)` while `channels_first` corresponds to inputs with shape `(batch, channels, height, width)`.
dilation_rate
:一個整數,或者包含了兩個整數的元組/佇列,表示使用擴張卷積時的擴張率。如果是一個整數,則所有方向的擴張率相等。另外, strides
不等於1 和 dilation_rate
不等於1 這兩種情況不能同時存在。
activation
:啟用函式。如果是None
則為線性函式。
use_bias
:Boolean
型別,表示是否使用偏差向量。
kernel_initializer
:卷積核的初始化。
bias_initializer
:偏差向量的初始化。如果是None
,則使用預設的初始值。
kernel_regularizer
:卷積核的正則項
bias_regularizer
:偏差向量的正則項
activity_regularizer
:輸出的正則函式
kernel_constraint
:對映函式,當核被Optimizer
更新後應用到核上。Optimizer
用來實現對權重矩陣的範數約束或者值約束。對映函式必須將未被影射的變數作為輸入,且一定輸出對映後的變數(有相同的大小)。做非同步的分散式訓練時,使用約束可能是不安全的。
bias_constraint
:對映函式,當偏差向量被Optimizer
更新後應用到偏差向量上。
trainable
:Boolean
型別。
name
:字串,層的名字。
reuse
:Boolean
型別,表示是否可以重複使用具有相同名字的前一層的權重。
##返回值
輸出 Tensor
##異常丟擲ValueError
:if eager execution is enabled.