[PyTorch] PyTorch Autograd 이젠 공부하자 - pytorch.autograd 총정리하기 (+code)
·
PyTorch👩🏻‍💻
오늘은 평소 간과하고 넘어갔던 Pytorch의 Autograd에 대해 포스팅해보려고 합니다. 최근 backward 함수를 변형해야할 일이 있어서 여러가지를 시도해보다가 제가 정작 PyTorch를 잘 모르고 있다는 사실을 깨달아 버렸네요..ㅎㅎ !! Autograd를 이해하기 위한Background 부터 차근차근 정리해보도록 하겠습니다. :) Background # 순전파와 역전파 우리가 아는 신경망(Neural Network)은 흔히 순전파(Forward propagation)와 역전파(Backward Propagation)으로 나뉩니다. 각각의 역할은 다음과 같이 요약할 수 있겠습니다. - 순전파(Forward Propagation) : 모델이 input을 받아 prediction을 생산하는 부분 - ..
[MTL] GradNorm : Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks 논문 리뷰
·
Computer Vision💖/Multitask Learning
오늘은 Multitask Learning(MTL) 분야의 논문인 GradNorm(2018, ICML)에 대해 리뷰해보려고합니다. 다소 오래 전에 발표되었지만 아직까지 MTL 분야에서 밴치마크 성능으로 자주 등장하는 논문입니다. 제가 이해한 바를 정리한 것이니 잘못된 점은 댓글 부탁드립니다! :D 1. Introduction # MTL과 Task Balancing 우리가 흔히 알고있는 딥러닝의 학습 체계는 Single-task learning(STL)이라고 할 수 있습니다. Multi-task learning의 방식은 딥러닝의 등장 전부터 존재했지만, 딥러닝이 등장하며 Single-task learning 학습체계는 Computer Vision 분야에서 인간을 능가하는 퍼포먼스를 보여주고 있습니다. 하지만..
[ObjDet] Pointcloud를 통한 3D Object Detection 관련 기본 개념 정리 ʕ•ᴥ•ʔ
·
Autonomous Driving 🚙/LiDAR 3D Detection
오늘은 3D Object Detection 관련 알아둬야 할 기본 개념을 정리해보려고 합니다! 저도 공부하며 정리한 내용이라 많이 미숙할 수 있습니다 :) 주로 Point cloud를 활용한 3D Detection의 갈래에 대한 기본 개념이 정리되어 있습니다. PointCloud의 Input 표현 우선 PointCloud는 LiDAR에서 생성되는 다음과 같은 데이터 형태를 뜻합니다. 이러한 데이터의 Input은 주로 다음과 같이 $x$, $y$, $z$, $r$의 4개의 요소로 정의됩니다. 여기서 $x$, $y$, $z$는 각 point들의 3차원 좌표를 뜻하고, $r$은 LiDAR의 반사세기를 뜻합니다. 이러한 point 좌표 ( $x$, $y$, $z$, $r$ )의 상대위치를 계산할 때는 주로 $x..
[PyTorch] CUDA 11.2 + RTX3090에 맞는 torch version 세팅하기
·
PyTorch👩🏻‍💻
Causal HTP 코드를 돌리는데 가상환경 세팅에 조금 애를 먹었다. 원인은 CUDA 버전과 torch 버전이 안맞아서,,,, ! 코드를 돌려도 model.cuda() 부분에 딜레이가 생기고 결국 epoch 진행이 되지 않았다. 결국 11.2에 맞는 torch version을 다음과 같이 설치해 해결하였다. # CUDA 11.0 $ pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 -f https://download.pytorch.org/whl/torch_stable.html Reference https://sanglee325.github.io/environment/pytorch-cuda112/#problem
[백준] 캥거루 세마리2 (Python) - Greedy
·
Algorithms 💻/BAEKJOON
# 문제 캥거루 세 마리가 사막에서 놀고 있다. 사막에는 수직선이 하나 있고, 캥거루는 서로 다른 한 좌표 위에 있다. 한 번 움직일 때, 바깥쪽의 두 캥거루 중 한 마리가 다른 두 캥거루 사이의 정수 좌표로 점프한다. 한 좌표 위에 있는 캥거루가 두 마리 이상일 수는 없다. 캥거루는 최대 몇 번 움직일 수 있을까? # 입출력 # Idea 이 문제의 가장 중요한 부분은 "최대 몇 번 움직일 수 있는지" 출력해야한다는 것! 이러한 조건 때문에 아래와 같은 만족해야할 두가지 필요충분조건이 생긴다. 1. 초기 위치 A, B, C 중에서 바깥 A, C 중 이동해야할 element를 정할 때는 A&B와 B&C 사이의 거리의 대소를 정해야한다. 2. 만약 A가 이동하기로 했다면, B와 C의 사이 중 B나 C의 바로..
[백준] 우유축제 (Python) - Greedy
·
Algorithms 💻/BAEKJOON
# 문제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후에는 초코우유를 한 팩 마신다. 초코우유를 한 팩 마신 후에는 바나나우유를 한 팩 마신다. 바나나우유를 한 팩 마신 후에는 딸기우유를 한 팩 마신다. 영학이는 우유 축제가 열리고 있는 우유거리에 왔다. 우유 거리에는 우유 가게들이 일렬로 늘어서 있다. 영학이는 우유 거리의 시작부터 끝까지 걸으면서 우유를 사먹고자 한다. 각각의 우유 가게는 딸기, 초코, 바나나 중 한 종류의 우유만을 취급한다. 각각의 우유 가게 앞에서, 영학이는 우유를 사마시거나, 사마시지 않는다. 우유거리에는 사람이 많기 때문에 한 번 지나친 ..
[Trajectory prediction] Social-STGCNN (Spacial Temporal GCN, 2020) 논문 리뷰
·
Autonomous Driving 🚙/Trajectory prediction
오늘은 Trajectory prediction 분야에서 baseline으로 자주 쓰이는 Social- STGCNN에 대해 포스팅하려고 합니다(●'◡'●) 2020년 CVPR에 나온 논문이고, STGCNN 모델을 기반으로 하는 모델입니다. 역시 잘못된 부분이 있다면 댓글로 알려주시면 감사하겠습니다 🙋🏻‍♀️ Overall Architecture 우선 Social STGCNN의 이름에 GCN (Graph Convolution Net)이 들어가는 것처럼, 이 모델은 Graph Neural Net 기반의 모델입니다. Graph Neural Net (GNN)을 간단하게 요약하자면 data에서 graph 를 형성한 후, 그 graph의 node와 edge의 구성을 인접행렬(Adjacency matrix)로 표현하며..
[DG] Deep CORAL(CORelation ALignment, 2016) 논문리뷰
·
Computer Vision💖/Domain (DA & DG)
오늘은 Domain Generalization의 대표 알고리즘인 Deep CORAL에 대해 간단히 리뷰해보도록 하겠습니다. 역시 잘못되거나 궁금한 부분은 댓글 부탁드립니다👀 Introduction 우리가 아는 대부분의 머신러닝 알고리즘들은 보통 IID (Independent & Identically distributed) 한 상황을 가정합니다. 하지만 아시다시피 이러한 IID 상황은 현실에서는 잘 보기 어렵습니다. 정말 이상적인 통계적인 상황을 가정한 것이기 때문이죠. 즉, 우리는 머신러닝 프로세스에서 보통 Domain shift를 겪습니다. 흔히 train data와 test data의 distribution이 달라 발생하는 기계학습의 한계인 것이죠. 따라서 Deep CORAL은 이러한 domain s..