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

2019-02-12 18:05 更新

tf.nn.space_to_depth函數(shù)

別名:

  • tf.nn.space_to_depth
  • tf.space_to_depth
tf.nn.space_to_depth(
    input,
    block_size,
    name=None,
    data_format='NHWC'
)

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

T型張量的SpaceToDepth

將空間數(shù)據(jù)塊重新排列為深度。更具體地說,該操作輸出輸入張量的副本,其中來自height 和width維度的值被移動(dòng)到depth維度。attr block_size表示輸入塊大小。

  • 大小為block_size x block size的非重疊塊在每個(gè)位置重新排列為深度。
  • 輸出張量的深度是block_size * block_size * input_depth。
  • 輸入的每個(gè)塊內(nèi)的Y,X坐標(biāo)成為輸出通道索引的高階分量。
  • 輸入張量的height和width必須可被block_size整除。

data_format屬性指定輸入和輸出張量的布局與下列選項(xiàng):

  • “NHWC”:[ batch, height, width, channels ]
  • “NCHW”:[ batch, channels, height, width ] 
  • “NCHW_VECT_C”: qint8 [ batch, channels / 4, height, width, 4 ]

將操作視為轉(zhuǎn)換6-D張量很有用。例如,對(duì)于data_format = NHWC,輸入張量中的每個(gè)元素都可以通過6個(gè)坐標(biāo)指定,通過降低內(nèi)存布局的重要性來排序:n,oY,bY,oX,bX,iC(其中n =批處理索引,oX,oY表示輸出圖像中的X或Y坐標(biāo),bX,bY表示輸入塊內(nèi)的坐標(biāo),iC表示輸入通道)。輸出將是以下布局的轉(zhuǎn)置:n,oY,oX,bY,bX,iC

此操作對(duì)于調(diào)整卷積之間的激活(但保留所有數(shù)據(jù))非常有用,例如,不是池化。它對(duì)于訓(xùn)練purely卷積模型也很有用。

例如,給定一個(gè)輸入,其shape為[1, 2, 2, 1],data_format =“NHWC”和block_size = 2:

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

此操作將輸出一個(gè)shape為[1, 1, 1, 4]的張量:

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

這里,輸入的批處理為1,每個(gè)批處理元素都有shape [2, 2, 1],相應(yīng)的輸出將具有單個(gè)元素(即width和height均為1),并且深度為4個(gè)通道(1 * block_size * block_size)。輸出元素的shape是[1, 1, 4]。

對(duì)于具有較大深度的輸入張量,這里的shape為[1, 2, 2, 3],例如:

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

對(duì)于block_size為2,此操作將返回以下shape為[1, 1, 1, 12]的張量:

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

同樣,對(duì)于以下shape為[1 4 4 1],且塊大小為2的輸入:

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

操作符將返回以下shape為[1 2 2 4]的張量:

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

參數(shù):

  • input:一個(gè)Tensor。
  • block_size:>= 2的int。空間塊的大小。
  • data_format:可選的string,可以是:"NHWC", "NCHW", "NCHW_VECT_C"。默認(rèn)為"NHWC"。
  • name:操作的名稱(可選)。

返回:

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


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)