DepthToSpace 用於 T 類型的張量。
用法
tf.nn.depth_to_space(
input, block_size, data_format='NHWC', name=None
)參數
-
input一個Tensor。 -
block_sizeint即>= 2。空間塊的大小,與 Space2Depth 相同。 -
data_format一個可選的string來自:"NHWC", "NCHW", "NCHW_VECT_C"。默認為"NHWC"。 -
name操作的名稱(可選)。
返回
-
一個
Tensor。具有與input相同的類型。
將數據從深度重新排列到空間數據塊中。這是 SpaceToDepth 的逆向變換。更具體地說,此操作輸出輸入張量的副本,其中來自 depth 維度的值在空間塊中移動到 height 和 width 維度。 attr block_size 指示輸入塊大小以及數據的移動方式。
- 來自深度的大小為
block_size * block_size的數據塊被重新排列為大小為block_size x block_size的非重疊塊 - 輸出張量的寬度是
input_depth * block_size,而高度是input_height * block_size。 - 輸出圖像的每個塊內的 Y、X 坐標由輸入通道索引的高階分量確定。
- 輸入張量的深度必須能被
block_size * block_size整除。
data_format attr 使用以下選項指定輸入和輸出張量的布局: "NHWC": [ batch, height, width, channels ] "NCHW": [ batch, channels, height, width ] "NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]
將操作視為轉換 6-D 張量很有用。例如對於data_format = NHWC,輸入張量中的每個元素都可以通過 6 個坐標指定,按內存布局重要性遞減順序排列為:n,iY,iX,bY,bX,oC(其中 n=batch index,iX,iY 表示輸入圖像內的 X 或 Y 坐標,bX,bY 表示輸出塊內的坐標,oC 表示輸出通道)。輸出將是轉換為以下布局的輸入:n,iY,bY,iX,bX,oC
此操作對於調整卷積之間的激活大小(但保留所有數據)很有用,例如而不是池化。它對於訓練純卷積模型也很有用。
例如,給定形狀為 [1, 1, 1, 4] 的輸入,data_format = "NHWC" 和 block_size = 2:
x = [[[[1, 2, 3, 4]]]]
此操作將輸出形狀為 [1, 2, 2, 1] 的張量:
[[[[1], [2]],
[[3], [4]]]]
在這裏,輸入有一個批次 1,每個批次元素的形狀為 [1, 1, 4] ,相應的輸出將有 2x2 個元素,並且深度為 1 個通道(1 = 4 / (block_size * block_size) )。輸出元素形狀為 [2, 2, 1] 。
對於深度較大的輸入張量,這裏的形狀為 [1, 1, 1, 12] ,例如
x = [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
對於塊大小為 2,此操作將返回以下形狀的張量 [1, 2, 2, 3]
[[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]]
同樣,對於以下形狀 [1 2 2 4] 的輸入,塊大小為 2:
x = [[[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[9, 10, 11, 12],
[13, 14, 15, 16]]]]
運算符將返回以下形狀的張量 [1 4 4 1] :
x = [[[ [1], [2], [5], [6]],
[ [3], [4], [7], [8]],
[ [9], [10], [13], [14]],
[ [11], [12], [15], [16]]]]
相關用法
- Python tf.nn.depthwise_conv2d用法及代碼示例
- Python tf.nn.dropout用法及代碼示例
- Python tf.nn.dilation2d用法及代碼示例
- Python tf.nn.embedding_lookup_sparse用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper.set_weights用法及代碼示例
- Python tf.nn.gelu用法及代碼示例
- Python tf.nn.RNNCellDeviceWrapper.set_weights用法及代碼示例
- Python tf.nn.embedding_lookup用法及代碼示例
- Python tf.nn.RNNCellDeviceWrapper.get_weights用法及代碼示例
- Python tf.nn.local_response_normalization用法及代碼示例
- Python tf.nn.scale_regularization_loss用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper.add_loss用法及代碼示例
- Python tf.nn.max_pool用法及代碼示例
- Python tf.nn.RNNCellDropoutWrapper.set_weights用法及代碼示例
- Python tf.nn.l2_loss用法及代碼示例
- Python tf.nn.log_softmax用法及代碼示例
- Python tf.nn.weighted_cross_entropy_with_logits用法及代碼示例
- Python tf.nn.ctc_greedy_decoder用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper.get_weights用法及代碼示例
- Python tf.nn.compute_average_loss用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.nn.depth_to_space。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
