คำนวณการสูญเสียข้ามเอนโทรปีระหว่างป้ายกำกับที่แท้จริงและป้ายกำกับที่คาดการณ์ไว้
ใช้การสูญเสียเอนโทรปีข้ามนี้เมื่อมีคลาสเลเบลเพียงสองคลาส (สมมติว่าเป็น 0 และ 1) สำหรับแต่ละตัวอย่าง ควรมีค่าจุดลอยตัวเดียวต่อการทำนาย
การใช้งานแบบสแตนด์อโลน:
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} });
BinaryCrossentropy bce = new BinaryCrossentropy(tf);
Operand<TFloat32> result = bce.call(labels, predictions);
// produces 0.815
การโทรด้วยน้ำหนักตัวอย่าง:
Operand<TFloat32> sampleWeight = tf.constant(new float[] {1.f, 0.f});
Operand<TFloat32> result = bce.call(labels, predictions, sampleWeight);
// produces 0.458f
การใช้ประเภทการลด SUM :
BinaryCrossentropy bce = new BinaryCrossentropy(tf, Reduction.SUM);
Operand<TFloat32> result = bce.call(labels, predictions);
// produces 1.630f
การใช้ประเภทการลด NONE :
BinaryCrossentropy bce = new BinaryCrossentropy(tf, Reduction.NONE);
Operand<TFloat32> result = bce.call(labels, predictions);
// produces [0.916f, 0.714f]
ค่าคงที่
| บูลีน | FROM_LOGITS_DEFAULT | |
| ลอย | LABEL_SMOOTHING_DEFAULT |
ฟิลด์ที่สืบทอดมา
คอนสตรัคชั่นสาธารณะ
BinaryCrossentropy (Ops tf) สร้างการสูญเสีย Crossentropy แบบไบนารีโดยใช้ getSimpleName() เป็นชื่อการสูญเสีย FROM_LOGITS_DEFAULT สำหรับ fromLogits LABEL_SMOOTHING_DEFAULT สำหรับ label Smoothing และการลดการสูญเสีย REDUCTION_DEFAULT | |
BinaryCrossentropy (Ops tf, การลด การลดลง ) สร้างการสูญเสีย Crossentropy แบบไบนารีโดยใช้ getSimpleName() เป็นชื่อการสูญเสีย FROM_LOGITS_DEFAULT สำหรับ fromLogits และ LABEL_SMOOTHING_DEFAULT สำหรับ labelSmoothing | |
BinaryCrossentropy (Ops tf, บูลีนจาก Logits) สร้างการสูญเสีย Crossentropy แบบไบนารีโดยใช้ getSimpleName() เป็นชื่อการสูญเสีย labelSmoothing ของ LABEL_SMOOTHING_DEFAULT ซึ่งลดลง REDUCTION_DEFAULT | |
BinaryCrossentropy (Ops tf ชื่อสตริง บูลีนจาก Logits) สร้างการสูญเสีย Crossentropy แบบไบนารีโดยใช้ label Smoothing ที่ LABEL_SMOOTHING_DEFAULT และลด REDUCTION_DEFAULT | |
BinaryCrossentropy (Ops tf, บูลีนจาก Logits, ป้ายกำกับโฟลตให้เรียบ) สร้างการสูญเสีย Binary Crossentropy โดยใช้ getSimpleName() เป็นชื่อการสูญเสีย และลด REDUCTION_DEFAULT | |
BinaryCrossentropy (Ops tf, ชื่อสตริง, บูลีนจาก Logits, ป้ายกำกับโฟลตให้เรียบ) สร้างการสูญเสีย Binary Crossentropy โดยใช้การลด REDUCTION_DEFAULT | |
BinaryCrossentropy (Ops tf, บูลีนจาก Logits, ป้ายกำกับโฟลตการทำให้เรียบ, การลดการลด ) สร้างการสูญเสีย Crossentropy แบบไบนารี | |
BinaryCrossentropy (Ops tf, ชื่อสตริง, บูลีนจาก Logits, ป้ายกำกับโฟลตการทำให้เรียบ, การลดการ ลด) สร้างการสูญเสีย Crossentropy แบบไบนารี |
วิธีการสาธารณะ
| <T ขยาย TNumber > ตัวถูกดำเนินการ <T> | โทร ( ตัวดำเนินการ <? ขยาย TNumber > ป้ายกำกับ, ตัวดำเนินการ <T> การคาดคะเน, ตัวดำเนินการ <T> ตัวอย่างน้ำหนัก) สร้างตัวถูกดำเนินการที่คำนวณการสูญเสีย |
วิธีการสืบทอด
ค่าคงที่
บูลีนสุดท้ายแบบคงที่สาธารณะ FROM_LOGITS_DEFAULT
โฟลตสุดท้ายแบบคงที่สาธารณะ LABEL_SMOOTHING_DEFAULT
คอนสตรัคชั่นสาธารณะ
BinaryCrossentropy สาธารณะ (Ops tf)
สร้างการสูญเสีย Crossentropy แบบไบนารีโดยใช้ getSimpleName() เป็นชื่อการสูญเสีย FROM_LOGITS_DEFAULT สำหรับ fromLogits LABEL_SMOOTHING_DEFAULT สำหรับ label Smoothing และการลดการสูญเสีย REDUCTION_DEFAULT
พารามิเตอร์
| ไม่ | Ops ของ TensorFlow |
|---|
BinaryCrossentropy สาธารณะ (Ops tf, การลด การลด )
สร้างการสูญเสีย Crossentropy แบบไบนารีโดยใช้ getSimpleName() เป็นชื่อการสูญเสีย FROM_LOGITS_DEFAULT สำหรับ fromLogits และ LABEL_SMOOTHING_DEFAULT สำหรับ labelSmoothing
พารามิเตอร์
| ไม่ | Ops ของ TensorFlow |
|---|---|
| การลดน้อยลง | ประเภทของส่วนลดที่จะใช้กับการสูญเสีย |
BinaryCrossentropy สาธารณะ (Ops tf, บูลีนจาก Logits)
สร้างการสูญเสีย Crossentropy แบบไบนารีโดยใช้ getSimpleName() เป็นชื่อการสูญเสีย labelSmoothing ของ LABEL_SMOOTHING_DEFAULT ซึ่งลดลง REDUCTION_DEFAULT
พารามิเตอร์
| ไม่ | Ops ของ TensorFlow |
|---|---|
| จากLogits | ไม่ว่าจะตีความการทำนายเป็นเทนเซอร์ของค่า logit หรือไม่ |
BinaryCrossentropy สาธารณะ (Ops tf, ชื่อสตริง, บูลีนจาก Logits)
สร้างการสูญเสีย Crossentropy แบบไบนารีโดยใช้ label Smoothing ที่ LABEL_SMOOTHING_DEFAULT และลด REDUCTION_DEFAULT
พารามิเตอร์
| ไม่ | Ops ของ TensorFlow |
|---|---|
| ชื่อ | ชื่อของการสูญเสีย |
| จากLogits | ไม่ว่าจะตีความการทำนายเป็นเทนเซอร์ของค่า logit หรือไม่ |
BinaryCrossentropy สาธารณะ (Ops tf, บูลีนจาก Logits, ป้ายกำกับโฟลตให้เรียบ)
สร้างการสูญเสีย Binary Crossentropy โดยใช้ getSimpleName() เป็นชื่อการสูญเสีย และลด REDUCTION_DEFAULT
พารามิเตอร์
| ไม่ | Ops ของ TensorFlow |
|---|---|
| จากLogits | ไม่ว่าจะตีความการทำนายเป็นเทนเซอร์ของค่า logit หรือไม่ |
| ฉลากปรับให้เรียบ | ตัวเลขในช่วง [0, 1] เมื่อ 0 จะไม่มีการทำให้เรียบเกิดขึ้น เมื่อ > 0 ให้คำนวณการสูญเสียระหว่างป้ายกำกับที่คาดการณ์ไว้และเวอร์ชันที่ปรับให้เรียบของป้ายกำกับที่แท้จริง โดยที่การปรับให้เรียบจะบีบป้ายกำกับไปที่ 0.5 ค่าฉลากการปรับให้เรียบที่มากขึ้นจะสอดคล้องกับการปรับให้เรียบมากขึ้น |
BinaryCrossentropy สาธารณะ (Ops tf, ชื่อสตริง, บูลีนจาก Logits, ป้ายกำกับโฟลตให้เรียบ)
สร้างการสูญเสีย Binary Crossentropy โดยใช้การลด REDUCTION_DEFAULT
พารามิเตอร์
| ไม่ | Ops ของ TensorFlow |
|---|---|
| ชื่อ | ชื่อของการสูญเสีย |
| จากLogits | ไม่ว่าจะตีความการทำนายเป็นเทนเซอร์ของค่า logit หรือไม่ |
| ฉลากปรับให้เรียบ | ตัวเลขในช่วง [0, 1] เมื่อ 0 จะไม่มีการทำให้เรียบเกิดขึ้น เมื่อ > 0 ให้คำนวณการสูญเสียระหว่างป้ายกำกับที่คาดการณ์ไว้และเวอร์ชันที่ปรับให้เรียบของป้ายกำกับที่แท้จริง โดยที่การปรับให้เรียบจะบีบป้ายกำกับไปที่ 0.5 ค่าฉลากการปรับให้เรียบที่มากขึ้นจะสอดคล้องกับการปรับให้เรียบมากขึ้น |
BinaryCrossentropy สาธารณะ (Ops tf, บูลีนจาก Logits, ป้ายกำกับโฟลตทำให้เรียบ, ลด การลด )
สร้างการสูญเสีย Crossentropy แบบไบนารี
พารามิเตอร์
| ไม่ | Ops ของ TensorFlow |
|---|---|
| จากLogits | ไม่ว่าจะตีความการทำนายเป็นเทนเซอร์ของค่า logit หรือไม่ |
| ฉลากปรับให้เรียบ | ตัวเลขในช่วง [0, 1] เมื่อ 0 จะไม่มีการทำให้เรียบเกิดขึ้น เมื่อ > 0 ให้คำนวณการสูญเสียระหว่างป้ายกำกับที่คาดการณ์ไว้และเวอร์ชันที่ปรับให้เรียบของป้ายกำกับที่แท้จริง โดยที่การปรับให้เรียบจะบีบฉลากไปที่ 0.5 ค่าฉลากการปรับให้เรียบที่มากขึ้นจะสอดคล้องกับการปรับให้เรียบมากขึ้น |
| การลดน้อยลง | ประเภทของส่วนลดที่จะใช้กับการสูญเสีย |
BinaryCrossentropy สาธารณะ (Ops tf, ชื่อสตริง, บูลีนจาก Logits, ป้ายกำกับโฟลตให้เรียบ, ลดการลด )
สร้างการสูญเสีย Crossentropy แบบไบนารี
พารามิเตอร์
| ไม่ | Ops ของ TensorFlow |
|---|---|
| ชื่อ | ชื่อของการสูญเสีย |
| จากLogits | ไม่ว่าจะตีความการทำนายเป็นเทนเซอร์ของค่า logit หรือไม่ |
| ฉลากปรับให้เรียบ | ตัวเลขในช่วง [0, 1] เมื่อ 0 จะไม่มีการทำให้เรียบเกิดขึ้น เมื่อ > 0 ให้คำนวณการสูญเสียระหว่างป้ายกำกับที่คาดการณ์ไว้และเวอร์ชันที่ปรับให้เรียบของป้ายกำกับที่แท้จริง โดยที่การปรับให้เรียบจะบีบฉลากไปที่ 0.5 ค่าฉลากการปรับให้เรียบที่มากขึ้นจะสอดคล้องกับการปรับให้เรียบมากขึ้น |
| การลดน้อยลง | ประเภทของส่วนลดที่จะใช้กับการสูญเสีย |
ขว้าง
| ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย | ถ้า label Smoothing ไม่อยู่ในช่วงรวม 0 - 1 |
|---|
วิธีการสาธารณะ
ตัวดำเนินการ สาธารณะ <T> โทร ( ตัวดำเนินการ <? ขยาย TNumber > ป้ายกำกับ, ตัวดำเนินการ <T> การคาดการณ์, ตัวดำเนินการ <T> ตัวอย่างน้ำหนัก)
สร้างตัวถูกดำเนินการที่คำนวณการสูญเสีย
หากทำงานในโหมดกราฟ การคำนวณจะส่ง TFInvalidArgumentException หากค่าการคาดการณ์อยู่นอกช่วง o [0 ถึง 1.]. ในโหมด Eager การโทรนี้จะโยน IllegalArgumentException หากค่าการคาดการณ์อยู่นอกช่วง o [0 ถึง 1.]
พารามิเตอร์
| ฉลาก | ค่าความจริงหรือป้ายกำกับ |
|---|---|
| การคาดการณ์ | การทำนายค่าจะต้องอยู่ในช่วง [0 ถึง 1.] รวม |
| ตัวอย่างน้ำหนัก | SampleWeights ที่เป็นตัวเลือกจะทำหน้าที่เป็นสัมประสิทธิ์การสูญเสีย หากมีการระบุสเกลาร์ การสูญเสียก็จะถูกปรับขนาดตามค่าที่กำหนด หาก SampleWeights เป็นเทนเซอร์ที่มีขนาด [batch_size] ค่าที่สูญเสียทั้งหมดสำหรับแต่ละตัวอย่างในแบตช์จะถูกปรับขนาดใหม่โดยองค์ประกอบที่เกี่ยวข้องในเวกเตอร์ SampleWeights หากรูปร่างของ SampleWeights คือ [batch_size, d0, .. dN-1] (หรือสามารถถ่ายทอดไปยังรูปร่างนี้ได้) ดังนั้น องค์ประกอบที่สูญเสียแต่ละรายการของการคาดการณ์จะถูกปรับขนาดตามค่าที่สอดคล้องกันของ SampleWeights (หมายเหตุสำหรับ dN-1: ฟังก์ชันการสูญเสียทั้งหมดลดลง 1 มิติ โดยปกติจะเป็นแกน=-1) |
การส่งคืน
- การสูญเสีย
ขว้าง
| ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย | หากคำทำนายอยู่นอกช่วง [0.-1.] |
|---|