เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Early stopping: เพิ่มประสิทธิภาพการ optimize

เมื่อเรียนรู้วิธีติดตามประสิทธิภาพของโมเดลระหว่างการ optimize แล้ว ก็สามารถใช้ early stopping เพื่อหยุดการ optimize เมื่อไม่ช่วยให้ผลดีขึ้นอีกต่อไปได้ เนื่องจากการ optimize จะหยุดโดยอัตโนมัติเมื่อไม่มีการพัฒนา จึงสามารถตั้งค่า epochs ให้สูงในการเรียก .fit() ได้เลย อย่างที่ Dan แสดงในวิดีโอ

โมเดลที่จะ optimize ถูกกำหนดไว้เป็นตัวแปร model และเช่นเดิม ข้อมูลถูกโหลดไว้ล่วงหน้าเป็น predictors และ target

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Introduction to Deep Learning in Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • นำเข้า EarlyStopping จาก tensorflow.keras.callbacks
  • Compile โมเดลโดยใช้ 'adam' เป็น optimizer, 'categorical_crossentropy' เป็น loss function และ metrics=['accuracy'] เพื่อดูค่า accuracy ในแต่ละ epoch
  • สร้างออบเจ็กต์ EarlyStopping ชื่อ early_stopping_monitor โดยกำหนดให้หยุด optimize เมื่อ validation loss ไม่ดีขึ้นติดต่อกัน 2 epoch ด้วยการตั้งพารามิเตอร์ patience ของ EarlyStopping() เป็น 2
  • Fit โมเดลด้วย predictors และ target กำหนดจำนวน epochs เป็น 30 และใช้ validation split เป็น 0.3 นอกจากนี้ ให้ส่ง [early_stopping_monitor] ไปยังพารามิเตอร์ callbacks

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Import EarlyStopping
____

# Save the number of columns in predictors: n_cols
n_cols = predictors.shape[1]
input_shape = (n_cols,)

# Specify the model
model = Sequential()
model.add(Dense(100, activation='relu', input_shape = input_shape))
model.add(Dense(100, activation='relu'))
model.add(Dense(2, activation='softmax'))

# Compile the model
____

# Define early_stopping_monitor
early_stopping_monitor = ____

# Fit the model
____
แก้ไขและรันโค้ด