TensorFlow函數(shù)教程:tf.nn.separable_conv2d

2019-02-01 17:18 更新

tf.nn.separable_conv2d函數(shù)

tf.nn.separable_conv2d(
    input,
    depthwise_filter,
    pointwise_filter,
    strides,
    padding,
    rate=None,
    name=None,
    data_format=None
)

定義在:tensorflow/python/ops/nn_impl.py。

帶可分離濾波器的2-D卷積。

執(zhí)行深度卷積,該卷積分別對(duì)通道起作用,然后是混合通道的逐點(diǎn)卷積。請(qǐng)注意,這是維度[1,2]和3之間的可分離性,而不是維度1和2之間的空間可分性。

詳細(xì)地:

output[b, i, j, k] = sum_{di, dj, q, r}
    input[b, strides[1] * i + di, strides[2] * j + dj, q] *
    depthwise_filter[di, dj, q, r] *
    pointwise_filter[0, 0, q * channel_multiplier + r, k]

strides僅控制深度卷積的步幅,因?yàn)橹瘘c(diǎn)卷積具有[1,1,1,1]的隱含步幅。必須有strides[0] = strides[3] = 1。對(duì)于相同水平和垂直步幅的最常見(jiàn)情況,strides = [1, stride, stride, 1]。 如果rate中的任何值大于1,我們執(zhí)行有害的深度卷積,在這種情況下,strides張量中的所有值必須等于1。

參數(shù):

  • input:4-D Tensor,shape根據(jù)data_format決定。
  • depthwise_filter:4-D Tensor,shape為[filter_height, filter_width, in_channels, channel_multiplier]。包含深度為1的in_channels卷積濾波器。
  • pointwise_filter:4-D Tensor,shape為[1, 1, channel_multiplier * in_channels, out_channels]。點(diǎn)狀濾波器在depthwise_filter空間卷積后混合通道。
  • strides:大小為4的1-D,input的每個(gè)維度的深度卷積的步幅。
  • padding:字符串,可以是'VALID'或者'SAME'。填充算法。請(qǐng)參閱tf.nn.convolution的“返回”部分獲得詳細(xì)信息。
  • rate:大小為2的1-D。我們?cè)赼trous卷積中通過(guò)height和width維度對(duì)輸入值進(jìn)行采樣的擴(kuò)張率。如果它大于1,那么所有strides值必須為1。
  • name:此操作的名稱(chēng)(可選)。
  • data_format:輸入的數(shù)據(jù)格式。可以是“NHWC”(默認(rèn))或“NCHW”。

返回:

一個(gè)4-D的Tensor,其shape根據(jù)'data_format'決定。例如,對(duì)于data_format="NHWC",shape為[batch,out_height,out_width,out_channels]。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)