อย่างที่เราทราบกันดีว่า I/O หรือระบบ Input/Output เป็นอะไรที่ช้าที่สุด ของระบบคอมพิวเตอร์ การที่จะ Optimize ให้คอมพิวเตอร์ทำงานได้ประสิทธิภาพมากที่สุด ต้องใช้ความรู้ความเข้าใจ บริหารจัดการทรัพยากรส่วนต่าง ๆ เช่น CPU, GPU, Memory, Storage, Network ให้ทำงาน Utilize มากที่สุด ลด Bottleneck ที่ต้องรอข้อมูลระหว่างกัน แต่ในการเทรน Machine Learning ที่เราวิธีที่เราทำกันอยู่ Training Loop จะเริ่มต้นจาก อ่านข้อมูล, สับไพ่ข้อมูล, Split, Data Augmentation, Feed Forward, Loss Function, Backpropagation, Optimizer Update Weight แล้วเริ่มต้น Loop ใหม่ เป็นอย่างนี้ซ้ำ ๆ ไปเรื่อย ๆ ตามลำดับ โดยไม่ได้คำนึงถึงประเด็นด้านบน แล้วเราจะแก้ไขอย่างไร
Tag Archives: optimizer
สอน TensorFlow Lite สร้าง Convolutional Neural Network (ConvNet, CNN) จำแนกรูปภาพแฟชั่น Fashion MNIST แปลง Convert ไปรันบนมือถือ, อุปกรณ์ Edge – tflite ep.4
ใน ep นี้เราจะสร้าง Convolutional Neural Network (ConvNet, CNN) ด้วยภาษา Python โดยใช้ TensorFlow สำหรับจำแนกรูปภาพแฟชั่น เสื้อผ้า กางเกง กระโปรง รองเท้า กระเป๋า แบบ Single Label Multiclass Classification จากชุดข้อมูล Fashion MNIST Dataset เซฟเป็น SavedModel แล้วใช้ TensorFlow Lite Converter ทำการ Convert เป็น TensorFlow Lite
TensorFlow Lite Converter คืออะไร สอนแปลงโมเดล MobileNet ทำ Transfer Learning สร้าง Custom Classifier Head ไปรันบนมือถือ Mobile, อุปกรณ์ IoT Device – tflite ep.3
TensorFlow Lite Converter เป็นตัวแปลงโมเดล TensorFlow ตัวเต็ม ให้ย่อลงมาเป็นโมเดลขนาดเล็ก ที่ทำงานได้รวดเร็ว สำหรับรันกับ Interpreter บนอุปกรณ์ Edge Device ที่มี Resource จำกัด ด้วยเทคนิค Quantization โดยพิจารณาจาก Hardware ปลายทาง ที่จะนำโมเดลไป Deploy เช่น อุปกรณ์ IoT Device, มือถือ Mobile, Microcontroller ต่าง ๆ
TensorFlow Lite (TFLite) คืออะไร สอนแปลงโมเดล TensorFlow ใน Python ไปรันบนมือถือ Mobile, Android, iOS, อุปกรณ์ Edge, IoT Device, Raspberry Pi, Arduino, Embedded, Microcontroller – tflite ep.1
งานหลาย ๆ งาน มีความต้องการใช้งานโมเดล Machine Learning บนอุปกรณ์ Edge ของ Network แทนที่จะต้องเสียเวลา ส่งข้อมูลไป-กลับระหว่าง Server เราสามารถแปลงโมเดลเป็น TensorFlow Lite ให้ไปรันบนมือถือ และอุปกรณ์ Edge ได้เลย
Refactor โค้ด Neural Network สร้าง DataBunch และ Learner ปรับปรุง Training Loop – Neural Network ep.9
ใน ep ที่แล้วเราได้ Neural Network และ Training Loop ที่ทำงานได้ดีพอสมควร มีการวัดผล Metrics กับข้อมูลใน Validation Set เพื่อให้แน่ใจว่าโมเดลทำงานได้ถูกต้องกับข้อมูลที่ไม่เคยเห็นมาก่อน แต่โค้ด Training Loop ของเรายังมีความซับซ้อนเกินไป ใช้ Parameter จากภายนอกถึง 6 ตัว ซึ่งมากเกินไป ทำให้ยากต่อการต่อยอดเทรนในอัลกอริทึมที่ซับซ้อนยิ่งขึ้น แล้วเราจะแก้ไขอย่างไร
Refactor สร้าง Optimizer สำหรับอัพเดท Parameter ของ Neural Network ในการเทรน Deep Learning – Neural Network ep.6
ใน ep นี้เราจะมา Refactor Model สร้าง Module, Parameter และ Optimizer เป็น Abstraction ในจัดการการอัพเดท Parameter ของโมเดล ด้วยอัลกอริทึมต่าง ๆ เพื่อลดความซับซ้อน ของ Training Loop ทำให้การเทรน Neural Network ยืดหยุ่นขึ้น เราจะใช้โค้ดจาก Neural Network ep 5 เป็นโค้ดเริ่มต้น นำมา Refactor ต่อ