Basic Block : in_channel이 들어오면 convolution, batch_norm, relu된 output과 identity가 더해진 후 다시 한 번 relu됨
downsample의 역할
1. 덧셈을 위해 convolution을 마친 out과 identity의 size를 동일하게 맞춰주기 위해 (stride=2일때, feature size가 줄어들기 때문에 idetity값도 같이 낮춰주기 위해)
2. channel 수를 맞춰주기 위해
resnet.py 만들 필요없이 ResNet 불러올 때
RandomCrop : 넣어준 padding값만큼 padding 둘러주고 입력값(지금의 경우, 32)만큼 random하게 data 뜯어오겠다
= > dataset을 여러 가지로 가지고 올 수 있게 만들어줌
acc_check function : 정확도 확인용 코드
save를 했을 때 아래와 같이 결과값이 저장되는 것을 확인할 수 있음
약 87%의 정확도가 나오는 것을 알 수 있으며,
Visdom을 사용해 정확도와 loss값 그래프를 그려보면 아래와 같은 그림을 확인할 수 있음
+) 정확도를 더 올리기 위한 방법
1. architecture적인 부분(make_layer ~ forward) 수정
2. layer 1 ~ 4 부분에서 planes값을 바꿔 더 많은 filter 사용
3. bacth_size 수정
4. RandomCrop 빼버리거나 padding값을 줄인 후 RandomCrop 실행