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

2019-01-31 13:46 更新

tf.nn.depthwise_conv2d_native函數(shù)

tf.nn.depthwise_conv2d_native(
    input,
    filter,
    strides,
    padding,
    data_format='NHWC',
    dilations=[1, 1, 1, 1],
    name=None
)

定義在:tensorflow/python/ops/gen_nn_ops.py.

請(qǐng)參閱指南:神經(jīng)網(wǎng)絡(luò)>卷積運(yùn)算

在給定 4-Dinputfilter張量的情況下計(jì)算 2-D 深度卷積.

給定的輸入張量的形狀為[batch, in_height, in_width, in_channels],濾波器/內(nèi)核張量的形狀為[filter_height, filter_width, in_channels, channel_multiplier],包含深度為1的in_channels卷積濾波器,depthwise_conv2d對(duì)每個(gè)輸入通道應(yīng)用不同的濾波器(從1個(gè)通道擴(kuò)展到每個(gè)通道channel_multiplier),然后將結(jié)果連接在一起.因此,輸出具有in_channels * channel_multiplier個(gè)通道.

for k in 0..in_channels-1
  for q in 0..channel_multiplier-1
    output[b, i, j, k * channel_multiplier + q] =
      sum_{di, dj} input[b, strides[1] * i + di, strides[2] * j + dj, k] *
                        filter[di, dj, k, q]

必須有strides[0] = strides[3] = 1.對(duì)于相同水平和頂點(diǎn)步幅的最常見情況是:strides = [1, stride, stride, 1].

參數(shù):

  • input:一個(gè)Tensor,必須是下列類型之一:half,bfloat16,float32,float64.
  • filter:一個(gè)Tensor,必須與input具有相同類型.
  • stridesints列表,長度為4的1-D,input每個(gè)維度的滑動(dòng)窗口的步幅.
  • paddingstring,可以是:"SAME", "VALID".要使用的填充算法的類型.
  • data_format:可選的string,可以是:"NHWC", "NCHW";默認(rèn)為"NHWC";指定輸入和輸出數(shù)據(jù)的數(shù)據(jù)格式;使用默認(rèn)格式“NHWC”,數(shù)據(jù)按以下順序存儲(chǔ):[batch, height, width, channels];或者,格式可以是“NCHW”,數(shù)據(jù)存儲(chǔ)順序?yàn)椋?span>[batch, channels, height, width].
  • dilationsints的可選列表,默認(rèn)為[1, 1, 1, 1];長度為4的1-D張量,input每個(gè)維度的擴(kuò)張系數(shù).如果設(shè)置為k> 1,則該維度上的每個(gè)濾鏡元素之間將有k-1個(gè)跳過的單元格.維度順序由值data_format確定.批次和深度尺寸的擴(kuò)張必須為1.
  • name:操作的名稱(可選).

返回:

一個(gè)Tensor,與input有相同的類型.

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)