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

2019-02-12 18:05 更新

tf.nn.space_to_batch函數(shù)

別名:

  • tf.nn.space_to_batch
  • tf.space_to_batch
tf.nn.space_to_batch(
    input,
    paddings,
    block_size,
    name=None
)

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

類型為T(mén)的4-D張量的SpaceToBatch。

這是更通用的SpaceToBatchND的遺留版本。

零填充然后將空間數(shù)據(jù)的塊重新排列(置換)為批處理。更具體地說(shuō),該操作輸出輸入張量的副本,其中來(lái)自height和width維度的值被移動(dòng)到batch維度。在零填充之后,輸入的兩個(gè)height和width必須可以被塊大小整除。

參數(shù):

  • input:一個(gè)4-D Tensor,shape為[batch, height, width, depth]。
  • paddings:一個(gè)Tensor。必須是以下類型之一:int32,int64。是shape為[2, 2]的非負(fù)整數(shù)的2-D張量。它在空間維度上用零指定輸入的填充,如下所示:
    paddings = [[pad_top, pad_bottom], [pad_left, pad_right]]

    零填充輸入張量的有效空間維度將是:

    height_pad = pad_top + height + pad_bottom
    width_pad = pad_left + width + pad_right

    attr block_size必須大于1。它表示塊大小。

    • height和width維度中大小為block_size x block size的非重疊塊將重新排列到每個(gè)位置的批處理維度中。
    • 輸出張量的批處理是batch * block_size * block_size。
    • height_pad和width_pad都必須可被block_size整除。
    輸出的shape將是:
    [batch*block_size*block_size, height_pad/block_size, width_pad/block_size,
     depth]

    一些例子:
    (1)對(duì)于以下shape為[1, 2, 2, 1]和block_size為2的輸入:

    x = [[[[1], [2]], [[3], [4]]]]

    輸出張量具有shape [4, 1, 1, 1]和值:

    [[[[1]]], [[[2]]], [[[3]]], [[[4]]]]

    (2)對(duì)于以下shape為[1, 2, 2, 3]和block_size為2的輸入:

    x = [[[[1, 2, 3], [4, 5, 6]],
          [[7, 8, 9], [10, 11, 12]]]]

    輸出張量具有shape [4, 1, 1, 3]和值:

    [[[1, 2, 3]], [[4, 5, 6]], [[7, 8, 9]], [[10, 11, 12]]]

    (3)對(duì)于以下shape為[1, 4, 4, 1]和block_size為2的輸入:

    x = [[[[1],   [2],  [3],  [4]],
          [[5],   [6],  [7],  [8]],
          [[9],  [10], [11],  [12]],
          [[13], [14], [15],  [16]]]]

    輸出張量具有shape [4, 2, 2, 1]和值:

    x = [[[[1], [3]], [[9], [11]]],
         [[[2], [4]], [[10], [12]]],
         [[[5], [7]], [[13], [15]]],
         [[[6], [8]], [[14], [16]]]]

    (4)對(duì)于以下shape為[2, 2, 4, 1]和block_size為2的輸入:

    x = [[[[1],   [2],  [3],  [4]],
          [[5],   [6],  [7],  [8]]],
         [[[9],  [10], [11],  [12]],
          [[13], [14], [15],  [16]]]]

    輸出張量具有shape[8, 1, 2, 1]和值:

    x = [[[[1], [3]]], [[[9], [11]]], [[[2], [4]]], [[[10], [12]]],
         [[[5], [7]]], [[[13], [15]]], [[[6], [8]]], [[[14], [16]]]]

    其中,該操作對(duì)于將atrous卷積減少為regular卷積是有用的。

  • block_size:>= 2的int。
  • name:操作的名稱(可選)。

返回:

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


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)