
295
6
그 밖의 영상 처리 문제
함수로
Learner
를 생성한 다음, 해당 모델이 출력하는 활성값을 살펴봐야 합니다.
learn = cnn_learner(dls, resnet18)
Learner
가 포함한 모델이
nn
.
Module
을 상속받은 클래스 객체라는 사실도 압니다. 또한 소
괄호로 모델을 함수처럼 호출할 수 있고, 모델의 출력 활성을 반환받는다는 점도 알죠. 한편
모델을 함수처럼 호출하려면 미니배치 형태의 독립변수를 인자로 넣어줘야 합니다. 그리고
DataLoader
에서 미니배치 하나를 가져와서 모델로 주입하는 간단한 실험을 할 수 있죠.
>>> x,y = dls.train.one_batch()
>>> activs = learn.model(x)
>>> activs.shape
torch.Size([64, 20])
activs
의 모양이 왜 이런지 생각해봅시다. 설정한 배치 크기가
64
이고, 범주
20
개에 대한 확
률을 계산하기 때문입니다. 해당 미니배치를 통과시켜 얻은
activs
가 포함한 결과 하나를 조
사하여 출력 활성을 구성한 값들을 확인해보겠습니다.
>>> activs[0]
tensor([ 2.0258, -1.3543, 1.4640, 1.7754, -1.2820, -5.8053, 3.6130, 0.7193,
> -4.3683, -2.5001, -2.8373, ...