เทนเซอร์โฟลว์:: ปฏิบัติการ:: แก้ไข 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 )