본문 바로가기
TIL/Boostcamp AI tech

[Boostcamp] week3-Day11. Pytorch 기본 :: seoftware

by seowit 2021. 8. 17.
목차
1. 강의정리
2. 과제 - Custom model 제작
3. 피어세션 정리
4. 데일리 회고 

📜 강의 정리 

* 부스트캠프 PyTorch 강의를 맡아주신 최성철 교수님의 강의를 정리한 것 입니다.


1. Tensor는 numpy와 사용법이 거의 동일하다!

2. reshape 보다는 view를 쓰자. 둘 다 shape을 변경하는 기능을 제공하지만, reshape은 가리키는 tensor의 shape을 변경하고, view는 새로운 tensor로 카피해서 shape을 변경한다.

3. squeeze, unsqueeze : squeeze는 tensor 내부의 크기가 1인 괄호를 없애준다. unsqueeze는 반대로 괄호를 하나 더 씌워주므로 dim을 써야한다.

4. dot, mm, matmul 차이 : dot은 스칼라와 벡터의 연산에 사용. matmul과 mm은 행렬곱에 사용. mm은 broadcasting을 지원하지 않고 matmul은 broadcasting을 지원하므로 되도록 mm을 사용하여 shape에 착오가 없도록 한다.

5. torch.nn.funtional 에서 제공하는 함수들 잘 이용해서 쓰면 된다.

6. PyTorch는 backward pass를 위한 Autograd를 제공한다



👩‍💻 과제 수행 과정


코랩에서 과제 열자마자 정성에 감동의 눈물ಥ_ಥ 부덕이🦆랑 함께 공부하는 컨셉인데,, 어느 순간부터 부덕이가 혼자 너무 똑똑해져서 거리감 생긴다. 그래도 이렇게 과제 만드시느라 고생한 멘토님 정성 먹고 열심히 과제 해야지!🙌🙌

 

❓❓ torch.gather?

✅ 어떤 tensor에서 index tensor에 해당하는 값을 가져오는 것. 비교하는 tensor와 index tensor의 dimension 같아야 한다. 

https://pytorch.org/docs/stable/generated/torch.gather.html?highlight=gather#torch.gather 

 

torch.gather — PyTorch 1.9.0 documentation

Shortcuts

pytorch.org

 

❓❓ nn.Sequential 을 사용하는데, forward 함수를 불러오려고 하면 자꾸 x 없다고 에러 뜬다.

✅ forward는 명시적으로 부르는 것이 아니라 클래스명으로 불러온다.

 

❓❓ 아래 예시처럼 model 출력할 때 각 layer나 function 내부의 파라미터까지 출력하려면?

예시

✅ extra_repr 함수를 정의한다!

class Function_A(nn.Module):
    def __init__(self, name):
        super().__init__()
        self.name = name
    
    def extra_repr(self):
        return 'name={}'.format(self.name)

 

❓❓ register_backward_hook 과 register_full_backward_hook의 차이는 무엇일까?


🙋‍♀️피어세션

 

오늘 피어세션 시간에는 인공지능 관련 면접 질문들에 대해 팀원들과 대답해보는 시간을 가졌다.

https://zzsza.github.io/data/2018/02/17/datascience-interivew-questions/#%EB%94%A5%EB%9F%AC%EB%8B%9D

 

데이터 사이언스 인터뷰 질문 모음집

데이터 사이언스 분야의 인터뷰 질문을 모아봤습니다. (데이터 분석가 / 데이터 사이언티스트 / 데이터 엔지니어) 구직자에겐 예상 질문을 통해 면접 합격을 할 수 있도록, 면접관에겐 좋은 면접

zzsza.github.io

개념적인 것에 대한 질문들에 대한 답변을 생각하며 배웠던 내용을 복습할 수 있어서 도움이 많이 되었다. 

특히 딥러닝이란 무엇인가? 딥러닝와 머신러닝의 차이는 무엇인가?에 대해 한 캠퍼님이 잘 답변해주셔서 머릿속에서 기본 큰 틀을 정리할 수 있어서 좋았다.

또한 Data normalization을 하는 이유에 대한 답변이 어려웠는데, 구글링을 통해 답을 얻었다. input data를 normalization 하면, 더 빠르게 최적화를 할 수 있다고 한다.

https://goodtogreate.tistory.com/entry/Neural-Network-%EC%A0%81%EC%9A%A9-%EC%A0%84%EC%97%90-Input-data%EB%A5%BC-Normalize-%ED%95%B4%EC%95%BC-%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0

 

Neural Network 적용 전에 Input data를 Normalize 해야 하는 이유

딥러닝 입력 데이터 정규화 (Normalizing inputs) 학습을 수행하기 전에 값의 범위를 normalization  하는 것은 중요하다. 그 이유는 아래와 같다. 입력 변수가 MLP에서와 같이 선형 적으로 결합된다면 적

goodtogreate.tistory.com


💌 데일리 회고

 

3일의 연휴가 너무 빠르게 지나갔다. 부스트캠프가 아니었다면 게으른 삶을 살고 있었을 뻔 했다.

댓글