연구/Machine Learning
-
Convolution & Batchnorm Fusing연구/Machine Learning 2020. 9. 23. 16:57
많은 머신러닝 모델에서 Conv layer 뒤에 Batch norm 을 사용한다. 두 layer의 수식을 정리하면 아래와 같다. (학습 시 저장되는 parameter는 bold체로 표시) 이렇게 학습된 모델 parameter를 load하여 inference 시, Conv layer와 Batch norm parameter를 합쳐서(fusing) Batch norm연산 과정을 제거할 수 있다. 즉, 기존 conv layer의 weight와 bias를 fused weight와 fused bias로 대체하면 inference network의 Batch norm을 제거하고 Conv layer 하나만 사용할 수 있다!
-
Bi-Directional LSTM (BLSTM) parameter 이해연구/Machine Learning 2020. 9. 22. 21:56
LSTM을 다루던 중 Bi-directional LSTM 을 사용하게 됐다. 개념은 아래 그림과 같다. 많은 블로그 및 자료에서 BLSTM이 무엇인지는 잘 설명하고 있으므로, 기본적인 내용은 pass 진행한 작업은 pytorch nn.LSTM과 동일한 역할을 수행하는 myLSTM 모듈을 만드는 것이었다. 모듈을 만들고 nn.LSTM과 같은 output을 내는지 확인해봤는데, forward dirction의 output은 동일한 값을 뱉었지만 backward direction output은 무슨 짓을 해도 다른 결과를 보여줬다. 결국 찾아낸 해답은 아래와 같다. 난 모든 LSTM cell이 같은 weight, bias parameter를 공유한다고 생각했는데 forward direction과 backwar..