tensorflow::ops::BatchToSpaceND

#include <array_ops.h>

BatchToSpace untuk tensor ND tipe T.

Ringkasan

Operasi ini membentuk ulang dimensi "batch" 0 menjadi M + 1 dimensi dengan bentuk block_shape + [batch] , menyusun kembali blok-blok ini ke dalam grid yang ditentukan oleh dimensi spasial [1, ..., M] , untuk mendapatkan hasil dengan rank yang sama dengan input. Dimensi spasial dari hasil perantara ini kemudian secara opsional dipotong sesuai dengan crops untuk menghasilkan output. Ini adalah kebalikan dari SpaceToBatch. Lihat di bawah untuk deskripsi yang lebih tepat.

Argumen:

  • Cakupan: Objek Cakupan
  • input: ND dengan bentuk input_shape = [batch] + spatial_shape + remaining_shape , di mana spatial_shape memiliki M dimensi.
  • block_shape: 1-D dengan bentuk [M] , semua nilai harus >= 1.
  • crops: 2-D dengan bentuk [M, 2] , semua nilai harus >= 0. crops[i] = [crop_start, crop_end] menentukan jumlah yang akan dipangkas dari dimensi input i + 1 , yang sesuai dengan dimensi spasial i . Persyaratan yang harus dipenuhi adalah crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1] .

Operasi ini setara dengan langkah-langkah berikut:

  1. Ubah bentuk input menjadi bentuk reshaped : [block_shape[0], ..., block_shape[M-1], batch / prod(block_shape), input_shape[1], ..., input_shape[N-1]]
  2. Susun ulang dimensi yang reshaped untuk menghasilkan permuted bentuk [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]]
  3. Ubah bentuk permuted untuk menghasilkan reshaped_permuted dengan bentuk [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]]
  4. Pangkas awal dan akhir dimensi [1, ..., M] dari reshaped_permuted sesuai dengan crops untuk menghasilkan output bentuk: [batch / prod(block_shape),input_shape[1] * block_shape[0] - crops[0,0] - crops[0,1], ..., input_shape[M] * block_shape[M-1] - crops[M-1,0] - crops[M-1,1],input_shape[M+1], ..., input_shape[N-1]]

Beberapa contoh:

(1) Untuk input berikut dengan bentuk [4, 1, 1, 1] , block_shape = [2, 2] , dan crops = [[0, 0], [0, 0]] :

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

Tensor keluarannya memiliki bentuk [1, 2, 2, 1] dan nilai:

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

(2) Untuk input berikut dengan bentuk [4, 1, 1, 3] , block_shape = [2, 2] , dan crops = [[0, 0], [0, 0]] :

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

Tensor keluarannya memiliki bentuk [1, 2, 2, 3] dan nilai:

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

(3) Untuk input berikut dengan bentuk [4, 2, 2, 1] , block_shape = [2, 2] , dan crops = [[0, 0], [0, 0]] :

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

Tensor keluarannya memiliki bentuk [1, 4, 4, 1] dan nilai:

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

(4) Untuk input berikut dengan bentuk [8, 1, 3, 1] , block_shape = [2, 2] , dan 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]]]]

Tensor keluarannya memiliki bentuk [2, 2, 4, 1] dan nilai:

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

Mengembalikan:

Konstruktor dan Destruktor

BatchToSpaceND (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input block_shape, :: tensorflow::Input crops)

Atribut publik

operation
output

Fungsi publik

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

Atribut publik

operasi

Operation operation

keluaran

::tensorflow::Output output

Fungsi publik

BatchToSpaceND

 BatchToSpaceND(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input block_shape,
  ::tensorflow::Input crops
)

simpul

::tensorflow::Node * node() const 

operator::tensorflow::Input

 operator::tensorflow::Input() const 

operator::tensorflow::Output

 operator::tensorflow::Output() const