tensorflow::ops::FixedUnigramCandidateSampler

#include <candidate_sampling_ops.h>

สร้างป้ายกำกับสำหรับการสุ่มตัวอย่างผู้สมัครโดยใช้การแจกแจงแบบยูนิแกรมที่เรียนรู้มา

สรุป

ตัวสุ่มแบบยูนิแกรมสามารถใช้การกระจายแบบยูนิแกรมคงที่ที่อ่านจากไฟล์หรือส่งผ่านเป็นอาร์เรย์ในหน่วยความจำแทนที่จะสร้างการกระจายจากข้อมูลแบบเรียลไทม์ นอกจากนี้ยังมีตัวเลือกในการเบี่ยงเบนการกระจายโดยการใช้กำลังการบิดเบือนกับน้ำหนัก

ไฟล์คำศัพท์ควรอยู่ในรูปแบบคล้าย CSV โดยช่องสุดท้ายจะเป็นค่าน้ำหนักที่เกี่ยวข้องกับคำนั้น ๆ

สำหรับแต่ละชุดข้อมูล การดำเนินการนี้จะเลือกชุดป้ายกำกับผู้สมัครที่สุ่มมาเพียงชุดเดียว

ข้อดีของการสุ่มตัวอย่างผู้สมัครต่อชุดคือความเรียบง่ายและความเป็นไปได้ในการคูณเมทริกซ์หนาแน่นอย่างมีประสิทธิภาพ ข้อเสียคือผู้สมัครที่สุ่มมาจะต้องถูกเลือกโดยอิสระจากบริบทและป้ายกำกับที่แท้จริง

ข้อโต้แย้ง:

  • ขอบเขต: วัตถุ ขอบเขต
  • true_classes: เมทริกซ์ขนาด batch_size * num_true ซึ่งแต่ละแถวประกอบด้วย ID ของ target_classes จำนวน num_true ในป้ายกำกับดั้งเดิมที่เกี่ยวข้อง
  • num_true: จำนวนป้ายกำกับที่เป็นจริงต่อบริบท
  • num_sampled: จำนวนผู้สมัครที่จะสุ่มเลือก
  • เอกลักษณ์: ถ้าเงื่อนไขเอกลักษณ์เป็นจริง เราจะสุ่มตัวอย่างโดยมีการปฏิเสธ เพื่อให้ผู้สมัครที่สุ่มมาทั้งหมดในแต่ละชุดมีเอกลักษณ์เฉพาะตัว ซึ่งต้องใช้การประมาณค่าบางอย่างเพื่อประเมินความน่าจะเป็นของการสุ่มตัวอย่างหลังการปฏิเสธ
  • range_max: ตัวสุ่มจะสุ่มค่าจำนวนเต็มจากช่วง [0, range_max)

คุณลักษณะเสริม (ดูที่ Attrs ):

  • vocab_file: แต่ละบรรทัดที่ถูกต้องในไฟล์นี้ (ซึ่งควรมีรูปแบบคล้าย CSV) จะตรงกับรหัสคำที่ถูกต้อง รหัสจะเรียงลำดับตามลำดับ โดยเริ่มจากจำนวนรหัสที่สงวนไว้ ค่าสุดท้ายในแต่ละบรรทัดคาดว่าจะเป็นค่าที่สอดคล้องกับจำนวนนับหรือความน่าจะเป็นสัมพัทธ์ ต้องส่งค่าใดค่าหนึ่งระหว่าง vocab_file และ unigrams ไปยังโอเปอเรเตอร์นี้
  • การบิดเบือน: การบิดเบือนใช้เพื่อเบี่ยงเบนการกระจายความน่าจะเป็นของคำเดี่ยว โดยแต่ละค่าน้ำหนักจะถูกยกกำลังด้วยค่าการบิดเบือนก่อนที่จะนำไปบวกกับการกระจายความน่าจะเป็นของคำเดี่ยวภายใน ดังนั้น ค่าการบิดเบือน = 1.0 จะให้การสุ่มตัวอย่างคำเดี่ยวแบบปกติ (ตามที่กำหนดไว้ในไฟล์คำศัพท์) และค่าการบิดเบือน = 0.0 จะให้การกระจายแบบสม่ำเสมอ
  • num_reserved_ids: ผู้ใช้สามารถเพิ่มรหัสที่สงวนไว้ได้ในช่วง [0, ..., num_reserved_ids) ตัวอย่างการใช้งานอย่างหนึ่งคือ การใช้โทเค็นคำที่ไม่รู้จักพิเศษเป็นรหัส 0 รหัสเหล่านี้จะมีโอกาสปรากฏเป็น 0
  • num_shards: สามารถใช้ตัวสุ่มตัวอย่างเพื่อสุ่มตัวอย่างจากช่วงย่อยของช่วงเดิม เพื่อเพิ่มความเร็วในการคำนวณโดยรวมผ่านการประมวลผลแบบขนาน พารามิเตอร์นี้ (ร่วมกับ 'shard') ระบุจำนวนพาร์ติชันที่ใช้ในการคำนวณโดยรวม
  • ชาร์ด: สามารถใช้แซมpler เพื่อสุ่มตัวอย่างจากช่วงย่อยของช่วงเดิม เพื่อเพิ่มความเร็วในการคำนวณทั้งหมดผ่านการประมวลผลแบบขนาน พารามิเตอร์นี้ (ร่วมกับ 'num_shards') ระบุหมายเลขพาร์ติชันเฉพาะของตัวดำเนินการแซมpler เมื่อมีการใช้งานการแบ่งพาร์ติชัน
  • unigrams: รายการจำนวนหรือความน่าจะเป็นของ unigram หนึ่งรายการต่อ ID เรียงตามลำดับ ต้องส่งค่าใดค่าหนึ่งระหว่าง vocab_file และ unigrams ไปยังโอเปอเรเตอร์นี้เท่านั้น
  • seed: หาก seed หรือ seed2 ตัวใดตัวหนึ่งถูกตั้งค่าเป็นค่าที่ไม่ใช่ศูนย์ ตัวสร้างเลขสุ่มจะเริ่มต้นด้วยค่า seed ที่กำหนดให้ มิฉะนั้น จะเริ่มต้นด้วยค่า seed แบบสุ่ม
  • seed2: เมล็ดพันธุ์ที่สองเพื่อหลีกเลี่ยงการชนกันของเมล็ดพันธุ์

การส่งคืนสินค้า:

  • Output sampled_candidates: เวกเตอร์ที่มีความยาว num_sampled โดยแต่ละองค์ประกอบคือ ID ของผู้สมัครที่ถูกสุ่มเลือก
  • Output true_expected_count: เมทริกซ์ขนาด batch_size * num_true ซึ่งแสดงจำนวนครั้งที่คาดว่าผู้สมัครแต่ละคนจะปรากฏในกลุ่มผู้สมัครที่สุ่มมา หาก unique=true ค่านี้จะเป็นความน่าจะเป็น
  • Output sampled_expected_count: เวกเตอร์ที่มีความยาวเท่ากับ num_sampled สำหรับผู้สมัครแต่ละคนที่สุ่มมา โดยแสดงถึงจำนวนครั้งที่คาดว่าผู้สมัครนั้นจะปรากฏในกลุ่มผู้สมัครที่สุ่มมา หาก unique=true ค่านี้จะเป็นความน่าจะเป็น

ตัวสร้างและตัวทำลาย

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)

คุณลักษณะสาธารณะ

operation
sampled_candidates
sampled_expected_count
true_expected_count

ฟังก์ชันคงที่สาธารณะ

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)

โครงสร้าง

tensorflow::ops::FixedUnigramCandidateSampler::Attrs

ตัวเลือกการตั้งค่าแอตทริบิวต์สำหรับ FixedUnigramCandidateSampler

คุณลักษณะสาธารณะ

การดำเนินการ

Operation operation

ผู้สมัครที่สุ่มตัวอย่าง

::tensorflow::Output sampled_candidates

จำนวนที่คาดหวังที่สุ่มตัวอย่าง

::tensorflow::Output sampled_expected_count

จำนวนที่คาดหวังจริง

::tensorflow::Output true_expected_count

หน้าที่สาธารณะ

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
)

ฟังก์ชันคงที่สาธารณะ

การบิดเบือน

Attrs Distortion(
  float x
)

หมายเลขสำรอง

Attrs NumReservedIds(
  int64 x
)

นัมชาร์ด

Attrs NumShards(
  int64 x
)

เมล็ดพันธุ์

Attrs Seed(
  int64 x
)

เมล็ดพันธุ์2

Attrs Seed2(
  int64 x
)

ชาร์ด

Attrs Shard(
  int64 x
)

ยูนิแกรม

Attrs Unigrams(
  const gtl::ArraySlice< float > & x
)

ไฟล์คำศัพท์

Attrs VocabFile(
  StringPiece x
)