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

Xây dựng autoencoder

Autoencoder có nhiều ứng dụng thú vị như phát hiện bất thường hoặc khử nhiễu ảnh. Mục tiêu của chúng là tạo ra đầu ra giống hệt đầu vào. Dữ liệu đầu vào sẽ được nén vào một không gian chiều thấp hơn, gọi là encode. Mô hình sau đó học cách decode để khôi phục về dạng ban đầu.

Bạn sẽ encode và decode bộ dữ liệu MNIST gồm các chữ số viết tay; tầng ẩn sẽ mã hóa ảnh thành một biểu diễn 32 chiều, trong khi ảnh gốc có 784 pixel (28 x 28). Về cơ bản, autoencoder sẽ học cách biến ảnh gốc 784 pixel thành một ảnh nén 32 “pixel” và học cách dùng biểu diễn đã mã hóa đó để khôi phục lại ảnh gốc 784 pixel.

Sequential model và các tầng Dense đã sẵn sàng để bạn sử dụng.

Hãy cùng xây dựng một autoencoder!

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 Keras

Xem khóa học

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

  • Tạo một mô hình Sequential.
  • Thêm một tầng dense với số neuron bằng kích thước ảnh đã mã hóa và input_shape bằng số pixel của ảnh gốc.
  • Thêm tầng cuối với số neuron bằng số pixel trong ảnh đầu vào.
  • Biên dịch autoencoder của bạn dùng adadelta làm optimizer và binary_crossentropy làm hàm loss, sau đó in phần tóm tắt mô hình.

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.

# Start with a sequential model
autoencoder = ____

# Add a dense layer with input the original image pixels and neurons the encoded representation
autoencoder.add(____(____, input_shape=(____, ), activation="relu"))

# Add an output layer with as many neurons as the orginal image pixels
autoencoder.add(____(____, activation = "sigmoid"))

# Compile your model with adadelta
autoencoder.compile(optimizer = ____, loss = ____)

# Summarize your model structure
____
Chỉnh sửa và Chạy Mã