このページは Cloud Translation API によって翻訳されました。
Switch to English

tf.space_to_batch

GitHubの上のソースを表示

NDテンソル型TのためのSpaceToBatch

この操作分割「空間」の次元[1, ..., M]入力の形状のブロックのグリッドにblock_shape 、そして「バッチ」寸法(0)を用いてこれらのブロックをインタリーブこのような出力のもの、空間次元[1, ..., M]グリッド内の位置に対応し、バッチ寸法コンバイン空間ブロック内の位置と、元のバッチの位置の両方。ブロックへの分割の前に、入力の次元空間は、必要に応じてゼロに応じて埋め込まれpaddings 。正確な説明については以下を参照してください。

input A Tensor 。形状とND input_shape = [batch] + spatial_shape + remaining_shape spatial_shapeを有し、 M次元を。
block_shape A Tensor 。 :次のいずれかのタイプでなければなりませんint32int64 。形状の1-D [M] 、全ての値は> = 1でなければなりません。
paddings A Tensor 。 :次のいずれかのタイプでなければなりませんint32int64 。形状の2-D [M, 2] 、全ての値は> = 0でなければならないpaddings[i] = [pad_start, pad_end]入力寸法のためパディング指定i + 1 、空間次元に対応するi 。それが要求されるblock_shape[i]分割input_shape[i + 1] + pad_start + pad_end

この操作は、以下の手順に相当します。

  1. ゼロパッド開始および寸法の終わり[1, ..., M]によれば、入力のpaddings生成するためにpadded形状のpadded_shape

  2. リシェイプはpaddedreshaped_padded形状の:

[バッチ] + [padded_shape [1] / block_shape [0]、block_shape [0]、...、padded_shape [M] / block_shape [M-1]、block_shape [M-1] + remaining_shape

  1. 入れ替え寸法reshaped_padded生成するpermuted_reshaped_paddedの形状:

block_shape + [バッチ] + [padded_shape [1] / block_shape [0]、...、padded_shape [M] / block_shape [M-1] + remaining_shape

  1. 変形はpermuted_reshaped_padded平坦化するblock_shape形状の出力テンソルを生成する、バッチ寸法に:

[バッチ* PROD(block_shape)] + [padded_shape [1] / block_shape [0]、...、padded_shape [M] / block_shape [M-1] + remaining_shape

いくつかの例:

形状の以下の入力の場合(1) [1, 2, 2, 1] block_shape = [2, 2]及びpaddings = [[0, 0], [0, 0]]

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

出力テンソルの形状有する[4, 1, 1, 1]と値:

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

形状の次の入力(2) [1, 2, 2, 3] block_shape = [2, 2]及びpaddings = [[0, 0], [0, 0]]

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

出力テンソルの形状有する[4, 1, 1, 3]と値:

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

形状の次の入力(3) [1, 4, 4, 1] block_shape = [2, 2]及びpaddings = [[0, 0], [0, 0]]

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

出力テンソルの形状有する[4, 2, 2, 1]と値:

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

形状の次の入力(4) [2, 2, 4, 1] 、block_shape = [2, 2]及びパディング= [[0, 0], [2, 0]]

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

出力テンソルの形状有する[8, 1, 3, 1]と値:

 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]]]]
 

とりわけ、この操作は、通常のコンボリューションにatrous畳み込みを低減するために有用です。

name 操作の名前(オプション)。

A Tensor 。同じ型を持つinput