본문 바로가기

전체 글

(184)
이미지 데이터셋 총 정리: CIFAR-10, CIFAR-100, STL-10, MNIST, FASHION-MNIST, SVHN, ImageNet 설명 및 PyTorch로 학습하는 방법과 성능 분석 ※ 다양한 이미지 분류 데이터 세트 ※ 딥러닝 분야에는 매우 다양한 이미지 분류 데이터 세트가 존재한다. 대표적으로 CIFAR-10, CIFAR-100, STL-10, MNIST, FASHION-MNIST, SVHN, ImageNet이 있다. 이러한 데이터 세트들은 논문(paper)에서도 자주 등장한다. 이렇게 자주 사용되는 데이터 세트가 있는 이유는 무엇일까? 일반적으로 딥러닝을 공부할 때는 특정한 방법이나 딥러닝 모델이 기존에 제안되었던 방법들보다 얼마나 우수한지 보여주는 경우가 많다. 그래서 다양한 딥러닝 모델을 동일한 데이터 세트에 대하여 학습하고, 서로 성능을 비교하곤 한다. 참고로 PyTorch로 특정한 이미지 데이터 세트(CIFAR-10 등)에 대하여 학습하는 코드가 있으면, 그것을 조금 바..
PyTorch에서 특정한 학습 데이터 세트를 불러와 변형한 뒤에 저장하고, 나중에 원할 때 DataLoader로 불러와 사용하는 방법 ※ PyTorch에서 특정한 학습 데이터 세트를 불러와 변형한 뒤에 저장하기 ※ 흔히 PyTorch를 이용해 학습을 진행하다 보면, 학습 데이터 세트에 변형을 가하는 경우가 많다. 이미지를 회전시키거나(rotation), 적대적 노이즈를 섞거나(adversarial attack), 이미지에 패치를 붙이거나(patching) 등의 작업을 수행하는 경우가 많다. 그렇다면 하나의 데이터 세트를 불러와 다양한 전처리를 수행한 뒤에, 전처리된 데이터를 저장해 놓고 나중에 사용하고자 한다면 어떻게 하면 될까? 아래는 학습 데이터를 처리한 뒤에 저장하는 예시이다. 우리는 흔히 학습 데이터 세트를 데이터 로더(data loader)를 이용해 배치(batch) 단위로 불러와 학습한다. 이때 필자는 Epoch별로 서로 다..
PyTorch 오류 해결 방법 "RuntimeError: Function AddmmBackward returned an invalid gradient." ※ 이 글은 필자가 개인적으로 공부하면서 정리한 글이기 때문에, 잘못된 정보가 포함되어 있을 수 있습니다. ※ ※ 오류 상황 ※ 아래 오류는 PyTorch 프레임워크를 이용하여 CNN 분류 모델의 학습 코드를 돌릴 때 마주쳤던 오류다. ▶ 오류 메시지: "RuntimeError: Function AddmmBackward returned an invalid gradient." ※ 오류 발생 원인 ※ 일반적으로 CNN에서는 convolutional layers에 기반한 feature extractor에서 나온 결과를 flatten한 뒤에 (벡터로 변경한 뒤에) linear layer의 입력으로 넣는다. 다만 이때, flattened dimension과 linear layer의 input dimension이 ..