GoogLeNet에서 나온 Inception 계통의 Network에서 등장. Chennel 수 조절 행과 열의 크기 변환 없이 Channel의 수를 자유자재로 조절 가능하게됨. 만약, (28 x 28 x 192) 의 인풋을 (28x28x32)로 줄인다면? => (1x1x192) 필터 32개 사용하여 convolution 연산 계산량 감소 Bottleneck 구조 비선형성 Activation을 사용함으로써 비선형성을 더해줄 수 있음. 행과 열, channel 수를 변화시키지 않고 단순히 weight 및 비선형성을 추가하는 역할로 사용할 수 있음. 출처 https://hwiyong.tistory.com/45 1x1 convolution이란, GoogLeNet 즉, 구글에서 발표한 Inception 계통의 N..
분류 전체보기
의의 Data 개수에 비해 model capacity가 큰 경우, 데이터 자체를 암기해 overfitting이 발생할 우려가 있습니다. 데이터 증강을 통해 데이터셋을 확장시킬 수 있고, 모델이 학습할 수 있는 패턴이 늘어나게 됩니다. 회전, 비틀림, 노이즈 등 현실에서 나타날 수 있는 변형에 대해서도 강인하게 대응할 수 있게 됩니다. 사진을 찍을 때, 같은 장소에서도 각기 다른 각도, 조명, 다른 배경 등으로 다양하게 찍을 수 있습니다. 이렇게 다양하게 찍은 사진을 보면서 사물을 인식하는 능력이 향상되는 것처럼, 데이터 증강은 모델이 데이터를 다양한 방법으로 보게 함으로써 모델의 학습 능력을 향상 시킵니다. 유의 Vision Task 수행에 따라서 유의해야할 점을 알아봐야 한다. 예를 들어, classi..
model.train() v.s. model.eval() model.train() model.eval() Batch Normalization Batch statistics 이용 학습 때 사용된 statistics를 통해 결정된 running statistics 이용 Dropout Layer 주어진 확률에 따라 활성화 비활성화 torch.no_grad() Pytorch의 Autograd Engine 비활성화 # 데코레이터로 사용할 경우 @torch.no_grad() def func without_grad_tracking(): pass # validation 과정에서 사용할 경우 with torch.no_grad() : # Code related to inference torch.Tensor.require_..
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') torch.tensor([1,2], device=device) torch.tensor([1,2]).to(device) torch.tensor([1,2]).cuda() Argument에 따른 방식 import argparse import torch parser = argparse.ArgumentPasrser() parser.add_argument('--cpu', action='store_true', help='run in cpu') args = parser.parse_args() if args.cpu: device = torch.device('cpu') else: device =..