2017-03-28 1 views
0

미리 정의 된 커널 크기와 Matlab의 윈도우 스트라이드를 사용하여 2 차원 최대 풀링을 계산할 수있는 함수가 있습니까?Matlab에서 최대 풀 작업이 필요합니까?

나는 주변을 두리번했지만 지금까지 아무것도 찾을 수 없습니다

...

내가 데이터 [HxWxC]의 3D 큐브를 가지고 말해, 나는 2D 최대 풀링 모든 채널에 별도로 실행하고 싶습니다 (뉴럴 네트워크에서 알려진 최대 풀 연산과 유사). 또한 나를 도움이 될
유사한 OpenCV의 기능 ...

답변

0

나는 여기에 신경 네트워크 기능을 필요로하지 않는 다른 솔루션의

k = 3; % kernel_size 
p = 1; % padding size 
data_pooled = vl_nnpool(single(data),[k,k],'Pad',[p,p,p,p]); 
0

matconvnet를 사용하여 끝났다.

각 채널에서 커널과 컨볼 루션을 수행 한 다음 유지하려는 결과 행렬 (스트라이드에 해당)의 조각을 선택할 수 있습니다. 다음은 선형 평균 풀링의 일반적인 경우에 대한 코드 샘플입니다.

% pool 
kernel = ones(k)/k^2; 
temp = conv2(padarray(data, [p p]), kernel, 'valid'); 
% downsample 
pooled_data = temp(1:stride:end, 1:stride:end); 

이 예제 또는 다른 풀링 함수에서 선형 평균 대신 주문 통계 필터를 사용할 수 있습니다. padarray 값 매개 변수를 사용하여 원하는 패딩 동작을 얻을 수도 있습니다.

관련 문제