aliran tensor:: operasi:: MemperbaikiUnigramCandidateSampler
#include <candidate_sampling_ops.h>
Menghasilkan label untuk pengambilan sampel kandidat dengan distribusi unigram yang dipelajari.
Ringkasan
Sampler unigram dapat menggunakan distribusi unigram tetap yang dibaca dari file atau diteruskan sebagai array dalam memori alih-alih membangun distribusi dari data dengan cepat. Ada juga pilihan untuk mendistorsi distribusi dengan menerapkan kekuatan distorsi pada bobot.
File kosakata harus dalam format seperti CSV, dengan bidang terakhir adalah bobot yang terkait dengan kata tersebut.
Untuk setiap batch, operasi ini mengambil satu set sampel label kandidat.
Keuntungan pengambilan sampel kandidat per batch adalah kesederhanaan dan kemungkinan perkalian matriks padat yang efisien. Kerugiannya adalah kandidat yang dijadikan sampel harus dipilih secara independen dari konteks dan label yang sebenarnya.
Argumen:
- ruang lingkup: Objek Lingkup
- true_classes: Matriks batch_size * num_true, yang setiap barisnya berisi ID num_true target_classes dalam label asli yang sesuai.
- num_true: Jumlah label yang benar per konteks.
- num_sampled: Jumlah kandidat yang akan diambil sampelnya secara acak.
- unik: Jika unik benar, kami mengambil sampel dengan penolakan, sehingga semua kandidat sampel dalam suatu kelompok adalah unik. Hal ini memerlukan beberapa perkiraan untuk memperkirakan probabilitas pengambilan sampel pasca penolakan.
- range_max: Sampler akan mengambil sampel bilangan bulat dari interval [0, range_max).
Atribut opsional (lihat Attrs
):
- vocab_file: Setiap baris valid dalam file ini (yang harus memiliki format seperti CSV) sesuai dengan ID kata yang valid. ID disusun secara berurutan, dimulai dari num_reserved_ids. Entri terakhir di setiap baris diharapkan berupa nilai yang sesuai dengan hitungan atau probabilitas relatif. Tepatnya salah satu vocab_file dan unigram perlu diteruskan ke operasi ini.
- distorsi: Distorsi digunakan untuk mendistorsi distribusi probabilitas unigram. Setiap bobot pertama-tama dinaikkan ke kekuatan distorsi sebelum ditambahkan ke distribusi unigram internal. Hasilnya, distorsi = 1.0 memberikan pengambilan sampel unigram yang teratur (seperti yang ditentukan oleh file vocab), dan distorsi = 0.0 memberikan distribusi yang seragam.
- num_reserved_ids: Secara opsional, beberapa ID yang dicadangkan dapat ditambahkan dalam rentang [0, ..., num_reserved_ids) oleh pengguna. Salah satu kasus penggunaannya adalah token kata khusus yang tidak diketahui digunakan sebagai ID 0. ID ini akan memiliki probabilitas pengambilan sampel sebesar 0.
- num_shards: Sampler dapat digunakan untuk mengambil sampel dari subset rentang asli untuk mempercepat keseluruhan komputasi melalui paralelisme. Parameter ini (bersama dengan 'shard') menunjukkan jumlah partisi yang digunakan dalam keseluruhan komputasi.
- pecahan: Sampler dapat digunakan untuk mengambil sampel dari subset rentang asli untuk mempercepat keseluruhan komputasi melalui paralelisme. Parameter ini (bersama dengan 'num_shards') menunjukkan nomor partisi tertentu dari operasi sampler, ketika partisi sedang digunakan.
- unigrams: Daftar jumlah atau probabilitas unigram, satu per ID secara berurutan. Tepatnya salah satu vocab_file dan unigram harus diteruskan ke operasi ini.
- 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:
-
Output
sampled_candidates: Vektor dengan panjang num_sampled, yang setiap elemennya adalah ID kandidat sampel. -
Output
true_expected_count: Matriks batch_size * num_true, mewakili berapa kali setiap kandidat diharapkan muncul dalam kumpulan kandidat sampel. Jika unik=benar, maka ini adalah sebuah probabilitas. -
Output
sampled_expected_count: Sebuah vektor dengan panjang num_sampled, untuk setiap kandidat sampel yang mewakili berapa kali kandidat tersebut diharapkan muncul dalam kumpulan kandidat sampel. Jika unik=benar, maka ini adalah sebuah probabilitas.
Konstruktor dan Destruktor | |
---|---|
FixedUnigramCandidateSampler (const :: tensorflow::Scope & scope, :: tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max) | |
FixedUnigramCandidateSampler (const :: tensorflow::Scope & scope, :: tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs) |
Atribut publik | |
---|---|
operation | |
sampled_candidates | |
sampled_expected_count | |
true_expected_count |
Fungsi statis publik | |
---|---|
Distortion (float x) | |
NumReservedIds (int64 x) | |
NumShards (int64 x) | |
Seed (int64 x) | |
Seed2 (int64 x) | |
Shard (int64 x) | |
Unigrams (const gtl::ArraySlice< float > & x) | |
VocabFile (StringPiece x) |
Struktur | |
---|---|
tensorflow:: ops:: FixedUnigramCandidateSampler:: Attrs | Penyetel atribut opsional untuk FixedUnigramCandidateSampler . |
Atribut publik
operasi
Operation operation
sampel_kandidat
::tensorflow::Output sampled_candidates
sampled_expected_count
::tensorflow::Output sampled_expected_count
hitungan_yang diharapkan_benar
::tensorflow::Output true_expected_count
Fungsi publik
MemperbaikiUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max )
MemperbaikiUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max, const FixedUnigramCandidateSampler::Attrs & attrs )
Fungsi statis publik
Distorsi
Attrs Distortion( float x )
JumlahReservedIds
Attrs NumReservedIds( int64 x )
Nomor Pecahan
Attrs NumShards( int64 x )
Benih
Attrs Seed( int64 x )
Benih2
Attrs Seed2( int64 x )
Beling
Attrs Shard( int64 x )
Unigram
Attrs Unigrams( const gtl::ArraySlice< float > & x )
File Kosakata
Attrs VocabFile( StringPiece x )