เลื่อนเคาน์เตอร์ของ RNG แบบเคาน์เตอร์
สถานะของ RNG หลัง `rng_read_and_skip(n)` จะเหมือนกับสถานะของ RNG หลัง `uniform([n])` (หรือการแจกแจงอื่นๆ) การเพิ่มขึ้นจริงที่เพิ่มให้กับตัวนับคือตัวเลือกการใช้งานที่ไม่ได้ระบุ
ในกรณีที่อัลกอริธึมอินพุตคือ RNG_ALG_AUTO_SELECT ตัวนับในสถานะจะต้องมีขนาด int64[2] ซึ่งเป็นขนาดตัวนับสูงสุดในปัจจุบันในอัลกอริธึม ในกรณีนี้ op นี้จะจัดการตัวนับราวกับว่าเป็นจำนวนเต็ม 128 บิตที่มีโครงร่าง [lower_64bits,higher_64bits] หากอัลกอริทึมต้องการตัวนับน้อยกว่า 128 บิต ก็ควรใช้ส่วนด้านซ้ายของ int64[2] ด้วยวิธีนี้ int64[2] เข้ากันได้กับอัลกอริธึม RNG ปัจจุบันทั้งหมด (Philox, ThreeFry และ xla::RandomAlgorithm::RNG_DEFAULT) การดำเนินการ RNG ขั้นปลายจึงสามารถใช้ตัวนับนี้กับอัลกอริทึม RNG ใดก็ได้
วิธีการสาธารณะ
เอาต์พุต <ยาว> | เป็นเอาท์พุต () ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ |
RngReadAndSkip แบบคงที่ | สร้าง ( ขอบเขต ขอบเขต , ตัวถูกดำเนินการ <?> ทรัพยากร, ตัวถูกดำเนินการ <Integer> alg, ตัวถูกดำเนินการ <?> เดลต้า) วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ RngReadAndSkip ใหม่ |
เอาต์พุต <ยาว> | ค่า () ค่าเก่าของตัวแปรทรัพยากร ก่อนที่จะเพิ่มขึ้น |
วิธีการสืบทอด
วิธีการสาธารณะ
เอาท์ พุท สาธารณะ <ยาว> asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สร้าง RngReadAndSkip สาธารณะแบบคงที่ (ขอบเขต ขอบเขต , ทรัพยากร ตัวดำเนินการ <?>, ตัวดำเนินการ <Integer> alg, ตัวดำเนินการ <?> เดลต้า)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ RngReadAndSkip ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
ทรัพยากร | หมายเลขอ้างอิงของตัวแปรทรัพยากรที่เก็บสถานะของ RNG สถานะประกอบด้วยตัวนับตามด้วยคีย์ |
อัลจี | อัลกอริทึม RNG |
เดลต้า | จำนวนความก้าวหน้า |
การส่งคืน
- อินสแตนซ์ใหม่ของ RngReadAndSkip
ค่า เอาท์พุต สาธารณะ <Long> ()
ค่าเก่าของตัวแปรทรัพยากร ก่อนที่จะเพิ่มขึ้น เนื่องจากขนาดสถานะขึ้นอยู่กับอัลกอริธึม เอาต์พุตนี้จะถูกเติมด้านขวาด้วยศูนย์เพื่อให้ได้รูปร่าง int64[3] (ขนาดสถานะสูงสุดปัจจุบันในอัลกอริธึม)