テンソルフロー::作戦::宇宙へバッチND
#include <array_ops.h>T 型の ND テンソルのBatchToSpace。
まとめ
この操作は、「バッチ」次元 0 をM + 1次元の形状block_shape + [batch]に再形成し、これらのブロックを空間次元[1, ..., M]で定義されたグリッドにインターリーブして戻し、次の結果を取得します。入力と同じランク。この中間結果の空間次元は、出力を生成するためのcropsに従ってオプションでトリミングされます。これは SpaceToBatch の逆です。正確な説明については、以下を参照してください。
引数:
- スコープ:スコープオブジェクト
 - input: 形状を持つ ND 
input_shape = [batch] + spatial_shape + remaining_shape、ここで spatial_shape には M 次元があります。 -  block_shape: 形状
[M]の 1 次元、すべての値は 1 以上である必要があります。 -  Crops: 形状
[M, 2]の 2 次元、すべての値は >= 0 である必要がありますcrops[i] = [crop_start, crop_end]は、空間次元iに対応する入力次元i + 1から切り取る量を指定します。crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]ことが必要です。 
この操作は次の手順と同等です。
-  
input再形成して形状をreshaped: [block_shape[0], ..., block_shape[M-1],バッチ / prod(block_shape), input_shape[1], ..., input_shape[N-1]] -  
reshapedの次元を並べ替えて、permuted形状を生成します [batch / prod(block_shape),input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1],input_shape[M+1], ..., input_shape[N-1]] - 形状を並べ替えて、形状 [batch / prod(block_shape),input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1],input_shape[M+1], .. の
reshaped_permutedpermuted生成します。 ., input_shape[N-1]] -  
cropsに従ってreshaped_permutedの次元[1, ..., M]の開始と終了を切り取り、形状の出力を生成します: [batch / prod(block_shape),input_shape[1] * block_shape[0] - Crops[0, 0] - 作物[0,1], ..., input_shape[M] * block_shape[M-1] - 作物[M-1,0] - 作物[M-1,1],input_shape[M+1] , ..., input_shape[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]]]]戻り値:
-  
Output: 出力テンソル。 
コンストラクターとデストラクター | |
|---|---|
BatchToSpaceND (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input block_shape, :: tensorflow::Input crops) | 
パブリック属性 | |
|---|---|
operation | |
 output | |
公共機能 | |
|---|---|
node () const | ::tensorflow::Node * | 
 operator::tensorflow::Input () const | |
 operator::tensorflow::Output () const |  |
パブリック属性
手術
Operation operation
出力
::tensorflow::Output output
公共機能
宇宙へバッチND
BatchToSpaceND( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input block_shape, ::tensorflow::Input crops )
ノード
::tensorflow::Node * node() const
演算子::tensorflow::入力
operator::tensorflow::Input() const
演算子::tensorflow::出力
operator::tensorflow::Output() const