pytorch
-
CNN 모델의 classifier단에서 FC layer의 입력 노드 개수AI\ML\DL/Pytorch 2023. 8. 3. 21:35
﹡ 이미지 다중분류 문제에서 CNN을 사용하면 convolution layer 와 ReLU, Batchnorm2d, MaxPool2d를 반복하다가 마지막에는 fully connected layer를 통과해서 softmax를 얻어 분류를 해주어야 한다. 예를 들어 CIFAR10 데이터셋으로 10가지를 분류하는 네트워크를 만든다고 하자. 통상적인 네트웍에서는 CNN 레이어를 통과해서 다양한 특징맵을 뽑아내고 풀링을 해서 사이즈를 반으로 줄인다. (Maxpooling을 한다고 해서 채널수가 줄지는 않는다. 채널별로 각각 풀링해주는 거니까) 충분히 특징맵을 얻었다면 nn.Linear( )를 활용해서 최종적인 출력 노드를 10개로 줄여줘야 할 것이다. 이때 nn.Linear(?, 10)의 ? 부분에 어떤것을 써야..
-
PyTorch와 Numpy에서의 이미지 데이터 포맷 차이AI\ML\DL/Pytorch 2023. 8. 1. 21:43
일반적으로 이미지 데이터는 너비, 높이, 채널 순서로 표현되는 RGB 포맷을 사용한다.예를 들어, 32x32 크기의 컬러 이미지의 경우 (32,32,3) 으로 표현되며, 각 차원은 각각 (행, 열, 채널) 을 나타낸다. 이미지를 (행,열,채) 형식으로 읽고 처리하는 라이브러리는 다음과 같다.NumpyOpenCVMatplotlib (이미지 처리는 아니지만 데이터 시각화 할 때) 이를 확인해보기 위해 numpy 로 랜덤한 정수를 생성하여 3채널 (RGB) 이미지를 생성하는 코드를 작성해 보았다. 생성한 이미지 데이터의 shape을 확인하면 (행,열,채널) 순서로 출력되는 것을 확인할 수 있다. import numpy as npimport matplotlib.pyplot as plt# 가상의 이미지 데이터 생..