반응형

합성곱 신경망 8

[Pytorch] 5. 파이토치로 합성곱 신경망(CNN) 구축하기

이전 포스팅에서 torch.nn 모듈을 사용해서 기본적인 신경망을 구축해보았습니다. 이번에는 파이토치를 사용하여 합성곱 신경망(CNN)을 구축하는 방법을 알아보겠습니다. CNN 으로 넘어가기 이제 3개의 합성곱 계층(convolutional layers)을 지닌 신경망을 구축해보겠습니다. 이전 섹션에서 어떤 함수도 모델의 형식에 대해 가정하지 않기 때문에, 수정 없이 CNN을 훈련하기 위해 이전 코드를 사용할 수 있습니다. 합성곱 계층으로서 Pytorch의 사전 정의된 Conv2d 클래스를 사용할 것입니다. 각 합성곱 뒤에 ReLU가 있습니다. 마지막에는 평균 풀링(average pooling)을 수행합니다. (view 는 numpy의 reshape 의 pytorch 버전입니다.) class Mnist_..

카테고리 없음 2020.12.09

[PyTorch] 파이토치로 신경망 학습하기 - CNN, GPU, CIFAR10, 신경망 평가하기

분류기 학습하기 - Training a classifier 지금까지 신경망을 어떻게 정의하고, 손실을 계산하고, 신경망의 가중치를 갱신하는 것을 살펴보았습니다. 아마 이렇게 생각할 수 있습니다. 데이터는 어떻게 해야하지? - What about Data? 일반적으로 이미지, 문자, 음성, 비티오 데이터를 다룰 때, numpy 배열로 data를 불러오는 표준 python 패키지를 사용할 수 있습니다. 그리고나서 배열을 torch.*Tensor 로 전환할 수 있습니다. 이미지는 Pillow, OpenCV와 같은 패키지가 유용합니다. 오디오는 scipy, librosa와 같은 패키지가 유용합니다. 문자는 그냥 Python 이나 Cython을 사용해도 좋고 NLTK와 SpaCy가 유용합니다. 특히 영상 분야에서..

[딥러닝] 합성곱 신경망(CNN) - CNN 구현하기

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱 신경망(CNN) - 풀링 계층 구현하기 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리�� deep-learning-study.tistory.com 이전 포스팅에서 풀링 계층을 구현해보았습니다. 합성곱 신경망을 구현하는 방법을 공부해보겠습니다. CNN 구현하기 합성곱 계층과 풀링 계층을 구현했으니, 이 계층들을 조합하여 손글씨 숫자를 인식하는 CNN을 조립해보겠습니다. 여기에서는 다음과 같은 CNN을 구현합니다. "Convolution - ReLU - Pooling - Affine - ReLU - Affine - Softmax' 우선 Simp..

[딥러닝] 합성곱 신경망(CNN) - 풀링 계층 구현하기

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱 신경망(CNN) - 합성곱 계층 구현하기 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리�� deep-learning-study.tistory.com 이전에는 합성곱 계층을 구현하는 방법에 대해 알아보았습니다. 이번에는 풀링 계층을 구현하는 방법에 대해 알아보겠습니다. 풀링 계층 구현하기 풀링 계층 구현도 합성곱 계층과 마찬가지로 im2col을 사용해 입력 데이터를 전개합니다. 단, 풀링의 경우엔 채널 쪽이 독립적이라는 점이 합성곱 계층 때와 다릅니다. 구체적으로는 아래 그림과 같이 풀링 적용 영역을 채널마다 독립적으로 계산합니다. 일단 이렇..

[딥러닝] 합성곱 신경망(CNN) - 배치 처리와 풀링 계층

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱 신경망(CNN) - 3차원 데이터의 합성곱 연산 - 가중치와 편향 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리�� deep-learning-study.tistory.com 이전 포스팅에서는 3차원 데이터의 합성곱 연산에 대해서 공부했습니다. 이번에는 합성곱 신경망에서 배치 처리와 풀링 계층에 대해서 알아보겠습니다. 1. 배치 처리 신경망 처리에서는 입력 데이터를 한 덩어리로 묶어 배치로 처리했습니다. 완전연결 신경망을 구현하면서는 이 방식을 지원하여 처리 효율을 높이고, 미니배치 방식의 학습도 지원하도록 했습니다. 합성곱 연산도 마찬가지로..

[딥러닝] 합성곱 신경망(CNN) - 3차원 데이터의 합성곱 연산 - 가중치와 편향

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱 신경망(CNN) - 합성곱 연산에서의 패딩과 스트라이드 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 합성곱 신경망 - C deep-learning-study.tistory.com 이전 포스팅에서 합성곱 연산에서의 패딩과 스트라이드 기법을 공부했습니다. 이번에는 3차원 데이터의 합성곱 연산에 대해 공부하겠습니다. 3차원 데이터의 합성곱 연산 지금까지 2차원 형상을 다루는 합성곱 연산을 살펴봤습니다. 그러나 이미지만 해도 세로, 가로, 채널의 3차원 데이터입니다. 이번에는 채널까지 고려한 3차원 데이터를 다루는 합성곱 연산을 살펴보겠습니다. 3차원 데이터의 합..

[딥러닝] 합성곱 신경망(CNN) - 합성곱 연산에서의 패딩과 스트라이드

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱 신경망(CNN) - 합성곱 연산의 작동 방법 - 필터 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 합성곱 신경망 - Convolutional neural network, CNN CNN은 � deep-learning-study.tistory.com 이전의 포스팅에서 합성곱 연산의 작동 방법과 필터의 개념에 대해 공부했습니다. 이번에는 합성곱 연산에서 자주 이용하는 기법인 패딩과 스트라이드에 대해 공부하겠습니다. 1. 패딩 - Padding 합성곱 연산을 수행하기 전에 입력 데이터 주변을 특정 값(예컨대 0)으로 채우기도 합니다. 이를 패딩이라 하며, 합성곱 연산에서 자주 이용하는 기법입니..

[딥러닝] 합성곱 신경망(CNN) - CNN의 전체 구조

사이토고키의 을 공부하고 정리해보았습니다. 합성곱 신경망 - Convolutional neural network, CNN CNN은 이미지 인식과 음성 인식 등 다양한 곳에서 사용되는데, 특히 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 다 CNN을 기초로 합니다. CNN의 메커니즘을 공부하고 이를 파이썬으로 구현해보겠습니다. 전체 구조 CNN의 네트워크 구조를 살펴보며 전체 틀을 이해하도록 하겠습니다. CNN도 지금까지 본 신경망과 같이 레고 블록처럼 계층을 조합하여 만들 수 있습니다. 다만, 합성곱 계층(convolutional layer)과 풀링 계층(polling layer)이 새롭게 등장합니다. 합성곱 계층과 풀링 계층의 상세 내용은 나중에 공부하기로 하고, 여기서는 이 계층들을 어떻게 조합..

반응형