[Week 2- Day 2] 회고

2022. 1. 25. 23:10About 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