3 / 24 · 개념
모양·stride·패딩·dilation
H=7, R=3, stride 2, 위 패딩 0, 아래 패딩 1, dilation 2일 때 Ho와 h=1,r=2의 입력 좌표를 계산하세요.
내용은 무료로 볼 수 있습니다. 수강 신청하면 학습 기록을 저장할 수 있어요.
모양 계산은 주소 계산의 시작
stride는 출력 창의 시작 위치 사이 간격이고 dilation은 커널 내부의 샘플 사이 간격입니다. 둘 다 입력을 건너뛰지만 적용되는 인덱스가 다릅니다. R개 샘플을 dilation D로 읽는 커널의 유효 높이는 D(R−1)+1입니다. 패딩은 영상의 위·아래·왼쪽·오른쪽에 각각 별도로 지정합니다. 이 과정은 명시적 패딩과 내림 방식만 사용하며 자동 SAME 규칙을 가정하지 않습니다.
너비 식에서는 H를 W, R을 커널 너비, 위·아래를 왼쪽·오른쪽으로 바꿉니다. 유효 커널이 패딩을 포함한 입력보다 크면 이 실습 모델은 출력 크기를 0으로 처리합니다. 실제 배포할 연산자에서는 빈 텐서를 지원하는지 별도로 확인해야 합니다. 음수 크기의 메모리를 만들거나 좌표를 강제로 순환시키는 것은 올바른 처리가 아닙니다.
계산 예제와 주소 예제
높이 5, 커널 높이 3, stride 2, 위·아래 패딩 1, dilation 1이면 유효 높이는 3이고 Ho=floor((5+2−3)/2)+1=3입니다. dilation을 2로 바꾸면 유효 높이가 5이고 Ho=floor((5+2−5)/2)+1=2입니다. stride를 그대로 유지했는데 출력이 줄어드는 이유는 한 창이 더 넓은 입력 영역을 요구하기 때문입니다.
출력 위치 h=1, 커널 위치 r=2를 입력으로 옮기는 식은 ih=h×S−Pt+r×D입니다. 첫 설정은 1×2−1+2=3이고 두 번째 설정은 1×2−1+4=5입니다. H=5의 유효 입력 좌표는 0부터 4이므로 두 번째 접근은 패딩입니다. 배열 끝을 읽지 않고 수학적인 0을 공급해야 합니다. 양자화된 원시 입력에서는 그 0이 코드 0이 아닐 수 있음을 다음 장에서 다룹니다.
NCHW 텐서의 선형 주소는 ((nC+c)H+ih)W+iw입니다. N=1,C=2,H=W=3에서 (n,c,h,w)=(0,1,2,1)의 주소는 ((0×2+1)×3+2)×3+1=16입니다. 총 원소 수는 18개이며 주소 16은 두 번째 채널의 마지막 줄 가운데입니다. 채널 축과 공간 축을 바꾸면 모양만 같아도 숫자는 달라집니다.
경계 조건을 명시하기
그룹 G에서는 입력 채널과 출력 채널 수가 G로 나누어져야 합니다. 한 출력 채널이 감소시키는 입력 채널 수는 C/G입니다. 기준 모델과 RTL이 서로 다른 그룹의 채널을 섞지 않는지 확인하세요. 정해진 출력 모양에 따라 주소를 생성하고 각 커널 접근의 범위를 검사하는 순서가 안전합니다. 명시적 패딩, stride, dilation과 그룹의 계약은 ONNX Conv에 정의되어 있습니다.
직접 생각해 보기
H=7, R=3, stride 2, 위 패딩 0, 아래 패딩 1, dilation 2일 때 Ho와 h=1,r=2의 입력 좌표를 계산하세요.
해설 보기
유효 커널은 5입니다. Ho=floor((7+1−5)/2)+1=2입니다. 입력 좌표는 1×2−0+2×2=6이며 마지막 유효 행입니다.