2017-02-13 8 views
3

때때로 conv 또는 풀 레이어의 필터 마스크가 입력 볼륨에 맞지 않을 수 있습니다. 스트라이드 2의 D 값을 갖고 예를 들어 I는 수식을 사용 ..정수가 아닌 경우 레이어의 크기가 반올림되거나 반올림됩니까?

하는 5x5 입력과 2x2 필터 마스크를 가지고 패딩을 사용하지 않는 : W는 입력 음량이

H = 1 + (W - F + 2*P)/S 

, F는 필터 크기, P는 패딩, S는 스트라이드 - 모두 1 차원입니다.

1 + (5 - 2)/2 = 3/2 = 2,5 

출력 크기는 어떻게됩니까? 바닥이 "2"가되거나 천장이 "3"이됩니까?

+2

인터넷을 실행하고 단순히 로그를 검사하지 않는 이유는 무엇입니까? 당신은 거기에 각 생성 된 레이어의 출력 모양을 볼 수 ... – Shai

+0

죄송합니다, 나는이 주제에 경험이 없습니다 - 전에 로그에 대해 잘 모릅니다. 나는 당신을 감사 할 것이다 – Kev1n91

+1

@ Kev1n91 당신이 대답을 발견 할 때, 당신은 할 수있다. 다른 사람들도 그것에 관심을 가질 수 있습니다. –

답변

2

Caffe 구현을 고려할 때 2로 플로어링됩니다. 기본적 $CAFFE_ROOT/src/caffe/layers/conv_layer.cpp

const int output_dim = (input_dim + 2 * pad_data[i] - kernel_extent) 
     /stride_data[i] + 1; 

의 선 (18)은, 입력에 슬라이딩 SXS 크기의 필터를 고려한다. 끝에 이동하기 때문에 크기가 같거나 크기보다 작은 입력을 처리해야 할 수 있습니다. S보다 작 으면 해당 부분이 무시됩니다. 이것이 Caffe에서 구현 한 방법입니다.