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:
- input_row_length : jumlah baris dari kumpulan input
- output_row_length : yang akan lebih kecil dari input
- alpha = input_row_length / output_row_length : rasio pengurangan kami
- K = lantai (alfa)
- row_pooling_sequence : ini adalah daftar hasil baris batas kumpulan
Kemudian, row_pooling_sequence harus memenuhi:
- a[0] = 0 : nilai pertama barisan tersebut adalah 0
- a[end] = input_row_length : nilai terakhir dari urutan adalah ukurannya
- K <= (a[i+1] - a[i]) <= K+1 : semua interval berukuran K atau K+1
- 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 )