무슨 생각을 해 그냥 하는거지

[학습정리] 2021-08-17 본문

Naver AI Tech 2기/Today I Learned

[학습정리] 2021-08-17

빛나는콩 2021. 8. 17. 19:11

※ 정보전달이 목적인 포스트가 아니라 개인 학습 기록 및 정리가 목적인 포스트입니다 ※

해당 포스트는 네이버 커넥트 재단의 부스트캠프 마스터님이신 최성철 교수님의 강의를 바탕으로 작성되었습니다.

 

1. 강의 복습 내용

[Pytorch]

PyTorch vs TensorFlow

(원래 아래가 가장 큰 차이였지만 tensorflow 업데이트 이후 둘 다 가능하다고 한다.)

  • pytorch는 Dynamic Computational Graph (또는 Define by Run)
  • tensorflow는 Define and Run

Pytorch == Numpy + AutoGrad + Function

 

Tensor

numpy의 ndarray와 동일. 쓰는 함수도 비슷하다.

  • view: tensor의 shape을 변환.
  • squeeze: 차원의 개수가 1인 차원을 삭제
  • unsqueeze: 차원의 개수가 1인 차원을 추가

squeeze vs unsqueeze

view는 reshape과 비슷하지만 contiguity를 보장한다. (reshape은 contiguity 보장X)

contiguity를 보장한다는 것은 tensor를 copy 하고 원래 값을 변경했을 때 copy한 값도 변한다는 것.

reshape은 contiguity를 보장하지 않기 때문에 원래 값을 변경해도 copy한 값은 변하지 않는다.

 

Matrix Multiplication (dot은 vector끼리의 내적 연산)

  • mm: broadcasting 지원 X
  • matmul: broadcasting 지원 O

 

AutoGrad

  • requires_grad=True → autograd에 모든 연산들을 추적해야 한다고 알려주는 것
  • .backward()를 호출하면 autograd는 gradient를 계산하고 이를 각 텐서의 .grad 속성에 저장

external_grad → Q는 벡터이므로 Q.backward()에 gradient 인자를 명시적으로 전달해야 함.

gradient는 Q와 같은 모양의 텐서로, 자기 자신에 대한 gradient를 나타냄. (그러니까 1)

 

 


2. 과제 수행 과정 / 결과물 정리

[필수과제]

torch.index_select(input_matix, dim, index)

torch.gather(input, dim, index) → Understanding indexing with pytorch gather

 

 


3. 피어세션 정리

  • 알고리즘 스터디를 위한 빌드업🦾 → 다른 캠퍼님의 pull request 방법 강의 (감사합니다!)
  • 오늘 강의 요약 발표✌

 

 


4. 학습 회고

  • index_select, gather 같은 함수를 처음 써봤다. 끼워맞추기식 코딩을 하니 약간 자괴감이 드는 중...
  • 알고리즘 스터디를 제대로 한 적이 없어서 코드가 정말 엉망진창이다. DFS와 BFS 문제를 쉬운 것부터 차근차근 풀어봐야지... 기억하자 개발자가 실력이 없는 건 죄다...😤

'Naver AI Tech 2기 > Today I Learned' 카테고리의 다른 글

[학습정리] 2021-08-19  (0) 2021.08.20
[학습정리] 2021-08-18  (0) 2021.08.20
[학습정리] 2021-08-13  (0) 2021.08.13
[학습정리] 2021-08-10  (0) 2021.08.12
[학습정리] 2021-08-09  (0) 2021.08.09