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: เมล็ดพันธุ์ที่สองเพื่อหลีกเลี่ยงการชนกันของเมล็ดพันธุ์
การส่งคืนสินค้า:
-
Outputsampled_candidates: เวกเตอร์ที่มีความยาว num_sampled โดยแต่ละองค์ประกอบคือ ID ของผู้สมัครที่ถูกสุ่มเลือก -
Outputtrue_expected_count: เมทริกซ์ขนาด batch_size * num_true ซึ่งแสดงจำนวนครั้งที่คาดว่าผู้สมัครแต่ละคนจะปรากฏในกลุ่มผู้สมัครที่สุ่มมา หาก unique=true ค่านี้จะเป็นความน่าจะเป็น -
Outputsampled_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 )