T 型の ND テンソルの BatchToSpace。
この操作は、「バッチ」次元 0 を形状 `block_shape + [batch]` の `M + 1` 次元に再形成し、これらのブロックを空間次元 `[1, ..., M]` で定義されたグリッドにインターリーブして戻します。入力と同じランクの結果を取得します。この中間結果の空間次元は、出力を生成するために「クロップ」に従ってオプションでトリミングされます。これは SpaceToBatch の逆です。正確な説明については、以下を参照してください。
パブリックメソッド
出力<T> | asOutput () テンソルのシンボリック ハンドルを返します。 |
static <T, U は数値を拡張、V は数値を拡張> BatchToSpaceNd <T> | |
出力<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]]` の入力の場合:
|
返品
- BatchToSpaceNd の新しいインスタンス