Kích thước đầu ra của một lớp tích chập
Trước khi viết một mạng tích chập (CNN), ta phải biết mỗi lớp co ảnh lại còn bao
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, ai-image-tensor-shape.
Nội dung đề bài
Mô tả bài toán
Trước khi viết một mạng tích chập (CNN), ta phải biết mỗi lớp co ảnh lại còn bao nhiêu. Công thức quen thuộc cho một ảnh vuông cạnh H, kernel vuông cạnh K, bước nhảy S và phần đệm P là floor((H + 2P - K) / S) + 1. Nắm công thức này giúp bạn xếp các lớp mà không để kích thước rơi xuống 0 hoặc âm.
Yêu cầu
Viết hàm conv_output_size(input_size, kernel_size, stride, padding) trả về kích thước cạnh đầu ra (một số nguyên) theo công thức trên.
Quy ước nộp bài
Nộp hàm conv_output_size trong solution.py. Hệ thống gọi hàm trực tiếp và so kết quả với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- input_size: cạnh ảnh đầu vào (số nguyên dương).
- kernel_size: cạnh kernel (số nguyên dương).
- stride: bước nhảy (số nguyên dương).
- padding: phần đệm mỗi phía (số nguyên không âm).
Output
Một số nguyên là floor((input_size + 2 * padding - kernel_size) / stride) + 1.
Ràng buộc
- Nếu kernel lớn hơn ảnh sau đệm, hoặc bước nhảy không dương, hoặc kết quả không
dương thì hàm ném ValueError.
- Chỉ dùng số học Python, không cần thư viện ngoài.
Ví dụ 1
Input
conv_output_size(input_size=10, kernel_size=3, stride=1, padding=1)
Output
10
Ví dụ 2
Input
conv_output_size(input_size=5, kernel_size=2, stride=2, padding=0)
Output
2
Giải thích
Với input_size = 6, kernel_size = 3, stride = 1, padding = 0 ta được floor((6 - 3) / 1) + 1 = 4.
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.
