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
)