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

Tự viết phép pooling của bạn

Như bạn đã thấy, các CNN có thể có rất nhiều tham số. Các tầng pooling thường được chèn giữa các tầng tích chập của mạng nơ-ron để tóm tắt đầu ra theo cách cô đọng và giảm số lượng tham số ở tầng tiếp theo. Điều này hữu ích nếu bạn muốn huấn luyện mạng nhanh hơn, hoặc khi bạn không có đủ dữ liệu để học một lượng tham số rất lớn.

Một tầng pooling có thể được mô tả như một dạng tích chập đặc biệt. Với mỗi cửa sổ trong đầu vào, nó tìm giá trị điểm ảnh lớn nhất và chỉ truyền giá trị này. Trong bài tập này, bạn sẽ tự viết phép max pooling, dựa trên đoạn mã mà trước đó bạn đã dùng để viết phép tích chập hai chiều.

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

Mô hình hóa ảnh với Keras

Xem khóa học

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

  • Truy cập vào mảng đầu vào (im) và chọn đúng cửa sổ.
  • Tìm giá trị lớn nhất trong cửa sổ này.
  • Gán giá trị đó vào phần tử tương ứng trong mảng đầu ra (result).

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.

# Result placeholder
result = np.zeros((im.shape[0]//2, im.shape[1]//2))

# Pooling operation
for ii in range(result.shape[0]):
    for jj in range(result.shape[1]):
        result[ii, jj] = np.max(____)
Chỉnh sửa và Chạy Mã