머신러닝 : CIFAR-10 성능향상 [Conv, Linear, Dropout]
코딩/이미지 분류 [PyTorch] 2020. 10. 7. 14:40

파이토치로 지난번에 만든 사진 분류모델의 성능 향상을 해보려고 한다. Epoch 늘려보기 우선 가장 쉽게 생각한 방법은 Epoch, 즉 사이클 횟수를 높히는 방법이다. 반복횟수를 20번으로 높혀서 실행하고 정확도를 확인해보았다. 구글 Colab에서 CUDA환경을 사용하였기 때문에, Batch-size를 16으로 늘리고 진행하였다. import torch.optim as optim criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9) for epoch in range(20): running_loss = 0.0 for i, data in enumerate(trainloader, 0): i..

머신러닝 : CNN (합성곱신경망) [Convolution, Pooling]
코딩/이미지 분류 [PyTorch] 2020. 10. 6. 02:04

CNN 즉 합성곱신경망은 고수준의 뉴런이 저수준의 뉴런의 출력에 기반한다는 아이디어에서 나온 개념이다. 기존의 완전연결 층에서는 3차원 데이터를 입력 층에 넣어주기위해 1차원 데이터로 변환했다. 이렇게 1차원으로 변환한 데이터는 공간적인 정보가 사라진 상태라 이미지같은 경우 구조가 깨져버려 정보가 많이 사라져버린다. 따라서 구조 정보를 보존하면서 학습하는 방법으로 등장한게 합성곱 신경망 (CNN)이다. LeCun에 의해 처음 개념이 개발되었고, LeNet이 그 첫번째 구조이다 CNN은 층을 크게 합성곱층(Convolutional Layer)과 풀링층(Pooling Layer)으로 반복하여 구성한다 Convolutional Layers(합성곱층) 합성곱은 3차원 데이터를 필터를 통해 여러 특성을 띄는 채널..