Deploy Deep Learning Model บน Production Environment

Original article was published on Deep Learning on Medium

Step 1— สร้าง API สำหรับ Deep Learning Model

โดยโครงสร้าง Project ที่ทำ มีตามนี้

\---thai-handwritten-recognition-backend
| app.py
| model.h5
| model.json
|
\---model
| load.py

👉 app.py : จะเป็น app route ที่เราจะทำ
👉 model.h5 : จะเป็น weight model ที่ทำการ train มา
👉 model.json : จะเป็น structure ของ model
👉 load.py : จะเป็น file สำหรับการอ่าน model ของ api

💡 Lib version : tensorflow-1.15 , keras-2.3.1 , Flask-1.1.2

1.1 สร้าง load.py สำหรับอ่าน Model

  • Import lib ทั้งหมดที่เราจะใช้ หลักๆ ก็จัดการเกี่ยวกับรูปภาพและ Model
  • สร้าง Tensorflow session สำหรับการ load model ที่ทำการ train มา
  • สร้าง function สำหรับการ load model

1.2 สร้าง app.py สำหรับการ Predict

  • Import lib ทั้งหมดที่เราจะใช้ หลักๆ ก็จะมี request , cross_origin นอกนั้นก็จะเป็นการจัดการเกี่ยวกับรูปภาพและ Model
  • สร้าง Function สำหรับการ Predict

ภายใน predict() จะมีการอ่าน request image data ที่เราจะส่งมาจากหน้าบ้านเป็น data_url base64 แล้วมาทำการ encode() จากนั้นเราจะทำการ save รูปนี้ไว้ที่ root path ด้วยชื่อ output.png

จากนั้นทำการอ่านรูปนั้นขึ้นมาเป็น byte array แล้วทำการ resize to 95,95 และ reshape ให้สามารถใช้งานกั8/p>

จากนั้นทำการ Predict รูปที่ทำการ reshape มาด้วย model.predict() พอได้ response มาแล้วนำไป map กับ ผลลัพธ์ตัวอักษรที่กำหนดไว้

  • สร้าง Function สำหรับการ Save image
  • สร้าง Function สำหรับการ Map response

เท่านี้ก็จะเสร็จเรียบร้อย เราก็จะได้ API ที่อ่าน Model ในการทำนายตัวอักษร โดยรับ input เป็นรูป เรียบร้อยแล้ว