aliran tensor:: operasi:: BatchToSpaceND

#include <array_ops.h>

BatchToSpace untuk tensor ND tipe T.

Ringkasan

Operasi ini membentuk ulang dimensi "batch" 0 menjadi M + 1 dimensi bentuk block_shape + [batch] , menyisipkan blok-blok ini kembali ke dalam kisi yang ditentukan oleh dimensi spasial [1, ..., M] , untuk mendapatkan hasil dengan peringkat yang sama dengan input. Dimensi spasial dari hasil antara ini kemudian secara opsional dipotong menurut crops untuk menghasilkan keluaran. Ini adalah kebalikan dari SpaceToBatch. Lihat di bawah untuk deskripsi yang tepat.

Argumen:

  • ruang lingkup: Objek Lingkup
  • input: ND dengan bentuk input_shape = [batch] + spatial_shape + remaining_shape , dimana spasial_shape memiliki dimensi M.
  • block_shape: 1-D dengan bentuk [M] , semua nilai harus >= 1.
  • tanaman: 2-D dengan bentuk [M, 2] , semua nilai harus >= 0. crops[i] = [crop_start, crop_end] menentukan jumlah yang akan dipotong dari dimensi masukan i + 1 , yang sesuai dengan dimensi spasial i . Diperlukan crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1] .

Operasi ini setara dengan langkah-langkah berikut:

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

Beberapa contoh:

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

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

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

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

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

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

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

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

(3) Untuk input bentuk [4, 2, 2, 1] berikut, 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 keluaran 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 masukan bentuk [8, 1, 3, 1] berikut, 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 keluaran 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]]]]

Pengembalian:

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::Masukan

 operator::tensorflow::Input() const 

operator::tensorflow::Keluaran

 operator::tensorflow::Output() const