คำนวณการสูญเสียของ Huber ระหว่างป้ายกำกับและการทำนาย
สำหรับแต่ละค่า x ใน error = labels - predictions
:
loss = 0.5 * x^2 if |x| <= d loss = 0.5 * d^2 + d * (|x| - d) if |x| > d
โดยที่ d คือเดลต้า
การใช้งานแบบสแตนด์อโลน:
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} }); Huber huberLoss = new Huber(tf); Operand<TFloat32> result = huberLoss.call(labels, predictions); // produces 0.155
การโทรด้วยน้ำหนักตัวอย่าง:
Operand<TFloat32> sampleWeight = tf.constant(new float[] {1.f, 0.f}); Operand<TFloat32> result = huberLoss.call(labels, predictions, sampleWeight); // produces 0.09f
การใช้ประเภทการลด SUM
:
Huber huberLoss = new Huber(tf, Reduction.SUM); Operand<TFloat32> result = huberLoss.call(labels, predictions); // produces 0.32f
การใช้ประเภทการลด NONE
:
Huber huberLoss = new Huber(tf, Reduction.NONE); Operand<TFloat32> result = huberLoss.call(labels, predictions); // produces [0.18f, 0.13f]
ดูเพิ่มเติม
ค่าคงที่
ลอย | DELTA_DEFAULT |
ฟิลด์ที่สืบทอดมา
คอนสตรัคชั่นสาธารณะ
ฮูเบอร์ (Ops tf) สร้าง Huber Loss โดยใช้ getSimpleName() เป็นชื่อการสูญเสีย DELTA_DEFAULT เป็นเดลต้า และการลดการสูญเสีย REDUCTION_DEFAULT | |
Huber (Ops tf ชื่อสตริง) สร้างการสูญเสีย Huber โดยใช้ DELTA_DEFAULT เป็นเดลต้าและลดการสูญเสียของ REDUCTION_DEFAULT | |
Huber (Ops tf, การ ลดลง) สร้าง Huber Loss โดยใช้ getSimpleName() เป็นชื่อการสูญเสีย และ DELTA_DEFAULT เป็นเดลต้า | |
วิธีการสาธารณะ
<T ขยาย TNumber > ตัวถูกดำเนินการ <T> | โทร ( ตัวดำเนินการ <? ขยาย TNumber > ป้ายกำกับ, ตัวดำเนินการ <T> การคาดคะเน, ตัวดำเนินการ <T> ตัวอย่างน้ำหนัก) สร้างตัวถูกดำเนินการที่คำนวณการสูญเสีย |
วิธีการสืบทอด
ค่าคงที่
โฟลตสุดท้ายคงสาธารณะ DELTA_DEFAULT
คอนสตรัคชั่นสาธารณะ
Huber สาธารณะ (Ops tf)
สร้าง Huber Loss โดยใช้ getSimpleName()
เป็นชื่อการสูญเสีย DELTA_DEFAULT
เป็นเดลต้า และการลดการสูญเสีย REDUCTION_DEFAULT
พารามิเตอร์
ไม่ | Ops ของ TensorFlow |
---|
Huber สาธารณะ (Ops tf ชื่อสตริง)
สร้างการสูญเสียฮูเบอร์โดยใช้ DELTA_DEFAULT
เป็นเดลต้าและลดการสูญเสียของ REDUCTION_DEFAULT
พารามิเตอร์
ไม่ | Ops ของ TensorFlow |
---|---|
ชื่อ | ชื่อของการสูญเสีย หากเป็นค่าว่าง จะใช้ getSimpleName() |
Huber สาธารณะ (Ops tf, การลด การ ลดลง)
สร้าง Huber Loss โดยใช้ getSimpleName()
เป็นชื่อการสูญเสีย และ DELTA_DEFAULT
เป็นเดลต้า
พารามิเตอร์
ไม่ | Ops ของ TensorFlow |
---|---|
การลดน้อยลง | ประเภทของส่วนลดที่จะใช้กับการสูญเสีย |
Huber สาธารณะ (Ops tf, ชื่อสตริง, การลดการลด )
สร้าง Huber Loss โดยใช้ DELTA_DEFAULT
เป็นเดลต้า
พารามิเตอร์
ไม่ | Ops ของ TensorFlow |
---|---|
ชื่อ | ชื่อของการสูญเสีย หากเป็นค่าว่าง จะใช้ getSimpleName() |
การลดน้อยลง | ประเภทของส่วนลดที่จะใช้กับการสูญเสีย |
Huber สาธารณะ (Ops tf, ชื่อสตริง, เดลต้าลอย, การลดการ ลด)
สร้างการสูญเสียฮูเบอร์
พารามิเตอร์
ไม่ | Ops ของ TensorFlow |
---|---|
ชื่อ | ชื่อของการสูญเสีย หากเป็นค่าว่าง จะใช้ getSimpleName() |
เดลต้า | จุดที่ฟังก์ชันการสูญเสียของฮูเบอร์เปลี่ยนจากกำลังสองเป็นเชิงเส้น |
การลดน้อยลง | ประเภทของส่วนลดที่จะใช้กับการสูญเสีย |
วิธีการสาธารณะ
ตัวดำเนินการ สาธารณะ <T> โทร ( ตัวดำเนินการ <? ขยาย TNumber > ป้ายกำกับ, ตัวดำเนินการ <T> การคาดการณ์, ตัวดำเนินการ <T> ตัวอย่างน้ำหนัก)
สร้างตัวถูกดำเนินการที่คำนวณการสูญเสีย
พารามิเตอร์
ฉลาก | ค่าความจริงหรือป้ายกำกับ |
---|---|
การคาดการณ์ | การคาดการณ์ |
ตัวอย่างน้ำหนัก | SampleWeights ที่เป็นตัวเลือกจะทำหน้าที่เป็นสัมประสิทธิ์การสูญเสีย หากมีการระบุสเกลาร์ การสูญเสียก็จะถูกปรับขนาดตามค่าที่กำหนด หาก SampleWeights เป็นเทนเซอร์ที่มีขนาด [batch_size] ค่าที่สูญเสียทั้งหมดสำหรับแต่ละตัวอย่างในแบตช์จะถูกปรับขนาดใหม่โดยองค์ประกอบที่เกี่ยวข้องในเวกเตอร์ SampleWeights หากรูปร่างของ SampleWeights คือ [batch_size, d0, .. dN-1] (หรือสามารถถ่ายทอดไปยังรูปร่างนี้ได้) ดังนั้น องค์ประกอบที่สูญเสียแต่ละรายการของการคาดการณ์จะถูกปรับขนาดตามค่าที่สอดคล้องกันของ SampleWeights (หมายเหตุสำหรับ dN-1: ฟังก์ชันการสูญเสียทั้งหมดลดลง 1 มิติ โดยปกติจะเป็นแกน=-1) |
การส่งคืน
- การสูญเสีย