borch

배우기 · 3

모듈

nn.Module 이 파라미터를 들고 순방향을 안다. 이름은 torch 의 것이고, 다른 것은 model.call(x) 로 부른다는 것뿐이다 — 자바스크립트는 객체를 그냥 부를 수 없다.

층 하나

nn.Linear(in, out) 의 weight 는 (출력, 입력) 이다. torch 와 같은 배치라 체크포인트가 전치 없이 건너간다.

쌓기

nn.Sequential 이 모듈을 잇는다. parameters() 는 옵티마이저가 밟아야 할 텐서를 모은다 — 거기 빠진 파라미터가 있으면 학습은 돌고 그 층만 안 배운다. 예외는 안 난다.

직접 만들 때

nn.Module 을 물려받고 forward 를 쓴다. 직접 만든 파라미터는 claim 으로 세워야 parameters() 에 나온다 — 안 하면 조용히 안 배우므로, 밑 클래스가 그것을 말하게 한다.

손실

손실도 같은 이름 공간에 있고 부르는 꼴도 같다. CrossEntropyLoss 는 logits 와 int64 정답을 받는다 — torch 와 똑같이, 원-핫이 아니다.

층은 가중치 행렬

Linear 층은 학습할 가중치 행렬(과 bias)이다. 여기 초기화 직후의 16×16 하나를 그렸다 — 지금은 무작위·무구조; 구조를 주는 것이 학습이다.

기억할 것