เราต้องการข้อมูลเพิ่มเติมหรือไม่?
ถึงเวลาตรวจสอบแล้วว่าโมเดล model ที่สร้างขึ้นจาก ชุดข้อมูล digits จะได้ประโยชน์จากตัวอย่างการฝึกที่มากขึ้นหรือไม่!
เพื่อให้โค้ดกระชับที่สุด สิ่งต่าง ๆ เหล่านี้ถูกเตรียมไว้ให้พร้อมใช้งานแล้ว:
modelที่เพิ่งสร้างไว้X_train,y_train,X_testและy_testinitial_weightsคือค่าน้ำหนักเริ่มต้นของโมเดล ที่บันทึกไว้ด้วยmodel.get_weights()- รายการขนาดข้อมูลฝึกที่กำหนดไว้ล่วงหน้า:
training_sizes - callback สำหรับ early stopping ที่ติดตามค่า loss:
early_stop - รายการว่างสองรายการสำหรับเก็บผลการประเมิน:
train_accsและtest_accs
ฝึกโมเดลด้วยขนาดข้อมูลฝึกที่แตกต่างกัน แล้วประเมินผลบน X_test
จากนั้นพล็อตผลลัพธ์ด้วย plot_results()
ดูโค้ดทั้งหมดสำหรับแบบฝึกหัดนี้ได้จากสไลด์!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning เบื้องต้นด้วย Keras
คำแนะนำการฝึกหัด
- ดึงข้อมูลฝึกบางส่วนตามสัดส่วน
sizeที่กำลังประเมินในลูปปัจจุบัน - ตั้งค่าน้ำหนักของโมเดลเป็น
initial_weightsด้วยset_weights()แล้วฝึกโมเดลบนข้อมูลฝึกส่วนนั้นโดยใช้early_stopเป็น callback - ประเมินและบันทึกค่าความแม่นยำสำหรับข้อมูลฝึกส่วนนั้นและชุดข้อมูลทดสอบ
- เรียกใช้
plot_results()โดยส่งค่าความแม่นยำของข้อมูลฝึกและข้อมูลทดสอบสำหรับแต่ละขนาดการฝึก
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
for size in training_sizes:
# Get a fraction of training data (we only care about the training data)
X_train_frac, y_train_frac = X_train[:size], y_train[:size]
# Reset the model to the initial weights and train it on the new training data fraction
model.set_weights(____)
model.fit(X_train_frac, y_train_frac, epochs = 50, callbacks = [early_stop])
# Evaluate and store both: the training data fraction and the complete test set results
train_accs.append(model.evaluate(____, ____)[1])
test_accs.append(model.evaluate(____, ____)[1])
# Plot train vs test accuracies
plot_results(____, ____)