バッチからスペースNDまで

パブリック最終クラスBatchToSpaceNd

T 型の ND テンソルの BatchToSpace。

この操作は、「バッチ」次元 0 を形状 `block_shape + [batch]` の `M + 1` 次元に再形成し、これらのブロックを空間次元 `[1, ..., M]` で定義されたグリッドにインターリーブして戻します。入力と同じランクの結果を取得します。この中間結果の空間次元は、出力を生成するために「クロップ」に従ってオプションでトリミングされます。これは SpaceToBatch の逆です。正確な説明については、以下を参照してください。

パブリックメソッド

出力<T>
asOutput ()
テンソルのシンボリック ハンドルを返します。
static <T, U は数値を拡張、V は数値を拡張> BatchToSpaceNd <T>
create (スコープスコープ、オペランド<T> 入力、オペランド<U> blockShape、オペランド<V> クロップ)
新しい BatchToSpaceNd オペレーションをラップするクラスを作成するファクトリ メソッド。
出力<T>

継承されたメソッド

パブリックメソッド

public Output <T> asOutput ()

テンソルのシンボリック ハンドルを返します。

TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。

public static BatchToSpaceNd <T> create (スコープスコープ、オペランド<T> 入力、オペランド<U> blockShape、オペランド<V> クロップ)

新しい BatchToSpaceNd オペレーションをラップするクラスを作成するファクトリ メソッド。

パラメータ
範囲現在のスコープ
入力形状 `input_shape = [batch] + spatial_shape + Remaining_shape` を持つ ND。ここで、spatial_shape は M 次元を持ちます。
ブロック形状形状 `[M]` の 1-D、すべての値は >= 1 でなければなりません。
作物形状 `[M, 2]` の 2 次元、すべての値は >= 0 である必要があります。 `crops[i] = [crop_start, Crop_end]` は、入力次元 `i + 1` から切り取る量を指定します。これは、以下に対応します。空間次元「i」。 `crop_start[i] + Crop_end[i] <= block_shape[i] * input_shape[i + 1]` であることが必要です。

この操作は次の手順と同等です。

1. `input` を形状の `reshape` に変更します: [block_shape[0], ..., block_shape[M-1],バッチ / prod(block_shape), input_shape[1], ..., input_shape[N- 1]]

2. `reshape` の次元を並べ替えて、形状の `permuted` を生成します [batch / prod(block_shape),

input_shape[1]、block_shape[0]、...、input_shape[M]、block_shape[M-1]、

入力形状[M+1], ..., 入力形状[N-1]]

3. `permuted` を再形成して、形状 [batch / prod(block_shape),

input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1],

入力形状[M+1], ..., 入力形状[N-1]]

4. `crops` に従って `reshape_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]]]]
 
返品
  • BatchToSpaceNd の新しいインスタンス

public出力<T>出力()