Pytorch 한국 사용자 모임 커뮤니티에 등록되어 있는 'Pytorch로 딥러닝하기: 60분만에 끝장내기' 참고하여 신경망 학습까지 진행
autograd 작동방식을 코드로 알아보기
torch.autograd는 신경망 학습을 지원하는 Pytorch 라이브러리의 자동 미분 엔진
미리 학습된 resnet18 모델을 불러와 간단한 방식으로 알아보았습니다
3채널, 높이 넓이가 64인 이미지 표현 무작위 텐서 data와 label을 (1, 1000) 의 모양을 갖는 무작위 값으로 초기화 하여 진행
prediction = model(data) 는 순전파 단계
순전파란 신경망을 구성하는 layers를 순방향 input to output으로 데이터를 통과 시키는 과정
loss 는 순전파 단계의 예측값과 정답으로 지정된 labels의 차이의 합
loss.backward()를 통해 역전파 단계 진행
역전파란 순전파 과정에서 생성된 예측값과 정답간의 차이인 loss를 역순으로(output to input)을 통해
매개변수들을 조절하고 이를 통해 매개변수들을 최적화
딥러닝을 본격적으로 학습시키는 단계에서는 torchvision에서 제공하는 CIFAR10 데이터셋을 사용했습니다
batch_size = 4
순전파 과정의 예측값을 4개 마다 가중치를 갱신하도록 설정
CIFAR10 데이터셋은 classes set에 있는대로 plane, car, bird, cat, deer, dog, frog, horse, ship, truck 10가지로 구성된 데이터셋
합성곱 신경망을 구성하는 이전 단계의 학습과정에서 작성한 코드 중 서브샘플링과 풀링 과정을 나타내는 부분을 제외
nn.MaxPool2d를 사용해 과정을 단축
SGD 최적화 함수를 사용해 최적화 진행
계산된 변화도 값을 누적시키지 않도록 optimizeer.zero_grad()를 통해 0으로 초기화
'모각코' 카테고리의 다른 글
Daiv 모각코 #6 (0) | 2024.08.17 |
---|---|
Daiv 모각코 #5 (0) | 2024.08.15 |
Daiv 모각코 #4 v2 (0) | 2024.07.31 |
모각코 #3 v2 (0) | 2024.07.21 |
Daiv 모각코 #1 v2 (2) | 2024.07.14 |