본문 바로가기

Computer Vision

(19)
(pred.argmax(1) == y).type(torch.float).sum().item() 해석 (pred.argmax(1) == y).type(torch.float).sum().item() 해석 1. pred는 model(x)의 출력으로 입력 이미지에 대하여 각 10개 class별 socre를 출력하여 모은 값. [ [img1 10개 스코어], [img2 10개 스코어], [img3 10개 스코어] ... ] 2. pred.argmax(1)은 각 row의 방향에서 가장 큰 값을 찾고 해당 값의 인덱스를 반환함, 즉, 각 이미지가 가장 높은 score를 보인 class가 어딘지를 반환함 3. 높은 값을 보인 class(예측값)이 Groud Truth인 y와 동일한지 확인하여 True/False 를 반환(pred.argmax(1) == y) 각 이미지에 대한 True/Fase이므로 한번에 트레이닝 시..
nn.Module 입력과 forward 함수: Pytorch에서 모델 호출법 nn.Module의 입력은 뭐고, 클래스 메소드 forward()에 모델 입력은 어떻게 전달하는가? (1) 모델의 입력 X가 nn.Module(X)로써 전달이 된다면 이 X는 forward에 입력 인자로 전달된다. forward 함수는 사용자가 직접 호출하지 않기 때문 (2) 이렇게 입력 받은 모델의 input은 자동으로 forward의 함수 입력으로 들어가서 자동으로 forward propagtion한다. (3) 이때 입력의 길이, 갯수는 가변인자(*input) 임 nn.Module을 활용한 모델 디자인 nn.Module을 상속하여 다음과 같이 모델을 디자인할 수 있다. 일반적으로, pytorch의 nn.Module을 사용하여 모델을 디자인 하기 위해서는 (1) nn.Module을 상속하는 모델 클래스..
Python 변수로 Class 명 치환(Instanstiate) 아래의 코드를 보면 마치 self.flatten=nn.Flatten() 이 flatten 변수를 선언했고, 두 번째 노란음영인 x=self.flatten(x)에서 인스턴스 혹은 변수에 값을 넣는 것으로 보인다. 이런 형식을 처음 보면 마치 python이 변수 안에 변수를 인자로 받는 것처럼 느껴질 수 있다. 실제로는 self.flatten은 nn.Flatten이라는 class 명을 치환한 것이고, nn.Flatten 클래스를 호출할때 사용할 수 있다. 즉, x= self.flatten(x)는 nn.Flatten(x)와 동일한 문법이다. 엄밀히 말하면 이건 인스턴스화(instanstiate)이고, 관련 내용은 해당 키워드로 구글링하는 것을 추천 출처: 빠른 시작(Quickstart) — 파이토치 한국어 튜..

728x90