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

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

AICơ bản10 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ủ đề

numpycnnconvolutionentry-ramp

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.

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