เปรียบเทียบค่าของ "อินพุต" กับ "เกณฑ์" และรวมบิตผลลัพธ์ไว้ใน "uint8"
การเปรียบเทียบแต่ละครั้งจะส่งคืนบูลีน 'จริง' (หาก `input_value > เกณฑ์`) หรือและ 'เท็จ' มิฉะนั้น
การดำเนินการนี้มีประโยชน์สำหรับ Locality-Sensitive-Hashing (LSH) และอัลกอริธึมอื่นๆ ที่ใช้การประมาณค่าแฮชของโคไซน์และระยะทาง "L2" สามารถสร้างรหัสได้จากอินพุตผ่าน:
codebook_size = 50
codebook_bits = codebook_size * 32
codebook = tf.get_variable('codebook', [x.shape[-1].value, codebook_bits],
dtype=x.dtype,
initializer=tf.orthogonal_initializer())
codes = compare_and_threshold(tf.matmul(x, codebook), threshold=0.)
codes = tf.bitcast(codes, tf.int32) # go from uint8 to int32
# now codes has shape x.shape[:-1] + [codebook_size]
เมื่อพิจารณาจากรูปทรง `อินพุต` `[s0, s1, ..., s_n]` ผลลัพธ์จะเป็นเทนเซอร์ที่มีรูปทรง `uint8` `[s0, s1, ..., s_n / 8]`
ค่าคงที่
สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow |
วิธีการสาธารณะ
เอาท์พุต < TUint8 > | เป็นเอาท์พุต () ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ |
คงที่ <T ขยาย TType > CompareAndBitpack | |
เอาท์พุต < TUint8 > | เอาท์พุท () การเปรียบเทียบแบบบิตแพ็ก |
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
เอาท์พุต สาธารณะ < TUint8 > asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สร้าง CompareAndBitpack แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , อินพุต Operand <T>, เกณฑ์ Operand <T>)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ CompareAndBitpack ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
ป้อนข้อมูล | ค่าที่จะเปรียบเทียบกับ "เกณฑ์" และบิตแพ็ก |
เกณฑ์ | เกณฑ์ที่จะเปรียบเทียบ |
การส่งคืน
- อินสแตนซ์ใหม่ของ CompareAndBitpack