-
부스트캠프 AI_Course 2주차Boostcamp AI Course 2022. 10. 1. 00:46
이번 주의 메인 주제는 Pytorch였다. 처음 다뤄본 모듈이라 걱정이 많았지만 강의와 과제를 수행하며 어느정도 윤곽을 잡아 나갔다. 이번 주는 Pytorch 공식 문서에서 살다싶이 했다. 바보같은 회고일 수 있지만 나와 같이 고민하는, 처음으로 Pytorch를 시작하는 사람들이 있을 수 있어 새로이 어려웠던 점, 느낀점을 위주로 회고하겠다.
어려웠던 점) Hook
모델의 개념을 처음 배우고 순조롭게 진도를 나가다가 마주한 고난이었다. 어떤 역할을 하는지 감도 안잡히는 인터페이스여서 많은 시간을 할애해서 공부했던 부분이다.
- 프로그램의 실행 로직을 분석하거나 - 프로그램에 추가적인 기능을 제공하고 싶을 때
과제에서 설명하는 Hook의 역할이었다. 처음에는 들어도 어디다 써먹는지 모를 인터페이스였는데 이후에 실제 AI 엔지니어링 진행 과정을 이해하니 감이 잡혔다. AI 엔지니어링은 이미 잘 만들어진 외부의 모델을 가져와 입맛에 맞게 개조해서 사용하는 것이 대부분이다. 즉, Hook은 엔지니어의 입장에서 모델을 뜯어보거나, 입맛에 맞게 기능을 추가하는 데 사용되는 것이다.
이러한 Hook의 종류에는 총 5가지가 있다.
- forward_pre_hooks #Forward 연산 전 사용. 예를 들어 연산 전 입력 값 확인에 사용 가능. - forward_hooks #Forward 연산 후 사용. 예를 들어 연산 후 결과 값 확인에 사용 가능. - backward_hooks # deprecated #현재는 다음 행의 함수가 대체함. 이후 버전에서 다른 동작으로 바뀐다고 한다.(작성 당시 1.12) - full_backward_hooks #연산 이후 사용. gredient 값 등 모든 연산이 끝나야 나오는 값에 사용한다. #tensor와 module 2가지에 모두 적용할 수 있다. - state_dict_hooks # used internally #"load_state_dict" 함수에 의해 내부적으로만 사용한다.
부족했던 점) Dataset과 DataLoader 제작
타이타닉 탑승자 데이터로 생존/사망을 예측하는 예제는 AI 계의 "Hello World" 격이라 할 수 있다. 이번에도 어김없이 Pytorch를 활용해서 실습을 진행하는 데 문제가 생겼다. X, y의 값을 반환하고 싶었는데 한 줄씩 반환할 수 없었고 전체 값이 반환되는 것이었다. 위의 실습대로 했는데도 문제가 있었는데 그 이유는 Pandas의 함수를 제대로 숙지하지 못했기 때문이다. 아래는 수정한 코드이다.
def __getitem__(self, idx): X, y = None, None ######################################TODO###################################### # Pandas 문법 X = self.X.iloc[idx] y = self.y.iloc[idx] ################################################################################ return torch.tensor(X), torch.tensor(y)
다른 예제 데이터들과 달리(모듈에서 기본 제공하는 MNIST, AG NEWS 데이터를 사용했었다.) 타이타닉 데이터는 csv로 이루어진 데이터로 Pandas의 전처리가 필수적이었다. Pytorch 뿐 아니라 Pandas 문법 역시 숙지하고 있어야 데이터 관련 작업을 훨씬 수월하게 할 수 있다는 것을 다시금 깨달았다.
개선할 점) 회고의 체계화
2주째 회고를 진행하고 있지만 아직도 많이 부족함을 느낀다. 단 하루에 일주일간의 내 고민을 모두 담기에는 역부족이었다. 실시간 기록과 회고의 필요성을 절실히 느꼈다.
이를 해결하고자 NOTION을 적극 활용하고자 한다. 간단한 개인 페이지나 포트폴리오 작성용도로만 사용하고 있었는데 이 참에 Inflearn 에서 제공하는 강좌를 듣고 제대로 준비하고자 한다.
또한, NOTION을 항시 켜두고 옆 화면에 기록하며 학습하는 습관을 들여야겠다. 효과적인 학습이나 일과 수행에는 그에 맞는 도구의 활용법을 적극적으로 익혀두어야 하는 법이다.
'Boostcamp AI Course' 카테고리의 다른 글
부스트캠프 AI_Course 1주차 (0) 2022.09.23