[Week 2- Day 2] 회고
2022. 1. 25. 23:10ㆍAbout Me/AI Tech
# Forward pass vs Backward pass
Forward pass | Backward pass |
![]() |
![]() |
forward의 결과 값은 예측치(y_hat)에 해당한다.
AutoGrad는 backward 함수를 호출해서 진행한다.
optimizer.zero_grad() # 0으로 초기화
outputs = model(inputs) # 예측치(y_hat)
loss = criterion(outputs, labels) # 손실 함수 (ex. MSELoss)
loss.backward() # optimizer에서 미분대상에 대해 미분 수행 (ex. SGD방식)
optimizer.step() # 한 번에 변수 모두 update
# Dataset 클래스
from torch.utils.data import Dataset, DataLoader
class CustomDataset(Dataset):
def __init__(self, text, labels):
self.data = text
def __len__(self):
return len(self.labels)
def __getitem__(self, idx):
return self.data[idx]
모든 것을 data 생성시점에 처리할 필요X
Dataset 처리에 대한 표준화된 처리방법이 필요(-> HuggingFace, FastAPI 등)
# Hook
https://whatis.techtarget.com/definition/hook
Forward pass | Backward pass |
[Module] - register_forward_pre_hook() - register_forward_hook() |
[Tensor] - register_hook() [Module] - register_backward_hook() - register_full_backward_hook() |
다른 모듈에서 본인의 custom 함수를 사용하기 위해 사용한다.
## 피어 세션
이제 일주일이 되어가서 그런지, 익숙해졌다.
Sequential 클래스에 대해 질문했다. TF할 때, 많이 헤맸었던 거라 그런지 겁을 먹었던 것 같다.
인수를 Layer라고 생각하면 된다는 말을 듣고, 또 생각보다 그렇게 어렵지 않다는 말을 듣고 계속 찾아보게 되었다.
구글에 "pytorch sequential" 을 검색하면서, 관련 예시를 찾다가 결국 해결했다.
이제는 다른 부분이 막혔지만, 내일까지는 꼭 완료해야지!
swapdims()에 대한 질문이 오가면서, 내가 이해한 행렬 변환한 방식을 설명하였다.
언제까지 할지 시간을 정해두고, 몇 분까지 시간이 있는데 더 할말이 있냐고 물었다. 덕분에 편한 분위기를 느꼈던 것 같다.
이번 주가 과제가 제일 많다고 한다. 잘 이해하고 넘어가야 나중에 돌아보지 않는다고 한다.
모르는 부분이 있다면 꼭 기록하고, 짚고 넘어가야지.
반응형
'About Me > AI Tech' 카테고리의 다른 글
[Week 2- Day 4] 회고 (0) | 2022.01.27 |
---|---|
[Week 2- Day 3] 회고 (0) | 2022.01.27 |
[Week 2- Day 1] 회고 (0) | 2022.01.24 |
과제 설명: 경사하강법으로 선형회귀 문제 풀기 (0) | 2022.01.22 |
[Week 1- Day 5] 회고 (0) | 2022.01.21 |