N-D T 類型張量的 BatchToSpace。
用法
tf.raw_ops.BatchToSpaceND(
input, block_shape, crops, name=None
)參數
-
input一個Tensor。 N-D 形狀為input_shape = [batch] + spatial_shape + remaining_shape,其中 spatial_shape 具有 M 維。 -
block_shape一個Tensor。必須是以下類型之一:int32,int64。形狀為[M]的一維,所有值必須 >= 1。 -
cropsATensor.必須是以下類型之一:int32,int64.二維與形狀[M, 2],所有值必須 >= 0。crops[i] = [crop_start, crop_end]指定從輸入維度裁剪的數量i + 1, 對應於空間維度i.要求crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1].此操作等效於以下步驟:
將
input重塑為reshaped的形狀:[block_shape[0], ..., block_shape[M-1], batch /prod(block_shape), input_shape[1], ..., input_shape[N-1] ]置換
reshaped的尺寸以產生形狀為[batch /prod(block_shape) 的permuted,input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1],
輸入形狀[M+1], ..., 輸入形狀[N-1]]
重塑
permuted以產生形狀為 [batch /prod(block_shape) 的reshaped_permuted,input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1],
輸入形狀[M+1], ..., 輸入形狀[N-1]]
根據
crops裁剪reshaped_permuted的維度[1, ..., M]的開始和結束以產生shape的輸出:[batch /prod(block_shape),input_shape[1] * block_shape[0] - 裁剪[0,0] - 裁剪[0,1], ..., input_shape[M] * block_shape[M-1] - 裁剪[M-1,0] - 裁剪[M-1,1],
輸入形狀[M+1], ..., 輸入形狀[N-1]]
一些例子:
(1) 對於以下形狀
[4, 1, 1, 1],block_shape = [2, 2]和crops = [[0, 0], [0, 0]]的輸入:[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]輸出張量的形狀為
[1, 2, 2, 1]和值:x = [[[[1], [2]], [[3], [4]]]](2) 對於以下形狀
[4, 1, 1, 3],block_shape = [2, 2]和crops = [[0, 0], [0, 0]]的輸入:[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]輸出張量的形狀為
[1, 2, 2, 3]和值:x = [[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]](3) 對於以下形狀
[4, 2, 2, 1],block_shape = [2, 2]和crops = [[0, 0], [0, 0]]的輸入:x = [[[[1], [3]], [[9], [11]]], [[[2], [4]], [[10], [12]]], [[[5], [7]], [[13], [15]]], [[[6], [8]], [[14], [16]]]]輸出張量的形狀為
[1, 4, 4, 1]和值:x = [[[[1], [2], [3], [4]], [[5], [6], [7], [8]], [[9], [10], [11], [12]], [[13], [14], [15], [16]]]](4) 對於以下形狀
[8, 1, 3, 1],block_shape = [2, 2]和crops = [[0, 0], [2, 0]]的輸入:x = [[[[0], [1], [3]]], [[[0], [9], [11]]], [[[0], [2], [4]]], [[[0], [10], [12]]], [[[0], [5], [7]]], [[[0], [13], [15]]], [[[0], [6], [8]]], [[[0], [14], [16]]]]輸出張量的形狀為
[2, 2, 4, 1]和值:x = [[[[1], [2], [3], [4]], [[5], [6], [7], [8]]], [[[9], [10], [11], [12]], [[13], [14], [15], [16]]]] -
name操作的名稱(可選)。
返回
-
一個
Tensor。具有與input相同的類型。
此操作將 "batch" 維度 0 重塑為形狀 block_shape + [batch] 的 M + 1 維度,將這些塊交錯回到由空間維度 [1, ..., M] 定義的網格中,以獲得與輸入具有相同等級的結果。然後根據crops 選擇性地裁剪此中間結果的空間維度以生成輸出。這與 SpaceToBatch 正好相反。請參閱下麵的詳細說明。
相關用法
- Python tf.raw_ops.BatchToSpace用法及代碼示例
- Python tf.raw_ops.BatchMatMul用法及代碼示例
- Python tf.raw_ops.BatchFunction用法及代碼示例
- Python tf.raw_ops.BatchMatMulV3用法及代碼示例
- Python tf.raw_ops.BatchMatMulV2用法及代碼示例
- Python tf.raw_ops.Bitcast用法及代碼示例
- Python tf.raw_ops.BitwiseAnd用法及代碼示例
- Python tf.raw_ops.BlockLSTM用法及代碼示例
- Python tf.raw_ops.BlockLSTMV2用法及代碼示例
- Python tf.raw_ops.BitwiseOr用法及代碼示例
- Python tf.raw_ops.BitwiseXor用法及代碼示例
- Python tf.raw_ops.BroadcastTo用法及代碼示例
- Python tf.raw_ops.TPUReplicatedInput用法及代碼示例
- Python tf.raw_ops.SelfAdjointEigV2用法及代碼示例
- Python tf.raw_ops.OneHot用法及代碼示例
- Python tf.raw_ops.ResourceScatterNdSub用法及代碼示例
- Python tf.raw_ops.ReadVariableXlaSplitND用法及代碼示例
- Python tf.raw_ops.GatherV2用法及代碼示例
- Python tf.raw_ops.Expm1用法及代碼示例
- Python tf.raw_ops.UniqueWithCounts用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.raw_ops.BatchToSpaceND。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
