keras 'ModelCheckpoint ไม่ทำงาน


8

ฉันพยายามฝึกโมเดลใน keras และฉันใช้ModelCheckpointเพื่อบันทึกโมเดลที่ดีที่สุดตามการตรวจสอบความถูกต้องที่ตรวจสอบ (ในกรณีของฉันคือดัชนี Jaccard )

ในขณะที่ฉันสามารถเห็นรูปแบบการปรับปรุงในแผงเมตริกซ์เมื่อฉันพยายามที่จะโหลดน้ำหนักและประเมินรูปแบบมันไม่ทำงานเลย ยิ่งไปกว่านั้นด้วยการประทับเวลาของไฟล์ที่ควรเก็บตุ้มน้ำหนักฉันสามารถบอกได้ว่าไม่ได้ถูกบันทึกไว้เลย เวลาประทับสอดคล้องกับเวลาที่ฉันเริ่มการฝึกอบรม

มีใครพบปัญหาดังกล่าวมาก่อนหรือไม่

คำตอบ:


7

คุณรันModelCheckpointด้วยพารามิเตอร์เริ่มต้น (นอกเหนือจากmonitor) หรือไม่

ModelCheckpointมีพารามิเตอร์ที่เรียกว่าmodeซึ่งระบุประเภทของการวัดที่จะใช้ modeสามารถรับ 3 ค่า'min' 'max'และ'auto'(ซึ่งเป็นค่าเริ่มต้น):

  • min: หมายความว่าคุณต้องการลดเมตริกให้น้อยที่สุด (เช่นฟังก์ชันการสูญเสีย)
  • max: หมายถึงคุณต้องการเพิ่มเมตริกให้มากที่สุด (เช่นความแม่นยำ)
  • auto: พยายามคิดว่าจะทำอย่างไรด้วยตนเอง ถ้าคุณมองไปที่รหัสก็ตรวจสอบว่าชื่อตัวชี้วัดที่มีหรือถ้ามันเริ่มต้นด้วย'acc' 'fmeasure'ถ้าใช่มันตั้งโหมดไปหากไม่ได้จะกำหนดมันmaxmin

ในกรณีของคุณคุณสามารถตรวจสอบดัชนี Jaccard maxซึ่งเป็นตัวชี้วัดที่คุณต้องการขยายดังนั้นคุณจึงต้องการชุดโหมดไป โดยปกติแล้วเพราะ "jaccard" มีสตริง "acc" แม้ว่าโหมดจะถูกตั้งค่าให้autoมันทำงานได้ดี

หากคุณตั้งชื่อตัวชี้วัดของคุณเอง (เช่นmy_metric) โหมดเริ่มต้นจะถูกตั้งค่าเป็นminซึ่งหมายความว่ามันจะจัดเก็บน้ำหนักที่ให้ประสิทธิภาพการทำงานน้อยที่สุดในการวัดของคุณซึ่งควรเป็นน้ำหนักของยุคแรก

คำแนะนำ : ครั้งต่อไปลองทำด้วยความmode='max'มั่นใจ


ใช่คุณถูก. ฉันตั้งชื่อตัวชี้วัดของฉันintersection_over_unionและอาจเป็นที่เก็บตุ้มน้ำหนักที่มีคะแนนต่ำสุดซึ่งเป็นสิ่งที่มาจากยุคแรก นั่นทำให้รู้สึกมาก ขอบคุณ!
ILM91

ไม่เป็นไร ดีใจที่ฉันช่วยได้!
MzdR
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.