การกำหนดค่าโมเดล
ในแบบฝึกหัดนี้ จะได้ทำงานกับโมเดลแรกใน Keras และสามารถรันโมเดลโครงข่ายประสาทเทียมที่ซับซ้อนขึ้นบนชุดข้อมูลขนาดใหญ่ได้เลย ซึ่งทำได้มากกว่าสองบทแรก
เริ่มต้นด้วยการนำโครงสร้างของโครงข่ายประสาทเทียมมาเพิ่ม hidden layer และ output layer จากนั้นจึง fit โมเดล แล้วดู Keras ทำการ optimization จนโมเดลมีประสิทธิภาพดีขึ้นเรื่อย ๆ
ในตัวอย่างนี้ จะทำนายค่าจ้างของแรงงานจากลักษณะต่าง ๆ เช่น ประเภทอุตสาหกรรม การศึกษา และระดับประสบการณ์ ชุดข้อมูลอยู่ใน pandas DataFrame ชื่อ df เพื่อความสะดวก ทุกคอลัมน์ใน df ยกเว้น target ได้ถูกแปลงเป็น NumPy array ชื่อ predictors ส่วน target คือ wage_per_hour ซึ่งอยู่ในรูป NumPy array ชื่อ target
สำหรับแบบฝึกหัดทุกข้อในบทนี้ ได้นำเข้า Sequential model constructor, Dense layer constructor และ pandas ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Deep Learning in Python
คำแนะนำการฝึกหัด
- เก็บจำนวนคอลัมน์ของข้อมูล
predictorsไว้ในตัวแปรn_cols(ได้ดำเนินการนี้ให้แล้ว) - สร้างโมเดล
Sequentialแล้วกำหนดให้กับตัวแปรmodel - ใช้เมธอด
.add()บนmodelเพื่อเพิ่มเลเยอร์Dense- กำหนด
50units ระบุactivation='relu'และพารามิเตอร์input_shapeเป็น tuple(n_cols,)ซึ่งหมายความว่าแต่ละแถวของข้อมูลมีn_colsค่า และรับจำนวนแถวได้ไม่จำกัด
- กำหนด
- เพิ่มเลเยอร์
Denseอีกหนึ่งเลเยอร์ โดยกำหนดให้มี32units และใช้ activation เป็น'relu' - สุดท้าย เพิ่ม output layer ซึ่งเป็นเลเยอร์
Denseที่มีเพียงหนึ่ง node โดยไม่ต้องระบุ activation function
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import necessary modules
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
# Save the number of columns in predictors: n_cols
n_cols = predictors.shape[1]
# Set up the model: model
model = ____
# Add the first layer
____.____(____(____, ____=____, ____=(____)))
# Add the second layer
____
# Add the output layer
____