본문 바로가기

Computer Vision

(19)
[Pytorch] transforms.Resize 후 transforms.CenterCrop 하는 이유 Question: transforms.Resize와 transforms.CenterCrop을 동일한 사이즈로 하면 같지 않을까? A : (1) 단일 사이즈만을 정의하면 Resize한 결과와 CenterCrop한 결과가 다르고, (2) (H,W)를 모두 정의하면 그 결과가 같다. 아래의 예시 코드는 Pytorch tutorial의 DCGAN 구현 코드이다. 코드에서 데이터 셋에 대하여 Resize 후 CenterCrop을 하는 preprocessing 과정을 거친다. dataset = dset.ImageFolder(root=dataroot, transform=transforms.Compose([ transforms.Resize(image_size), transforms.CenterCrop(image_siz..
GPU에 남아있는 process 지우기 / kill -9 [process_id] 가 안될 때 /RuntimeError: Address already in use 문제상황 RuntimeError: Address already in use 에러 발생 training 코드를 강제 중단 하는 과정에서 control+c 로 중단하여 process가 정상적으로 종료되지 않은 상황 해결방법 (1차) 일반적으로 nvidia-smi 를 실행하여 하단에 돌고 있는 process id를 보고 kill -9로 프로세스를 강제 종료하면 해결됨 process를 강제 종료하기 위하여 다음과 같이 실행. [PID]에 해당하는 process id 숫자를 넣어서 실행 $ kill -9 [PID] 해결방법 (2차) 필자는 python으로 실행시킨 process를 지우기 위하여 python으로 실행되는 프로세스들을 검색. $ ps aux | grep python 위의 사진에서 두번째 column에..
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 오류 해결 방법 문제 pretrained 된 모델을 pytorch를 통해 다운받을 때 생기는 오류 필자의 경우, 다운받는 아래와 같이 link가 http 형식으로 작성되어 있어 오류가 발생 model_urls = { 'fbresnet50': 'http://data.lip6.fr/cadene/pretrainedmodels/resnet50-19c8e357.pth', 'fbresnet101': 'http://data.lip6.fr/cadene/pretrainedmodels/resnet101-5d3b4d8f.pth' } 해결방법 (1) 상기 명시된 주소의 http 형식을 https 로 바꾸어서 실행한다. 보통 model configuration을 정의하는 파이썬 파일에 정의되어 있으므로 확인할 것 model_urls = { '..
[에러해결] nll_loss 2d forward kernel: block: [5,0,0], thread: [845,0,0] Assertion `t >= 0 && t < n_classes` failed. ※ Segmentation / classification 시 target (혹은 ground truth) 의 class label이 범위를 넘어선 경우에 발생 1. 필자 같은 경우는 배경(0), 객체(1~20), 경계선(255)으로 labeling 된 segmenatation mask를 nn.CrossEntropy() 에 target으로 넘겨주면서 상기의 에러메세지 발생 2. Pytorch의 CE는 long 타입으로 입력 받는 target에 대하여 one-hot encoding을 수행하고 이를 input에 대하여 softmax 및 cross entropy를 계산함. 3. 자동으로 one-hot encoding 하는 과정에서 연속적인 레이블(0~20)에 대하여 21개의 channel로 원핫 인코딩 가능하였..
VOCSegmentation DataLoader 버그 ※ pytorch 를 활용하여 VOC 2011를 활용하고자 하는 경우, transforms 옵션으로는 정상적인 data transformation이 수행되지 않는다. VOCSegmentation에 data transform을 적용할 수 있는 option은 'transform', 'transform_target', 'transforms'이다. transform은 원본 RGB 이미지에 대한 data transformation을 적용한다. transform_target은 segmentaition label image에 대한 transformation을 적용한다. transforms은 이미지와 레이블에 대해 모두 transformation을 적용한다. 그러나 실제로는 아래와 같이 transforms 옵션을 활용..
[환경 구축] Windows11 / WSL2 / NVIDIA GeForce GTX 1660 Ti / Pytorch / VS code 환경에서 딥러닝 개발하기 환경에 계속 실패하다가 겨우 성공해서 백업용으로 쓴다. 1. WSL2 설치 2. Ubuntu 18.04 LTS 설치 3. NVIDIA 드라이버 설치 4. CUDA 설치 5. VS code 에서 코드 작성 + WSL에서 돌리기 - NVIDIA GeForce GTX 1660 Ti 1. WSL2 설치 2. Ubuntu 18.04 LTS 설치 3. NVIDIA 드라이버 설치 NVIDIA 드라이버 공홈 접속 : Official Drivers | NVIDIA) Download the latest official NVIDIA drivers Download the latest official NVIDIA drivers www.nvidia.com 현재 스펙이 Windows11/ GTX 1660 Ti 이므로 다음의 스펙으..
(진행 중) [논문리뷰] Batch Normalization (22.09.13) Abstract 정리 완료 스스로 정리한 필기 및 내용에 대하여 간단하게 정리해본다. Batch Normalization(BN)은 기본적으로 모델에서의 output distribution이 변함(Internal Covariate Shift)에 따라 생기는 다양한 문제를 해결하기 위해 Normalize하는 기법이다. 저자가 제시한 방법을 활용하여 이와 같은 문제를 해결하고 나아가 적용 방법과 그 성능을 확인해보고자 한다. Abstract 저자는 Deep Neural Network를 학습시킴에 따라 발생하는 문제를 지적한다. : 트레이닝 시 각 layer의 input의 분포가 변함에 따라, (1) learning rate 값을 낮추고, (2) parameter(모델의 weight)를 ca..
[Python] .scatter()함수 이해 요약 1. .scatter(dimension, index, src) 꼴이라면 다음과 같다. dimension은 어느 방향으로 업데이트할지 index는 src의 값을 어떻게 선택할지 src는 어떤 값으로 업데이트를 할지 2. index 텐서의 각 element 의 위치에 대응되는 src의 element가 output의 어느 위치로 갈지 결정한다. 예시1 >>> src = torch.arange(1, 11).reshape((2, 5)) >>> src tensor([[ 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10]]) >>> index = torch.tensor([[0, 1, 2, 0]]) >>> output = torch.zeros(3, 5, dtype=src.dtype).scatter_(0,..

728x90