[Boostcamp AI Tech] 3주차 Day 2 학습 기록

bluegun·2021년 8월 19일
0

AI Tech 2기 활동

목록 보기
12/87

당일 날 새벽 4시까지 과제하고 제출한 뒤 깜빡하고 글을 안 쓰고 바로 자버려서..다음 날이지만 작성한다. 그마저도 과제하다 늦게 씀

학습 내용

Autograd, Optimizer

  • 논문을 보다보면 직접 구현해야 할 경우가 있으므로, Autograd, Optimizer 등 Model과 구성 요소들을 직접 구현 할 줄 알아야 한다.

  • Layer는 Block처럼, 하나하나 쌓아서 다음으로 넘긴다고 생각하면 편함.

  • torch.nn.Module

    • Layer의 Base class로서, Input, output, forward, backward, parameter등을 정의하고, layer가 이를 상속받아 커스터마이징
  • nn.Parameter

    • nn.Module 내에 attribute가 될 때는 자동으로 require_grad = True로 되어있음
    • 따라서 우리가 직접 지정할 일은 잘 없음.
    • Tensor와는 require_grad가 설정되어 있느냐의 차이
  • Backward

    • Parameter들에 대해, Forward의 결과와 실제값의 차이를 정의한 loss function에서 미분을 통해 업데이트
  • 학습 시 optimizer.zero_grad(), loss, optimizer 지정, backward, optimizer.step()은 반드시 거쳐야한다.

Dataset

  • transforms

    • 데이터 전처리
    • transforms 처리 이후 tensor로 변환해줘야 한다.(데이터 전처리와 텐서 변환은 따로임)
  • Dataset

    • 데이터 입력 형태를 정의하며, 입력 데이터에 따라 다르게 처리(image, audio 등..)
    • Dataset 클래스에서, 학습은 GPU에서 진행할 수 있으니 Tensor변환 등 처리를 학습이 필요한 시점에 해도 된다.
  • DataLoader

    • Data의 Batch를 생성해주는 클래스
    • Tensor 변환과 Batch_size만큼 묶어서 전달해준다.

피어 세션

  • 과제로 custom model을 구현하기 위해 torch의 module과 tensor를 공부하는 과정에서 궁금했던 부분에 대한 질의응답을 하였다.

  • 과제 양이 비교적 많아 해결해야 할 부분이 많았기에 많은 얘기를 하지는 못했다.

공부가 필요한 부분

  • 과제 자료를 통해 custom model을 만들기 위해 필요한 내용과 만드는 법에 대해 실습을 진행하였는데, 내용이 너무 많아 앞으로도 계속 봐야 할 것 같고 실제 구현하는 연습도 많이 필요할 것 같다.

  • 공식 Document에서 소스 코드를 보고 비교하거나 클론 코딩을 해보는 편이 확실할 것 같다.

느낀 점

  • 지난 주차보다 과제 양이 훨씬 많아 과제만 하루종일 하였다.

  • 부스트캠프에 들어오기 전에 기대했던 것처럼, 내가 알아야 할 모든 것들이 담긴 것 같아 방향성이 보여 만족스러우면서도, 아직 일부분밖에 이해하지 못하고 구현 능력은 초심자 수준인 것 같아 갈 길이 멀다고 느낀다.

  • 다음 주 부터의 P-stage를 위해선 반드시 익혀야 할 것 같다.

  • 이번 주 과제가 많으니 과제만 확실히 하는 걸 목표로 해야겠다.

0개의 댓글