보다 효율적인 이동 평균 필터를 위한 고급 스트라이드 사용
소개:
이동 컴퓨팅 대규모 데이터 세트의 평균 필터는 계산 비용이 많이 들 수 있습니다. 컨볼루션 필터를 사용하는 표준 구현은 속도가 느릴 수 있지만 고급 스트라이딩 기술은 보다 효율적인 솔루션을 제공합니다.
제안 기술:
제안 기술에는 NumPy의 stride_tricks.as_strided( ) 함수를 사용하여 원래 배열 위에 움직이는 창에 해당하는 배열을 만듭니다. 이 배열을 수직 및 수평으로 굴림으로써 커널 값을 효율적으로 합산하여 각 픽셀의 평균을 계산할 수 있습니다.
구현:
다음 코드는 다음의 구현을 보여줍니다. 이 기술은:
<code class="python">import numpy as np filtsize = 3 a = numpy.arange(100).reshape((10,10)) b = np.lib.stride_tricks.as_strided(a, shape=(a.size,filtsize), strides=(a.itemsize, a.itemsize)) for i in range(0, filtsize-1): if i > 0: b += numpy.roll(b, -(pow(filtsize,2)+1)*i, 0) filtered = (numpy.sum(b, 1) / pow(filtsize,2)).reshape((a.shape[0],a.shape[1]))</code>
장점:
이 기술은 기존 컨볼루션 필터에 비해 몇 가지 장점을 제공합니다.
제한사항:
대체 접근 방식:
위 내용은 고급 스트라이딩이 어떻게 이동 평균 필터의 효율성을 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!