aliran tensor:: operasi:: FractionalMaxPool

#include <nn_ops.h>

Melakukan pengumpulan maksimal pecahan pada input.

Ringkasan

Penggabungan maksimal pecahan sedikit berbeda dari penggabungan maksimal biasa. Dalam pengumpulan maksimal biasa, Anda memperkecil ukuran kumpulan masukan dengan mengambil nilai maksimum dari subbagian N x N yang lebih kecil dari kumpulan tersebut (sering kali 2x2), dan mencoba mengurangi kumpulan tersebut dengan faktor N, di mana N adalah bilangan bulat. Penggabungan maksimal pecahan, seperti yang Anda harapkan dari kata "fraksional", berarti rasio reduksi keseluruhan N tidak harus berupa bilangan bulat.

Ukuran wilayah pengumpulan dihasilkan secara acak namun cukup seragam. Sebagai contoh, mari kita lihat dimensi tinggi, dan batasan pada daftar baris yang akan menjadi batas kumpulan.

Pertama kita mendefinisikan hal berikut:

  1. input_row_length : jumlah baris dari kumpulan input
  2. output_row_length : yang akan lebih kecil dari input
  3. alpha = input_row_length / output_row_length : rasio pengurangan kami
  4. K = lantai (alfa)
  5. row_pooling_sequence : ini adalah daftar hasil baris batas kumpulan

Kemudian, row_pooling_sequence harus memenuhi:

  1. a[0] = 0 : nilai pertama barisan tersebut adalah 0
  2. a[end] = input_row_length : nilai terakhir dari urutan adalah ukurannya
  3. K <= (a[i+1] - a[i]) <= K+1 : semua interval berukuran K atau K+1
  4. panjang(urutan_penggabungan_baris) = panjang_baris keluaran+1

Untuk detail lebih lanjut tentang pengumpulan maks pecahan, lihat makalah ini: Benjamin Graham, Pengumpulan Maks Pecahan

Argumen:

  • ruang lingkup: Objek Lingkup
  • nilai: 4-D dengan bentuk [batch, height, width, channels] .
  • pooling_ratio: Rasio pooling untuk setiap dimensi value , saat ini hanya mendukung dimensi baris dan kolom dan harus >= 1,0. Misalnya, rasio penggabungan yang valid terlihat seperti [1.0, 1.44, 1.73, 1.0]. Elemen pertama dan terakhir harus 1.0 karena kami tidak mengizinkan penggabungan dimensi batch dan saluran. 1,44 dan 1,73 masing-masing merupakan rasio gabungan pada dimensi tinggi dan lebar.

Atribut opsional (lihat Attrs ):

  • pseudo_random: Jika disetel ke True, menghasilkan urutan penggabungan secara pseudorandom, jika tidak, secara acak. Periksa kertas Benjamin Graham, Fractional Max-Pooling untuk mengetahui perbedaan antara pseudorandom dan acak.
  • tumpang tindih: Jika disetel ke True, artinya saat menggabungkan, nilai pada batas sel gabungan yang berdekatan digunakan oleh kedua sel. Misalnya:

index 0 1 2 3 4

value 20 5 16 3 7

Jika urutan pengumpulannya adalah [0, 2, 4], maka 16, pada indeks 2 akan digunakan dua kali. Hasilnya adalah [20, 16] untuk pengumpulan maksimal pecahan.

  • deterministik: Jika disetel ke True, wilayah pengumpulan tetap akan digunakan saat melakukan iterasi pada node FractionalMaxPool dalam grafik komputasi. Terutama digunakan dalam pengujian unit untuk membuat FractionalMaxPool bersifat deterministik.
  • seed: Jika salah satu seed atau seed2 disetel bukan nol, pembuat angka acak akan diunggulkan berdasarkan seed yang diberikan. Jika tidak, ia akan diunggulkan dengan benih acak.
  • seed2: Seed kedua untuk menghindari tabrakan seed.

Pengembalian:

  • Keluaran Output : tensor keluaran setelah penggabungan maks pecahan.
  • Output row_pooling_sequence: urutan penggabungan baris, diperlukan untuk menghitung gradien.
  • Output col_pooling_sequence: urutan pengumpulan kolom, diperlukan untuk menghitung gradien.

Konstruktor dan Destruktor

FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio)
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs)

Atribut publik

col_pooling_sequence
operation
output
row_pooling_sequence

Fungsi statis publik

Deterministic (bool x)
Overlapping (bool x)
PseudoRandom (bool x)
Seed (int64 x)
Seed2 (int64 x)

Struktur

tensorflow:: ops:: FractionalMaxPool:: Attrs

Penyetel atribut opsional untuk FractionalMaxPool .

Atribut publik

col_pooling_sequence

::tensorflow::Output col_pooling_sequence

operasi

Operation operation

keluaran

::tensorflow::Output output

baris_pooling_urutan

::tensorflow::Output row_pooling_sequence

Fungsi publik

FractionalMaxPool

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio
)

FractionalMaxPool

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio,
  const FractionalMaxPool::Attrs & attrs
)

Fungsi statis publik

deterministik

Attrs Deterministic(
  bool x
)

Tumpang tindih

Attrs Overlapping(
  bool x
)

PseudoAcak

Attrs PseudoRandom(
  bool x
)

Benih

Attrs Seed(
  int64 x
)

Benih2

Attrs Seed2(
  int64 x
)