ai-436Đọc toàn bộ đề miễn phí

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

AICơ bản12 phút

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ủ đề

numpycnnpoolingentry-ramp

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]].

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

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.

Nhóm Zalo