[IT꿀팁/VS code] Debugging 모드에서 argparse 입력하기

이미지
  VS code 에서 Debugging 모드를 사용하면 .vscode/launch.json 파일 이 생성된다. 이 때, 터미널(terminal) 에서와 같이 argparse  입력을 넣고 싶다면, launch.json 파일에서 위와 같이 "args"  키워드를 추가해주면 된다. 

Deep Learning 연구 키워드 사전 | CV, NLP, RL ...

이미지
  연구하면서 만났던 키워드 정리 

PyTorch / PyTorch Lightning 모듈 사용법

이미지
  ( image source ) PyTorch/PyTorch Lightning 모듈 설명

[DL for CV] Up-sampling (Decoding)

이미지
  Up-sampling (Decoding)  Decoding ( source ) Up-sampling 은 Down-sampling 의 반대로 디코딩(decoding) 과정에서 신호를 복원하기 위해 data의 사이즈를 늘리는 처리 과정이다. 다음은 Up-sampling 을 위한 대표적인 방법들이다. Unpooling Maxpooling 으로 소실된 신호를 거꾸로 재현한다. 주변 픽셀을 동일한 값으로 채우거나 ( Nearest Neighbor Unpooling ), 0으로 채워주는 방식( Bed of Nails Unpooling )이 있다. ( source ) (문제점) 위의 2 × 2 2 \times 2 2 × 2 matrix 로 Maxpooling 된 data를 다시 원래 사이즈인 4 × 4 4\times4 4 × 4 matrix 로 Unpooling 할 때, Max pooled 된 값의 위치(position)을 알 수 없다 . 즉, Unpooling 과정에서 본래 Max value를 어느 위치에 할당해야 할 지 알 수 없다. Max Unpooling Max value 의 위치를 알 수 없는 문제를 개선하기 위해 Max unpooling 방법을 사용한다. 방식은 직관적이다. Max pooling 과정에서 미리 선택된 값들의 위치 인덱스(index)를 기억 해서 저장해 두고 , 복원 과정에서 원래 자료와 동일한 위치에 Max value를 위치시킨다. ( source ) (장점) 이러한 방법은 Bed of Nails Unpooling 에 비해 정보 손실을 방지할 수 있다. 물론, 위치 인덱스를 저장할 별도의 메모리(memory)가 필요하지만, 전체 CNN 아키텍처에서 적은 비율이므로 상관이 없다. (구현) torch.nn.MaxUnpool2d # == 정의 == # pool = nn . MaxP

[DL for CV] Down-Sampling (Encoding)

이미지
  Down-sampling (Encoding)  [DL for CV] Down-Sampling (Encoding) ( source ) Downsampling 은 신호처리(signal processing)에서 사용되는 용어로 sample의 개수를 줄이는 처리 과정을 말한다 . 딥러닝에서는 인코딩(Encoding)과정에서 feature의 개수를 줄이는 처리과정 이라 볼 수 있다. feature 개수를 줄이면 이를 다룰 파라미터도 줄어들기 때문에 차원이 축소되는 효과 를 얻을 수 있다. 이는 곳 overfitting을 방지 하는 효과로 이어진다. 딥러닝 모델 아키텍처에서 사용되는 몇 가지 대표적인 Downsampling 방식을 정리한다. Pooling - 대표값 구하기 커널 영역(kernel scope)에 포함된 data 중에서 대표 값 하나를 샘플링하는 처리 방식 이다. 대표 값을 얻는 방식은 따르는 규칙에 따라 다르다; Max Pooling, Average Pooling, Global Average Pooling, and etc. 보통 Average pooling 보다는 Max pooling을 더 많이 사용한다. Average pooling의 경우 산술평균의 특성 을 가지기 때문에 필연적으로 발생하는 문제 가 있다 . 즉, 신호의 분산이 클 경우 대표 값과 실제 두드러지는 값과의 차이가 커진다 . 반면, Max pooling 연산이 좀더 간단하고 두드러지는 신호를 잘 전달할 수 있기 때문에 더 자주 사용된다. 때문에 논문과 교재에서 별도의 언급이 없이 Pooling layer를 언급한다면 Max pooling 이라 생각하면 된다. (장점) Pooling은 학습 가능한 파라미터 (learnable parameters)가 없기 때문에 kernel size를 키워도 차원의 저주를 피할 수 있는 방법중 하나다. torch.nn