Bắt đầu ngayBắt đầu miễn phí

Thử nghiệm với mạng rộng hơn

Giờ bạn đã có đủ kiến thức để bắt đầu thử nghiệm với các mô hình khác nhau!

Một mô hình tên model_1 đã được nạp sẵn. Bạn có thể xem tóm tắt mô hình này được in trong IPython Shell. Đây là một mạng tương đối nhỏ, chỉ có 10 đơn vị ở mỗi lớp ẩn.

Trong bài tập này, bạn sẽ tạo một mô hình mới tên model_2, tương tự model_1 nhưng có 100 đơn vị ở mỗi lớp ẩn.

Sau khi bạn tạo model_2, cả hai mô hình sẽ được huấn luyện và một biểu đồ hiển thị điểm loss của cả hai mô hình ở mỗi epoch sẽ được vẽ. Chúng tôi đã thêm đối số verbose=False trong lệnh huấn luyện để in ít thông tin cập nhật hơn, vì bạn sẽ xem các thông tin này dưới dạng đồ thị thay vì văn bản.

Vì bạn đang huấn luyện hai mô hình, sẽ mất một chút thời gian để thấy Đầu ra sau khi bạn bấm chạy, nên hãy kiên nhẫn.

Bài tập này là một phần của khóa học

Nhập môn Deep Learning với Python

Xem khóa học

Hướng dẫn bài tập

  • Tạo model_2 sao cho lặp lại model_1, nhưng dùng 100 nút thay vì 10 cho hai lớp Dense đầu tiên bạn thêm với kích hoạt 'relu'. Dùng 2 nút cho lớp đầu ra Dense với activation'softmax'.
  • Biên dịch model_2 giống như bạn đã làm với các mô hình trước: dùng 'adam' làm optimizer, 'categorical_crossentropy' cho loss, và metrics=['accuracy'].
  • Bấm "Gửi câu trả lời" để huấn luyện cả hai mô hình và trực quan hóa mô hình nào cho kết quả tốt hơn! Lưu ý đối số từ khóa verbose=False trong model.fit(): Điều này sẽ in ít cập nhật hơn, vì bạn sẽ đánh giá các mô hình bằng đồ thị thay vì qua văn bản.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Define early_stopping_monitor
early_stopping_monitor = EarlyStopping(patience=2)

# Create the new model: model_2
model_2 = ____

# Add the first and second layers
____.____(____(____, ____=____, input_shape=input_shape))
____

# Add the output layer
____

# Compile model_2
____

# Fit model_1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)

# Fit model_2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)

# Create the plot
plt.plot(model_1_training.history['val_loss'], 'r', model_2_training.history['val_loss'], 'b')
plt.xlabel('Epochs')
plt.ylabel('Validation score')
plt.show()
Chỉnh sửa và Chạy Mã