CorgiDude บอร์ด Image Classification โดยใช้ Transfer Learning MobileNetV1
Last updated
Last updated
ดีครับ วันนี้ผมจะมาสอนใช้เครื่องมือที่จะทำ transfer learning MobilenetV1 โปรแกรมทั้งหมดผมไม่ได้เขียนเองนะครับ ผมแค่เห็นก่อน และใช้งานเป็นครับ ก่อนอืนเลย ผมจะมาอภิบาย transfer learning ที่ผมเข้าใจ แต่อาจจะถูกไม่ถูกไม่รู้นะครับแต่ผมอภิบายตามที่ผมเข้าใจครับ ถ้าผิดก็กราบขออภัยมา ณ ที่นี้ด้วยครับ
transfer learning คือการเอา โมเดลที่มีน้ำหนักคะแนนแล้วมาใช้ แต่เราไม่ได้ใช้ทั้งหมดนะครับ เราใช้ความเก่งของโมเดลที่สามารถแยกแยะ ได้ มากกว่าที่เราจะใช้ เช่น ผมใช้โมเดล MobilenetV1 เจ้าตัวนี้มีสามารถแยกแยะได้ 1000 อย่าง แต่ผมจะเอามา transfer learning ใหม่ใช้มันแยกแยะได้ 2 อย่างครับ คำถามคือมันต้องทำยังไงละถึงจะทำ transfer learning ได้ คำตอมคือ เราต้องไปแก้โมเดลบ่างส่วนแถวๆ สุดท้าย อะครับ แต่ข้างบนเราก็ยังใช้ของ โมเดล MobilenetV1 อยู่นัครับ
แล้วมันดีกว่าเทรนใหม่หมดยังไง - อันดับแรกมันทำให้เทรนได้ใวกว่า หลายเท่า - เทรนแล้วเก่งใวกว่า เพราะโมเดลเคยเรียนสิ่งที่อย่างกว่ามาแล้ว - ดาด้าเช็ตน้องก็ยังใช้งานได้อยู่ครับ
ส่วนตัวอย่างของผม ผมจะทำ แยกแยะได้ 2 อย่าง ครับ เป็นหมากับแมว อย่างละ 1000 รูป ครับ ลิ้งล่างนี้เลยครับ
เราจะมาเริ่มกันได้เลยครับ ผมเลือกสิ่งที่ใช้งานง่ายมาให้แล้วครับ เข้าลิ่งนี้ครับ
ลิ้งนี้จะพอไป colab ตามรูปครับ
หลังจากเข้ามาแล้ว กด Runtime---> Change runtime type
เลือกเป็น GPU ครับ
กด SAVE เลยครับ ต่อไปกด Connect
รอแปปหนึ่งครับ
หลังจากได้แบบนี้แล้ว กด Run cell ไปเลยครับ
คำสั่งนี้จะ กำหนดให้ใช้ tensorflow_version 1.x และทำการ clone สิ่งที่ตเองต้องใช้มาครับ ต่อไป แก้ให้เป็นตามรูปครับ
!gdown https://drive.google.com/uc?id=1QjOapgT4E5FlG9yML4aClQ_5iNQSr-aU #dog breed classification dataset !unzip --qq /content/datasets.zip from axelerate.networks.classifier.data_gen import visualize_dataset visualize_dataset('datasets', 10)
แล้วกดรันเลยครับ ต่อไปแก้ config ตามนี้ครับ ตัวนี้พิมเอานะครับอันนี้ครับ
หลังจากแก้เสร็จเราก็จะมาเริ่มเทรนกันเลยนะครับ
กดรันตามรูปเลยครับ ผลก็จะได้ประมาณนี้ครับ
รอจนกว่าจะเสร็จครับ เพราะทำเยอะ ทั้งเทรนและแปลงเป็น kmodel ให้ด้วยครับ ถ้าเสร็จแล้วจะเป็นแบบนี้ครับ
หลังจากที่เสร็จ ไฟล์ kmodel จะอยู่ตามรูปครับโหลดไปใช้งานได้เลยครับ
หลังจากโหลดมาแล้ว เอาไป Flash ไปที่ตำแหน่ง 0x200000 เลยครับ
วิธีการ Flash บทความนี้ครับ (https://www.aiiotshop.com/b/5)[https://www.aiiotshop.com/b/5]
โปรแกรมรันตามนี้เลยครับหลังจาก Flash เสร็จครับ
ผลจากการทดลอง ตามรูปเลยครับ