คำนวณการสูญเสียความแตกต่างระหว่าง Kullback-Leibler ระหว่างป้ายกำกับและการคาดคะเน
loss = labels * log(labels / predictions)
การใช้งานแบบสแตนด์อโลน:
Operand<TFloat32> labels = tf.constant(new float[][] { {0.f, 1.f}, {0.f, 0.f} }); Operand<TFloat32> predictions = tf.constant(new float[][] { {0.6f, 0.4f}, {0.4f, 0.6f} }); KLDivergence kld = new KLDivergence(tf); Operand<TFloat32> result = kld.call(labels, predictions); // produces 0.458
การโทรด้วยน้ำหนักตัวอย่าง:
Operand<TFloat32> sampleWeight = tf.constant(new float[] {0.8f, 0.2f}); Operand<TFloat32> result = kld.call(labels, predictions, sampleWeight); // produces 0.366f
การใช้ประเภทการลด SUM
:
KLDivergence kld = new KLDivergence(tf, Reduction.SUM); Operand<TFloat32> result = kld.call(labels, predictions); // produces 0.916f
การใช้ประเภทการลด NONE
:
KLDivergence kld = new KLDivergence(tf, Reduction.NONE); Operand<TFloat32> result = kld.call(labels, predictions); // produces [0.916f, -3.08e-06f]
ดูเพิ่มเติม
ฟิลด์ที่สืบทอดมา
คอนสตรัคชั่นสาธารณะ
KLDivergence (Ops tf) สร้างการสูญเสีย Divergence ของ Kullback Leibler โดยใช้ getSimpleName() เป็นชื่อการสูญเสียและการลดการสูญเสียของ REDUCTION_DEFAULT | |
KDivergence (Ops tf, การลด การลด ) สร้างการสูญเสียการสูญเสีย Kullback Leibler Divergence โดยใช้ getSimpleName() เป็นชื่อการสูญเสีย | |
วิธีการสาธารณะ
<T ขยาย TNumber > ตัวถูกดำเนินการ <T> | โทร ( ตัวดำเนินการ <? ขยาย TNumber > ป้ายกำกับ, ตัวดำเนินการ <T> การคาดคะเน, ตัวดำเนินการ <T> ตัวอย่างน้ำหนัก) สร้างตัวถูกดำเนินการที่คำนวณการสูญเสีย |
วิธีการสืบทอด
คอนสตรัคชั่นสาธารณะ
KLDivergence สาธารณะ (Ops tf)
สร้างการสูญเสีย Divergence ของ Kullback Leibler โดยใช้ getSimpleName()
เป็นชื่อการสูญเสียและการลดการสูญเสียของ REDUCTION_DEFAULT
พารามิเตอร์
ไม่ | Ops ของ TensorFlow |
---|
KLDivergence สาธารณะ (Ops tf, การลด การลด )
สร้างการสูญเสียการสูญเสีย Kullback Leibler Divergence โดยใช้ getSimpleName()
เป็นชื่อการสูญเสีย
พารามิเตอร์
ไม่ | Ops ของ TensorFlow |
---|---|
การลดน้อยลง | ประเภทของส่วนลดที่จะใช้กับการสูญเสีย |
KLDivergence สาธารณะ (Ops tf, ชื่อสตริง, การลดการลด )
สร้างการสูญเสีย Divergence ของ Kullback Leibler
พารามิเตอร์
ไม่ | Ops ของ TensorFlow |
---|---|
ชื่อ | ชื่อของการสูญเสีย |
การลดน้อยลง | ประเภทของส่วนลดที่จะใช้กับการสูญเสีย |
วิธีการสาธารณะ
ตัวดำเนินการ สาธารณะ <T> โทร ( ตัวดำเนินการ <? ขยาย TNumber > ป้ายกำกับ, ตัวดำเนินการ <T> การคาดการณ์, ตัวดำเนินการ <T> ตัวอย่างน้ำหนัก)
สร้างตัวถูกดำเนินการที่คำนวณการสูญเสีย
พารามิเตอร์
ฉลาก | ค่าความจริงหรือป้ายกำกับ |
---|---|
การคาดการณ์ | การคาดการณ์ |
ตัวอย่างน้ำหนัก | SampleWeights ที่เป็นตัวเลือกจะทำหน้าที่เป็นสัมประสิทธิ์การสูญเสีย หากมีการระบุสเกลาร์ การสูญเสียก็จะถูกปรับขนาดตามค่าที่กำหนด หาก SampleWeights เป็นเทนเซอร์ที่มีขนาด [batch_size] ค่าที่สูญเสียทั้งหมดสำหรับแต่ละตัวอย่างในแบตช์จะถูกปรับขนาดใหม่โดยองค์ประกอบที่เกี่ยวข้องในเวกเตอร์ SampleWeights หากรูปร่างของ SampleWeights คือ [batch_size, d0, .. dN-1] (หรือสามารถถ่ายทอดไปยังรูปร่างนี้ได้) ดังนั้น องค์ประกอบที่สูญเสียแต่ละรายการของการคาดการณ์จะถูกปรับขนาดตามค่าที่สอดคล้องกันของ SampleWeights (หมายเหตุสำหรับ dN-1: ฟังก์ชันการสูญเสียทั้งหมดลดลง 1 มิติ โดยปกติจะเป็นแกน=-1) |
การส่งคืน
- การสูญเสีย