เทนเซอร์โฟลว์:: ปฏิบัติการ:: แก้ไข UnigramCandidateSampler

#include <candidate_sampling_ops.h>

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

สรุป

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

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

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

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

ข้อโต้แย้ง:

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

แอ็ตทริบิวต์ทางเลือก (ดู Attrs ):

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

ผลตอบแทน:

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

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

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)

โครงสร้าง

เทนเซอร์โฟลว์ :: ops :: แก้ไข UnigramCandidateSampler :: Attrs

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

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

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

Operation operation

ตัวอย่าง_ผู้สมัคร

::tensorflow::Output sampled_candidates

ตัวอย่าง_คาดหวัง_จำนวน

::tensorflow::Output sampled_expected_count

true_expected_count

::tensorflow::Output true_expected_count

งานสาธารณะ

แก้ไข UnigramCandidateSampler

 FixedUnigramCandidateSampler(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input true_classes,
  int64 num_true,
  int64 num_sampled,
  bool unique,
  int64 range_max
)

แก้ไข UnigramCandidateSampler

 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
)

NumReservedIds

Attrs NumReservedIds(
  int64 x
)

NumShards

Attrs NumShards(
  int64 x
)

เมล็ดพันธุ์

Attrs Seed(
  int64 x
)

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

Attrs Seed2(
  int64 x
)

เศษ

Attrs Shard(
  int64 x
)

ยูนิแกรม

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

VocabFile

Attrs VocabFile(
  StringPiece x
)