tensorflow::ops::FixedUnigramCandidateSampler
#include <candidate_sampling_ops.h>Menghasilkan label untuk pengambilan sampel kandidat dengan distribusi unigram yang dipelajari.
Ringkasan
Pengambil sampel unigram dapat menggunakan distribusi unigram tetap yang dibaca dari file atau diteruskan sebagai array dalam memori, alih-alih membangun distribusi dari data secara langsung. Ada juga opsi untuk memiringkan distribusi dengan menerapkan daya distorsi pada bobot.
Berkas kosakata harus dalam format seperti CSV, dengan kolom terakhir berisi bobot yang terkait dengan kata tersebut.
Untuk setiap batch, operasi ini memilih satu set label kandidat yang diambil sampelnya.
Keuntungan dari pengambilan sampel kandidat per-batch adalah kesederhanaan dan kemungkinan perkalian matriks padat yang efisien. Kerugiannya adalah kandidat yang diambil sampelnya harus dipilih secara independen dari konteks dan label sebenarnya.
Argumen:
- Cakupan: Objek Cakupan
- true_classes: Sebuah matriks batch_size * num_true, di mana setiap baris berisi ID dari num_true target_classes dalam label asli yang sesuai.
- num_true: Jumlah label benar per konteks.
- num_sampled: Jumlah kandidat yang akan diambil sampel secara acak.
- unik: Jika unik bernilai benar, kita melakukan pengambilan sampel dengan penolakan, sehingga semua kandidat yang diambil sampelnya dalam satu batch bersifat unik. Hal ini memerlukan beberapa perkiraan untuk mengestimasi probabilitas pengambilan sampel setelah penolakan.
- range_max: Sampler akan mengambil sampel bilangan bulat dari interval [0, range_max).
Atribut opsional (lihat Attrs ):
- vocab_file: Setiap baris yang valid dalam file ini (yang seharusnya memiliki format seperti CSV) sesuai dengan ID kata yang valid. ID diurutkan secara berurutan, dimulai dari num_reserved_ids. Entri terakhir di setiap baris diharapkan berupa nilai yang sesuai dengan jumlah atau probabilitas relatif. Tepat satu dari vocab_file dan unigrams perlu diberikan ke operasi ini.
- Distorsi: Distorsi digunakan untuk mengubah distribusi probabilitas unigram. Setiap bobot pertama-tama dipangkatkan dengan distorsi sebelum ditambahkan ke distribusi unigram internal. Akibatnya, distorsi = 1,0 memberikan pengambilan sampel unigram reguler (seperti yang didefinisikan oleh file kosakata), dan distorsi = 0,0 memberikan distribusi seragam.
- num_reserved_ids: Secara opsional, beberapa ID yang dicadangkan dapat ditambahkan dalam rentang [0, ..., num_reserved_ids) oleh pengguna. Salah satu contoh penggunaannya adalah token kata khusus yang tidak dikenal 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 komputasi keseluruhan.
- shard: 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 digunakan.
- unigrams: Sebuah daftar jumlah atau probabilitas unigram, satu per ID dalam urutan berurutan. Tepat satu dari vocab_file dan unigrams harus diberikan ke operasi ini.
- seed: Jika seed atau seed2 diatur ke nilai bukan nol, generator angka acak akan diinisialisasi dengan seed yang diberikan. Jika tidak, generator akan diinisialisasi dengan seed acak.
- seed2: Benih kedua untuk menghindari benturan benih.
Mengembalikan:
-
Outputsampled_candidates: Sebuah vektor dengan panjang num_sampled, di mana setiap elemennya adalah ID dari kandidat yang diambil sampelnya. -
Outputtrue_expected_count: Matriks batch_size * num_true, yang mewakili jumlah kemunculan yang diharapkan dari setiap kandidat dalam satu batch kandidat yang diambil sampelnya. Jika unique=true, maka ini adalah probabilitas. -
Outputsampled_expected_count: Sebuah vektor dengan panjang num_sampled, untuk setiap kandidat yang diambil sampelnya, yang mewakili jumlah kemunculan kandidat tersebut dalam kumpulan kandidat yang diambil sampelnya. Jika unique=true, maka ini adalah 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 | Pengaturan atribut opsional untuk FixedUnigramCandidateSampler . |
Atribut publik
operasi
Operation operation
kandidat_sampel
::tensorflow::Output sampled_candidates
jumlah_sampel_yang_diharapkan
::tensorflow::Output sampled_expected_count
jumlah_yang_diharapkan_sebenarnya
::tensorflow::Output true_expected_count
Fungsi publik
FixedUnigramCandidateSampler
FixedUnigramCandidateSampler( const ::tensorflow::Scope & scope, ::tensorflow::Input true_classes, int64 num_true, int64 num_sampled, bool unique, int64 range_max )
FixedUnigramCandidateSampler
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 )
Nomor ID Cadangan
Attrs NumReservedIds( int64 x )
NumShards
Attrs NumShards( int64 x )
Benih
Attrs Seed( int64 x )
Benih 2
Attrs Seed2( int64 x )
Beling
Attrs Shard( int64 x )
Unigram
Attrs Unigrams( const gtl::ArraySlice< float > & x )
Berkas Kosakata
Attrs VocabFile( StringPiece x )