Gộp cực đại 2x2 trên ma trận nhỏ
Max pooling là lớp kinh điển giúp CNN giảm kích thước không gian và giữ lại tín hiệu
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, numpy-array-reshape.
Nội dung đề bài
Mô tả bài toán
Max pooling là lớp kinh điển giúp CNN giảm kích thước không gian và giữ lại tín hiệu mạnh nhất. Với cửa sổ 2x2 không chồng lấn, mỗi khối 2x2 của ảnh được thay bằng giá trị lớn nhất, nên cạnh ảnh giảm một nửa.
Yêu cầu
Viết hàm max_pool_2x2(matrix) nhận ma trận 2 chiều có kích thước chẵn và trả về ma trận gộp, mỗi phần tử là cực đại của một khối 2x2.
Quy ước nộp bài
Nộp hàm max_pool_2x2 trong solution.py. Hệ thống gọi hàm trực tiếp và so phần tử với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- matrix: danh sách các hàng (ma trận 2 chiều) kích thước H x W, cả H và W chẵn.
Output
Danh sách các hàng của ma trận (H/2) x (W/2), trả về bằng .tolist().
Ràng buộc
- Kích thước mỗi chiều phải chẵn và khác 0; nếu không, ném ValueError.
- Dùng NumPy với reshape/max theo trục, không viết vòng lặp bốn tầng.
Ví dụ 1
Input
max_pool_2x2(matrix=[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])
Output
[[6, 8], [14, 16]]
Ví dụ 2
Input
max_pool_2x2(matrix=[[1, 3], [2, 4]])
Output
[[4]]
Giải thích
Với ma trận [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] khối trên-trái là max(1, 2, 5, 6) = 6, khối trên-phải là 8, dưới-trái là 14, dưới-phải là 16, nên kết quả là [[6, 8], [14, 16]].
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
