20170912

병렬처리
caffe는 머신러닝을 추상화했다는 점에서 유의미. Convolution 연산에서 FFT, Topelitz Matrix, Winograd Matrix를 쓸 수 있다. FFT는 filter size가 클 때 효율적, Winograd Matrix는 filter size가 작을 때 효율적. Convolution 연산은 행렬 연산으로 표현할 수 있다. Strassen 알고리즘의 적용은 divide and conquer를 사용한다. O(N^3) -> O(N^(2.807)로 행렬곱 복잡도를 줄일 수 있다. FFT를 사용해 convolution하는 방법. 두 행렬을 FFT로 변환한 다음에 두 행렬을 곱하고 다시 결과 행렬을 역 FFT를 적용하면 된다. FFT convolution의 단점은 크기를 맞추기 위해 0을 채워서 연산해야 한다는 점. 따라서 필터가 입력값만큼 크면 손해가 적지만 필터 크기가 작으면 연산량에 불필요한 오버헤드가 든다. 2D Winograd를 사용하면 36번의 곱셈을 16번으로 줄일 수 있다(3×3 * 4*4). Winograd는 작은 사이즈의 필터에 대해 효율적이다.

Advertisements
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 103,814 hits
%d bloggers like this: