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

Patch embedding: cắt ảnh thành các vector

Vision Transformer không đọc từng điểm ảnh mà chia ảnh thành các ô vuông (patch) rồi làm

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

numpytransformerpatch-embeddingentry-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

Vision Transformer không đọc từng điểm ảnh mà chia ảnh thành các ô vuông (patch) rồi làm phẳng mỗi ô thành một vector. Bước "patchify" này biến ảnh H x W thành danh sách các vector độ dài p * p, và thứ tự các patch phải theo hàng để khớp với vị trí không gian.

Yêu cầu

Viết hàm patchify(image, patch_size) trả về danh sách các vector patch đã làm phẳng, duyệt theo thứ tự hàng-trước (block trên-trái trước, rồi sang phải, rồi xuống dưới).

Quy ước nộp bài

Nộp hàm patchify 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

  • image: ma trận 2 chiều kích thước H x W.
  • patch_size: cạnh ô vuông p, phải chia hết cả H và W.

Output

Danh sách gồm (H/p) * (W/p) vector, mỗi vector dài p * p, trả về bằng .tolist().

Ràng buộc

  • Nếu patch_size không chia hết một trong hai chiều, ném ValueError.
  • Dùng NumPy reshape/transpose, không cắt bằng vòng lặp lồng nhau thủ công.

Ví dụ 1

Input

patchify(image=[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]], patch_size=2)

Output

[[1, 2, 5, 6], [3, 4, 7, 8], [9, 10, 13, 14], [11, 12, 15, 16]]

Ví dụ 2

Input

patchify(image=[[1, 2], [3, 4]], patch_size=2)

Output

[[1, 2, 3, 4]]

Giải thích

Với ảnh [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] và p = 2, patch trên-trái là [1, 2, 5, 6], tiếp theo là [3, 4, 7, 8], rồi [9, 10, 13, 14] và [11, 12, 15, 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.

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.

Nhóm Zalo