Notifications
Clear all

iMaterialist (Fashion) 2019 —- ได้เวลาให้ AI วิเคราะห์แฟชั่น และทำความรู้จัก Segmentation Model

28 ข้อความ
2 Users
11 Likes
55.5 K Views
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 409
Topic starter  

สวัสดีครับคุณ @cc8 ในกรณี error แบบนี้ รบกวนคุณ cc8 นำโค้ดของคุณ cc8 ลง Kaggle Notebook หรือ Colab Notebook (ทั้งสองไม่มีค่าใช้จ่าย ใช้บริการ GPU ฟรี) แล้วแชร์เป็น public notebook ครับผม ผมจะได้ลองไล่ error ดู 

จากประสบการณ์ของผมที่ debug โปรแกรมของตัวเองแทบทุกวัน (ฮา) error messages ไม่ค่อยสื่อถึงสาเหตุที่แท้จริง และจำเป็นต้องทดลองรันทีละบรรทัดเพื่อดูความผิดปกติที่แท้จริงครับ

This post was modified 5 years ago by The Neural Engineer

   
CC8 reacted
ตอบกลับอ้างอิง
CC8
 CC8
(@cc8)
Active Member
เข้าร่วมเมื่อ: 5 years ago
ข้อความ: 11
 

รบกวนคุณ @neural-engineer ครับ อันนี้เป็น notebook code ที่ขอคำแนะนำครับ  https://www.kaggle.com/cooncanei/train-model-unet-code  

สอบถามเพิ่มเติม

  • ผม pip install segmentation-models บน kaggle พอ import เกิด error   https://www.kaggle.com/cooncanei/train-model-unet-pip-install-error  แต่เมื่อลองบน colab สามารถ import ได้ ไม่ทราบว่าเกิดจากอะไรหรือต้องลงอะไรเพิ่มเติมบน kaggle ครับ
  • การ set class weights for dice_loss ของโมเดลนี้มีหลักการกำหนดค่าอย่างไรครับ

 


   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 409
Topic starter  
ขอเอาคำถามง่ายๆ ก่อนนะครับ :D คำถามแรกที่ import error สามารถแก้ได้ดังนี้ครับ

# import keras
import tensorflow as tf
import os
os.environ["SM_FRAMEWORK"] = 'tf.keras'
import segmentation_models as sm # no error 

โดย tf.keras จะเป็น library ที่อัพเดตล่าสุดครับ ส่วน keras บน kaggle อาจจะเป็นเวอร์ชั่นที่มี conflict กับ sm พอดี (ไม่แน่ใจว่า conflict กันตรงไหน)

ซึ่งในกรณีนี้เราต้องแก้โค้ดเพิ่มเติม ทุกที่ที่เป็น keras ให้เปลี่ยนเป็น tf.keras ครับ เช่น class Dataloder(keras.utils.Sequence): --> class Dataloder(tf.keras.utils.Sequence): เป็นต้น

This post was modified 5 years ago 3 times by The Neural Engineer

   
CC8 reacted
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 409
Topic starter  

@cc8 ตรงที่ error แก้บรรทัดเดียวครับ

ใน class Dataset แทนที่จะ return ตัวแปร 3 ตัว ให้ return เพียงแค่ image และ mask แทนครับผม เพราะโมเดลจะไม่เข้าใจว่า pathimgID มีไว้ทำอะไรครับ

return image, mask #,pathimgID

และในกรณีที่ memory error ให้ลองลด batch_size จาก 32 ดูครับ (ผมใช้ batch_size = 4 แล้วรันได้ อาจจะลองใหญ่กว่านี้ก็ได้ครับ)

ส่วนการ set class weights ของ dice ไม่มีหลักการตายตัวครับ ถ้าเรามีความรู้ (problem/domain knowledge) ว่า class ไหนสำคัญกว่าเพื่อนอาจจะให้ weights มากหน่อยได้ หรือไม่ก็อาจต้องลองหลายรูปแบบแล้วดูว่าค่าไหนให้ validation loss ดีที่สุด ในกรณีทั่วไปถ้าไม่ต้อง set เลย (uniform weights ก็ให้ผลที่ดีระดับนึงครับ)


   
CC8 reacted
ตอบกลับอ้างอิง
CC8
 CC8
(@cc8)
Active Member
เข้าร่วมเมื่อ: 5 years ago
ข้อความ: 11
 

ขอบคุณ คุณ@neural-engineer มากๆครับ

ขอสอบถามเพิ่มเติมเกี่ยวกับการ set model segmentation ครับ คือผมลองเซ็ตค่าencoder_freeze เป็น (True  , False ) แต่ยังมี non-parameter trainable เหลืออยู่ ส่วนที่ยังเหลืออยู่นี้คือพารามิเตอร์ส่วนไหนครับ ถ้าต้องการให้เป็น trainable parameter ทั้งหมด โมเดลนี้สามารถทำได้หรือไม่ อย่างไรครับ


   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 7 years ago
ข้อความ: 409
Topic starter  

สวัสดีครับคุณ @cc8

ถ้าเรา set encoder_freeze=False เราจะได้ parameters เกือบทั้งหมด train ได้ดังนี้ครับ

Total params: 23,754,013
Trainable params: 23,749,981
Non-trainable params: 4,032

ส่วน 4032 parameters ที่เหลือน่าจะมาจากส่วน Batchnormalization Layer ที่จะมีการคำนวน Mean/Standard deviation อัตโนมัติ ซึ่งเนื่องจากถูกกำหนดสูตรไว้ชัดเจนแล้ว จึงจะไม่มีการเทรนเพิ่มเติมครับ


   
CC8 reacted
ตอบกลับอ้างอิง
CC8
 CC8
(@cc8)
Active Member
เข้าร่วมเมื่อ: 5 years ago
ข้อความ: 11
 

สวัสดีครับคุณ @neural-engineer

ผม import segmentation- models ตามคำแนะนำด้วย tf.keras แต่ไม่สามารถ train model ได้ ตามนี้ครับ  https://www.kaggle.com/cooncanei/model-with-tf-kras/data   ขอรบกวนช่วยดูให้หน่อยครับ ขอบคุณครับ

 


   
ตอบกลับอ้างอิง
Page 3 / 4
Share: