SpaceToBatchNd

kelas akhir publik SpaceToBatchNd

SpaceToBatch untuk tensor ND tipe T.

Operasi ini membagi dimensi "spasial" `[1, ..., M]` dari masukan ke dalam kisi-kisi blok berbentuk `block_shape`, dan menyisipkan blok-blok ini dengan dimensi "batch" (0) sedemikian rupa sehingga pada keluaran , dimensi spasial `[1, ..., M]` sesuai dengan posisi dalam grid, dan dimensi kumpulan menggabungkan posisi dalam blok spasial dan posisi kumpulan asli. Sebelum dibagi menjadi beberapa blok, dimensi spasial masukan secara opsional diberi bantalan nol menurut `paddings`. Lihat di bawah untuk deskripsi yang tepat.

Operasi ini setara dengan langkah-langkah berikut:

1. Zero-pad pada awal dan akhir dimensi `[1, ..., M]` dari input sesuai dengan `paddings` untuk menghasilkan `padded` dengan bentuk `padded_shape`.

2. Bentuk ulang bentuk `padded` menjadi `reshape_padded`:

[batch] + [padded_shape[1] / block_shape[0], block_shape[0], ..., padded_shape[M] / block_shape[M-1], block_shape[M-1]] + sisa_shape

3. Ubah dimensi `reshape_padded` untuk menghasilkan bentuk `permuted_reshape_padded`:

block_shape + [batch] + [padded_shape[1] / block_shape[0], ..., padded_shape[M] / block_shape[M-1]] + sisa_shape

4. Bentuk ulang `permuted_resized_padded` untuk meratakan `block_shape` ke dalam dimensi batch, sehingga menghasilkan output tensor berbentuk:

[batch * prod(block_shape)] + [padded_shape[1] / block_shape[0], ..., padded_shape[M] / block_shape[M-1]] + sisa_shape

Beberapa contoh:

(1) Untuk input bentuk `[1, 2, 2, 1]`, `block_shape = [2, 2]`, dan `paddings = [[0, 0], [0, 0]]` berikut:

x = [[[[1], [2]], [[3], [4]]]]
 
Tensor keluaran mempunyai bentuk `[4, 1, 1, 1]` dan nilai:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
 
(2) Untuk masukan bentuk berikut `[1, 2, 2, 3]`, `block_shape = [ 2, 2]`, dan `paddings = [[0, 0], [0, 0]]`:
x = [[[[1, 2, 3], [4, 5, 6]],
       [[7, 8, 9], [10, 11, 12]]]]
 
Tensor keluaran berbentuk `[4, 1, 1, 3]` dan nilai:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
 
(3) Untuk input bentuk `[1, 4, 4, 1]`, `block_shape = [2, 2]`, dan `paddings = [[0, 0], [0, 0]]` berikut:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]],
       [[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
Tensor keluaran mempunyai bentuk `[4, 2, 2, 1]` dan nilai:
x = [[[[1], [3]], [[9], [11]]],
      [[[2], [4]], [[10], [12]]],
      [[[5], [7]], [[13], [15]]],
      [[[6], [8]], [[14], [16]]]]
 
(4) Untuk masukan bentuk `[2, 2, 4, 1]` berikut, block_shape = `[ 2, 2]`, dan paddings = `[[0, 0], [2, 0]]`:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]]],
      [[[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
Tensor keluaran berbentuk `[8, 1, 3, 1]` dan nilai:
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]]]]
 
Operasi ini antara lain berguna untuk mereduksi konvolusi atrous menjadi konvolusi reguler.

Metode Publik

Keluaran <T>
sebagai Keluaran ()
Mengembalikan pegangan simbolik tensor.
statis <T, U memperluas Nomor, V memperluas Nomor> SpaceToBatchNd <T>
buat ( Lingkup lingkup, masukan Operan <T>, Operan <U> blockShape, padding Operan <V>)
Metode pabrik untuk membuat kelas yang membungkus operasi SpaceToBatchNd baru.
Keluaran <T>

Metode Warisan

Metode Publik

Keluaran publik <T> sebagai Keluaran ()

Mengembalikan pegangan simbolik tensor.

Masukan ke operasi TensorFlow adalah keluaran dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.

public static SpaceToBatchNd <T> buat ( Lingkup lingkup, masukan Operan <T>, Operan <U> blockShape, padding Operan <V>)

Metode pabrik untuk membuat kelas yang membungkus operasi SpaceToBatchNd baru.

Parameter
cakupan ruang lingkup saat ini
memasukkan ND dengan bentuk `input_shape = [batch] + spasial_shape + sisa_shape`, dengan spasial_shape memiliki dimensi `M`.
bentuk blok 1-D dengan bentuk `[M]`, semua nilai harus >= 1.
bantalan 2-D dengan bentuk `[M, 2]`, semua nilai harus >= 0. `paddings[i] = [pad_start, pad_end]` menentukan padding untuk dimensi input `i + 1`, yang sesuai dengan dimensi spasial 'saya'. `block_shape[i]` harus membagi `input_shape[i + 1] + pad_start + pad_end`.
Kembali
  • contoh baru SpaceToBatchNd

Keluaran publik <T> keluaran ()