[PyTorch] Multi-GPU 사용하기 (torch.distributed.launch)
·
PyTorch👩🏻‍💻
PyTorch 환경에서 train 할 때, CUDA OOM(Out Of Memory) 에러 때문에 여러개의 gpu로 동시에 병렬적으로 train 하고싶을 때가 있다. 이때는 torch.distributed.launch 를 사용하면 되는데 이는 다음과 같다. $ python -m torch.distributed.launch --nproc_per_node=2 train.py --launcher pytorch 참고로 위에서 --launcher는 내가 사용하는 code의 argments 중 하나이다!
[TIL] OpenPCDet 가상환경 세팅하기 (cuda11.1 + spconv)
·
PyTorch👩🏻‍💻
사실 내가 까먹을까봐 적어놓는 프로세스! :( # OpenPCDet 우선 OpenPCDet은 Pointcloud를 이용한 3D detection 분야에서 흔히 쓰이는 패키지 모듈이다. Autonomous driving 분야에서 꽤 유명한 git 레포이고, star도 2.7k 정도이다! 거의 pointcloud를 이용한 3D detection 모델이 모두 들어있고, 이 패키지로 거의 모든 모델을 동일한 환경에서 실험할 수 있어 매우 유용한 패키지이다. 하지만 가상환경 세팅하는게 조금 빡쎄서, 고생했던 기억이 있다. 따라서 이를 공유하고, 미래의 나에게도 혼동하지 않도록 하기 위해 프로세스를 기록한다! :) # Process 1. 우선 python 3.8의 가상환경 만들기. 만약 3.7로 해버렸다면 다음과 ..
[Linux] 리눅스 wget 사용하기 - 다소 큰 파일을 웹상에서 다운로드
·
Linux
오늘은 리눅스 wget 명령어에 대해 간단히 포스팅해보려고 한다. 특히 dataset 같은 아주 큰 파일을 다운로드 해야할 때, 아주아주 느릴 수 있고 서버로 바로 다운받고 싶을 수 있다. 따라서 이럴 때 wget을 이용하면 효과적임을 알아냈다! 명령어의 간단한 사용법은 다음과 같다. ▶ wget -r 다운로드할 링크 -O 다운로드파일명 여기서 다운로드할 링크를 chrome 환경에서 알아내는 방법은, chrome download 창에 가서 링크를 복사하면 된다. 사용 예시는 다음과 같다. wget -r https://lyft-l5-datasets-public.s3-us-west-2.amazonaws.com/3d-object-detection/one_scene.tar -O info.tar
[CV] ResNet-18로 특정 Image의 feature 추출하기 (PyTorch)
·
Computer Vision💖/Basic
오늘은 리부탈에서 사용했던 간단한 feature extraction 과정을 포스팅해보려고 한다. 리부탈 끝난 기념으로 여유롭게 포스팅을 하구있다 🥳🔥 우선 오늘 포스팅할 내용은 특정 Image 하나가 들어왔을 때, 이 image를 잘 나타내는 feature를 추출하는 pytorch 방법이다. 나의 경우에는 segmentation map의 feature가 필요했고, 단순 convolution layer를 쌓는 것보다 pretrain된 PyTorch 내장 모듈을 사용하는 것이 좋을 것 같다는 생각에 ResNet을 이용하게 됐다. 우선 간단히 ResNet-18부터 짚고 넘어가고, 어떻게 특정 image의 feature를 추출하는지 그 code를 소개해보려고 한다. # ResNet-18 우선 이 글을 읽는 독자..
[백준] 치킨배달(Python) - 구현 & 백트래킹
·
Algorithms 💻/BAEKJOON
# 문제 문제가 언뜻 보면 복잡해보이지만, 사실 M개의 치킨집을 선택하는 최적의 입지를 구하는 문제다. 여기서 최적의 입지의 기준이란 각 집으로부터 "치킨거리"의 합이 가장 작아지는 M개의 치킨집을 고르는 경우를 구하는 것 ! "치킨거리"를 구하는 공식 또한 인덱스를 기준으로 하기에 그렇게 어렵지 않다. # 입출력 # Idea # Code 우선 이 문제는 구현과 백트래킹으로 풀 수 있으므로, 구현으로 푸는 방법을 먼저 소개하겠다. itertools의 combination 함수를 이용하면 쉽게 구현 가능하다. """ 치킨 배달 - Combination으로 먼저 풀기 """ from itertools import combinations # 해당 치킨집 조합과 1들의 거리를 리턴하는 함수 def distanc..
[CV] Test-Time Domain Adaptation의 의미와 간단 정리
·
Computer Vision💖/Domain (DA & DG)
리뷰를 하다가 Test-Time Domain Adaptation (TTDA) 관련 paper를 보게됐다. 단순 DA 분야는 익숙한 분야이지만, Test-Time Domain Adaptation은 익숙치 않은 용어라 간단히 정리하고 넘어가려고 한다. # Domain Adaptation 우선 Domain Adaptation이란 서로 다른 distribution을 가진 두 도메인에 robust한 모델을 만드는 것을 목적으로 하는 분야이다. 여기서 주로 두 두메인은 source domain과 target domain으로 나뉘며, 서로 다른 데이터셋 분포를 가진다고 가정한다. 만약 source domain에서 학습된 모델을 target domain에 적용하려면 두 도메인은 분포가 다르기 때문에 당연히 문제가 발생..
[백준] 스타트와 링크(Python) - 백트래킹
·
Algorithms 💻/BAEKJOON
# 문제 문제가 복잡해 보일 수 있지만, 사실 아래와 같은 diagonal 하게 대칭인 능력치 행렬이 주어지면, 두 팀의 능력치 차이가 최소가 되도록 팀을 나누고, 그 최소값을 반환하는 문제이다. # 입출력 # Idea 이 문제는 생각보다 이해하기도, 아이디어를 생각하기도 어려웠던 문제다. 그럼에도 불구하고 내가 문제를 풀 때부터 계속 들었던 생각은 능력치 행렬은 대각선 대칭 행렬이라는 것! 이 점을 잘 이용하고 싶었는데, 풀이과정이 잘 생각나지는 않았다. 따라서 이 문제는 아래와 같은 아이디어로 접근하면 된다. 우선 내 가장 큰 고민은 DFS의 노드로 어떤 것을 넣을까였는데, 1부터 N까지 담긴 노드를 그냥 생성하고 이들로 visited 여부를 체크해 팀을 나눈다고 생각하면 편하다. 위 그림에서 노란색..
[PyTorch] torch-sparse, torch-scatter, torch-geometric 패키지 install 하기 + 오류 해결 방법
·
PyTorch👩🏻‍💻
GNN관련 코드를 보다가 원래 pip install torch-sparse만 해도 예전에는 설치가 잘 되었었는데, 어느 순간부터 이렇게 했더니 패키지 종속관계가 맞지 않는 문제가 발생해 설치가 되지 않았다. 아마 업데이트가 된 모양인데...! 생각보다 설치하는 과정이 까다로워서 블로그에 정리해보려고 한다. torch-geometric과 torch-sparse, torch-scatter 등은 무언가 dependency가 존재하는 패키지인 듯 했다. (나는 torch-sparse와 torch-scatter 패키지만 필요한 상황이었다.) 우선 torch-geometric의 공식 홈페이지인 이 곳에 방문하면, torch가 1.8.0 이상이면 다음과 같이 설치하라고 안내한다. > conda install pyg ..