ข้อผิดพลาดในการตรวจสอบความถูกต้องน้อยกว่าข้อผิดพลาดการฝึกอบรม?


57

ฉันพบคำถามสองข้อที่นี่และที่นี่เกี่ยวกับปัญหานี้ แต่ยังไม่มีคำตอบหรือคำอธิบายที่ชัดเจนฉันบังคับใช้ปัญหาเดียวกันที่ข้อผิดพลาดในการตรวจสอบความถูกต้องน้อยกว่าข้อผิดพลาดการฝึกอบรมในเครือข่าย Convolution Neural นั่นหมายความว่าอย่างไร?


ฉันไม่คิดว่าคำถามนี้สามารถตอบได้โดยไม่ทราบจำนวนแน่นอนของการฝึกอบรม (CV) และกรณีทดสอบรวมทั้งความแปรปรวนที่สังเกตเห็นสำหรับ MSE สำหรับการตรวจสอบข้ามและการทดสอบ
cbeleites

สลับข้อมูล
user0

เราสรุปอะไรจากสิ่งนี้ ใช่มันสร้างขึ้นจากเครือข่ายหนาแน่นที่มีเลเยอร์แบบเลื่อนออกและชั้นเป็นชุด ! [ใส่คำอธิบายภาพที่นี่ ] ( i.stack.imgur.com/KX1Fz.png )
Srinath

คำตอบ:


69

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

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

  1. ชุดการฝึกอบรมของคุณมีหลายกรณีที่ยากที่จะเรียนรู้
  2. ชุดการตรวจสอบความถูกต้องของคุณส่วนใหญ่นั้น 'ง่าย' ที่จะทำนาย

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

ฉันคิดถึงการประเมินแบบจำลองในสี่หมวดหมู่ที่แตกต่างกัน:

  1. Underfitting - การตรวจสอบและการฝึกอบรมเกิดข้อผิดพลาดสูง

  2. Overfitting - ข้อผิดพลาดในการตรวจสอบความถูกต้องสูงข้อผิดพลาดการฝึกอบรมต่ำ

  3. แบบที่ดี - ข้อผิดพลาดการตรวจสอบต่ำต่ำกว่าข้อผิดพลาดการฝึกอบรมเล็กน้อย

  4. ไม่ทราบแบบ - ข้อผิดพลาดในการตรวจสอบต่ำข้อผิดพลาดในการฝึกอบรม 'สูง'

ฉันบอกว่าพอดี 'ไม่ทราบ' เพราะผลลัพธ์นั้นตรงกันข้ามกับวิธีการเรียนรู้ของเครื่อง สาระสำคัญของ ML คือการทำนายสิ่งที่ไม่รู้ หากคุณคาดเดาสิ่งที่ไม่รู้จักได้ดีกว่าสิ่งที่คุณได้เรียนรู้แล้วให้ AFAIK ข้อมูลระหว่างการฝึกอบรมและการตรวจสอบความถูกต้องต้องแตกต่างกัน นี่อาจหมายความว่าคุณจำเป็นต้องประเมินวิธีการแยกข้อมูลของคุณใหม่เพิ่มข้อมูลเพิ่มเติมหรืออาจเปลี่ยนการวัดประสิทธิภาพของคุณ (คุณวัดประสิทธิภาพที่คุณต้องการจริงหรือไม่)

แก้ไข

เพื่อรับมือกับการอ้างอิง OP เพื่อหลามก่อนหน้าคำถามลาซานญ่า

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

การสูญเสียการฝึกอบรมที่มีการคำนวณมากกว่าชุดการฝึกอบรมทั้งหมด ในทำนองเดียวกันการสูญเสียการตรวจสอบมีการคำนวณมากกว่าชุดข้อมูลการตรวจสอบทั้งหมด โดยทั่วไปชุดฝึกอบรมจะมีขนาดใหญ่กว่าการตรวจสอบความถูกต้องอย่างน้อย 4 เท่า (80-20) เนื่องจากข้อผิดพลาดนั้นได้รับการคำนวณเหนือตัวอย่างทั้งหมดคุณสามารถคาดหวังได้ถึงประมาณ 4X ของการสูญเสียของชุดการตรวจสอบความถูกต้อง คุณจะสังเกตเห็นว่าการสูญเสียการฝึกอบรมและการสูญเสียการตรวจสอบกำลังเข้าหากันเมื่อการฝึกอบรมดำเนินต่อไป นี่เป็นเจตนาที่ว่าข้อผิดพลาดในการฝึกอบรมของคุณเริ่มลดลงจากข้อผิดพลาดในการตรวจสอบของคุณคุณจะเริ่มใช้โมเดลของคุณมากเกินไป !!!

ฉันหวังว่าสิ่งนี้จะชี้แจงข้อผิดพลาดเหล่านี้


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

@cdeterman ขอบคุณฉันใช้ RMSE เป็นตัวชี้วัดประสิทธิภาพ ฉันได้แบ่งข้อมูลของฉันออกเป็น 20% สำหรับการทดสอบและ 80% สำหรับการฝึกอบรมและการตรวจสอบความถูกต้อง (20% ของข้อมูลการฝึกอบรมได้รับการตรวจสอบความถูกต้องเพื่อคำนวณข้อผิดพลาดในการตรวจสอบ) ที่จริงแล้วข้อผิดพลาดในการตรวจสอบความถูกต้องต่ำกว่าข้อผิดพลาดการฝึกอบรมเล็กน้อย ข้อผิดพลาดในการทดสอบสูงกว่าข้อผิดพลาดในการฝึกอบรมและการตรวจสอบความถูกต้อง เราสามารถค้นหากรณีที่คล้ายกันใน MNISTdataset สำหรับสถิติการรู้จำลายมือด้วยตนเองstackexchange.com/questions/178371/…
Bido

@Bido คำถามล่าสุดของฉันคือที่อยู่สำหรับแก้ไขหรือไม่
cdeterman

@cdeterman ขอบคุณ ฉันเพิ่งสังเกตเห็นว่าคุณได้แก้ไขคำตอบของคุณ มันชัดเจนและเป็นประโยชน์
Bido

คำอธิบายที่ดีหากคุณสามารถเพิ่มกราฟสองสามกราฟ - มันจะดีที่สุดเท่าที่จะเป็นไปได้
Taras Matsyk

109

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


12
ช่างเป็นคำตอบที่ง่ายและสมเหตุสมผล!
rajb245

4
ใช่ควรทำเครื่องหมายเป็นคำตอบที่ถูกต้องแน่นอน
Simanas

2
ฉันลบเลเยอร์การออกกลางคันของฉัน แต่ยังคงเห็นการสูญเสียการตรวจสอบความถูกต้องต่ำกว่าการสูญเสียการฝึกอบรมในตอนแรก! (ฉันไม่ได้ระบุ regularization ใด ๆ ในเลเยอร์เช่นกัน!)
Josiah Yoder

เหมาะกับกรณีของฉัน ใช้การออกกลางคันจำนวนมาก
André Christoffer Andersen

@JosiahYoder - คุณมีอะไรจะแบ่งปันอีกไหม ฉันมีคุณสมบัติอินพุต 1650 เมื่อฉันทำให้เครือข่ายมีขนาดเล็ก (1650, 50, 1) ออกกลางคันหรือไม่มีการออกกลางคันข้อผิดพลาดในการฝึกอบรมในยุคเริ่มต้นสูงกว่าข้อผิดพลาดในการตรวจสอบความถูกต้อง เมื่อฉันใช้เครือข่ายขนาดใหญ่ (1650, 1200, 800, 100 ..... ประมาณ 10 เลเยอร์จาก 100 ด้วยการเปิดใช้งาน selu) รูปแบบแปลก ๆ ของความแม่นยำในการตรวจสอบความถูกต้องสูงขึ้นจะลดลงบ้าง
MiloMinderbinder

19

ฉันมีคะแนนไม่เพียงพอที่จะแสดงความคิดเห็นในคำตอบของ @ DK แต่ตอนนี้ได้รับคำตอบว่าเป็นคำถามที่พบบ่อยเกี่ยวกับเอกสารของ Keras:

"ทำไมการสูญเสียการฝึกจึงสูงกว่าการสูญเสียการทดสอบมาก

โมเดล Keras มีสองโหมด: การฝึกอบรมและการทดสอบ กลไกการทำให้เป็นมาตรฐานเช่นการออกกลางคันและการทำให้เป็นมาตรฐานน้ำหนัก L1 / L2 ถูกปิดในเวลาทดสอบ

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


1
สิ่งนี้ไม่ได้ตอบคำถามทั้งหมด เมื่อปิดใช้งานการออกกลางคันฉันยังคงเห็นการสูญเสียการตรวจสอบความถูกต้องประมาณครึ่งหนึ่งของการสูญเสียการฝึกอบรมสำหรับ epoch หลายครั้งติดต่อกัน!
Josiah Yoder

คุณเป็นตัวแทนข้อมูลการฝึกอบรมของข้อมูล dev หรือไม่
dter

ฉันสุ่มแบ่งชุดข้อมูลเป็นการฝึกอบรมและการทดสอบ มันดูเหมือนจะเป็นตัวอย่างที่ดี ฉันกำลังทำงานกับปัญหาการถดถอยที่ตัวแยกประเภทที่ดีที่สุดดีกว่าการคาดการณ์ค่าเฉลี่ยเพียงเล็กน้อยเท่านั้น
Josiah Yoder

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

6

2 เซนต์ของฉัน: ฉันยังมีปัญหาเดียวกันแม้ว่าจะไม่มีเลเยอร์กลางคัน ในกรณีของฉันเลเยอร์แบบกลุ่มเป็นกลุ่มผู้กระทำผิด เมื่อฉันลบพวกเขา - การสูญเสียการฝึกอบรมคล้ายกับการสูญเสียการตรวจสอบ อาจเป็นไปได้ว่าเกิดขึ้นเพราะในระหว่างการฝึกอบรมแบทช์ - นอร์มใช้ค่าเฉลี่ยและความแปรปรวนของแบทช์อินพุทที่กำหนดซึ่งอาจแตกต่างจากแบทช์เป็นแบทช์ แต่ในระหว่างการประเมินแบทช์ - นอร์มใช้ค่าเฉลี่ยและความแปรปรวนซึ่งทั้งสองอย่างนี้สะท้อนคุณสมบัติของการฝึกอบรมทั้งชุดที่ดีกว่าค่าเฉลี่ยและความแปรปรวนของแบทช์เดี่ยวระหว่างการฝึกอบรม อย่างน้อยนั่นคือวิธีการนำแบทช์ไปปฏิบัติใน pytorch


1
ขอบคุณ @ Mans007 สิ่งนี้เกิดขึ้นกับฉันและฉันใช้ Keras ชั้นของชุดค่าปรกติเป็นสาเหตุ
Roei Bahumi

4

ความเป็นไปได้อีกอย่างที่รวมทั้งคำตอบของ@cdetermanและ@DKในทางใดทางหนึ่งคือถ้าคุณใช้กลไกการเพิ่มข้อมูล การเสริมข้อมูลโดยปกติจะกระทำในชุดฝึกอบรมเท่านั้นไม่ใช่ในชุดการตรวจสอบความถูกต้อง (สำหรับชุดการออกกลางคัน) และสิ่งนี้อาจนำไปสู่ชุดการตรวจสอบที่ประกอบด้วยกรณี "ง่าย" ที่จะคาดการณ์ได้ดีกว่าชุดฝึกอบรม


2

ฉันได้ผลลัพธ์ที่คล้ายกัน (การสูญเสียการทดสอบต่ำกว่าการสูญเสียการฝึกอย่างมาก) เมื่อฉันลบการทำให้เป็นมาตรฐานการออกกลางคันแล้วความสูญเสียทั้งสองก็เกือบจะเท่ากัน


0

@cdeterman และ @DK มีคำอธิบายที่ดี ฉันต้องการเหตุผลอีกหนึ่งข้อ - data leakage. บางส่วนของข้อมูลรถไฟของคุณ "สัมพันธ์กันอย่างใกล้ชิด" กับข้อมูลการทดสอบ

ตัวอย่างที่มีศักยภาพ: จินตนาการว่าคุณมีสุนัข 1,000 ตัวและแมว 1,000 ตัวที่มีรูปคล้ายกัน 500 รูปต่อสัตว์เลี้ยงหนึ่ง (เจ้าของบางคนชอบที่จะถ่ายภาพสัตว์เลี้ยงของพวกเขาในตำแหน่งที่คล้ายกันมาก) พูดบนพื้นหลัง ดังนั้นถ้าคุณแยก 70/30 สุ่มคุณจะได้รับข้อมูลการรั่วไหลของข้อมูลรถไฟลงในข้อมูลการทดสอบ


0

กล่าวง่ายๆว่าหากการคำนวณการสูญเสียการฝึกอบรมและการสูญเสียการตรวจสอบถูกต้องเป็นไปไม่ได้ที่การสูญเสียการฝึกอบรมจะสูงกว่าการสูญเสียการตรวจสอบ นี่เป็นเพราะการเผยแพร่กลับลดโดยตรงข้อผิดพลาดที่คำนวณบนชุดการฝึกอบรมและเฉพาะ INDIRECTLY (ไม่รับประกันแม้แต่!) ลดข้อผิดพลาดที่คำนวณในชุดการตรวจสอบความถูกต้อง

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


0

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


0

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

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

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

โปรดทราบว่าในขณะที่ไม่มีอาการผลของ (1) จะหายไป (2) ไม่! ด้านล่างฉันแสดงให้เห็นว่า Keras ดูเหมือนจะทำทั้ง (1) และ (2)

(1) แสดงให้เห็นว่าการวัดมีค่าเฉลี่ยในแต่ละชุดในยุคมากกว่าทั้งหมดในคราวเดียวในตอนท้าย สังเกตุความแตกต่างอย่างมากของความแม่นยำในตัวอย่างเทียบกับ val_accuracy ที่นิยมใช้ val_accuracy ในช่วงแรก นี่เป็นเพราะข้อผิดพลาดในตัวอย่างบางส่วนที่คำนวณด้วยการอัพเดทแบบชุดน้อยมาก

>>> model.fit(Xtrn, Xtrn, epochs = 3, batch_size = 100, 
...                 validation_data = (Xtst, Xtst))
Train on 46580 samples, validate on 1000 samples
Epoch 1/3
46580/46580 [==============================] - 8s 176us/sample 
- loss: 0.2320 - accuracy: 0.9216 
- val_loss: 0.1581 - val_accuracy: 0.9636
Epoch 2/3
46580/46580 [==============================] - 8s 165us/sample 
- loss: 0.1487 - accuracy: 0.9662 
- val_loss: 0.1545 - val_accuracy: 0.9677
Epoch 3/3
46580/46580 [==============================] - 8s 165us/sample 
- loss: 0.1471 - accuracy: 0.9687 
- val_loss: 0.1424 - val_accuracy: 0.9699
<tensorflow.python.keras.callbacks.History object at 0x17070d080>

(2) การแสดงข้อผิดพลาดจะถูกคำนวณก่อนการอัพเดตสำหรับแต่ละชุด โปรดทราบว่าสำหรับยุค 1 เมื่อเราใช้batch_size = nRows(เช่นข้อมูลทั้งหมดในชุดเดียว) ข้อผิดพลาดในตัวอย่างคือประมาณ 0.5 (การคาดเดาแบบสุ่ม) สำหรับยุค 1 แต่ข้อผิดพลาดในการตรวจสอบคือ 0.82 ดังนั้นข้อผิดพลาดในตัวอย่างจึงถูกคำนวณก่อนการอัพเดตแบบแบตช์ในขณะที่ข้อผิดพลาดในการตรวจสอบความถูกต้องคำนวณหลังจากการอัพเดทแบบแบตช์

>>> model.fit(Xtrn, Xtrn, epochs = 3, batch_size = nRows, 
...                 validation_data = (Xtst, Xtst))
Train on 46580 samples, validate on 1000 samples
Epoch 1/3
46580/46580 [==============================] - 9s 201us/sample 
- loss: 0.7126 - accuracy: 0.5088 
- val_loss: 0.5779 - val_accuracy: 0.8191
Epoch 2/3
46580/46580 [==============================] - 6s 136us/sample 
- loss: 0.5770 - accuracy: 0.8211 
- val_loss: 0.4940 - val_accuracy: 0.8249
Epoch 3/3
46580/46580 [==============================] - 6s 120us/sample 
- loss: 0.4921 - accuracy: 0.8268 
- val_loss: 0.4502 - val_accuracy: 0.8249
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.