반응형

딥러닝 41

[PyTorch] 2. 예제로 배우는 파이토치 - 자동미분(Autograd)

공부 목적으로 PyTorch 튜토리얼 홈페이지를 변역해보았습니다. Learning PyTorch with Examples — PyTorch Tutorials 1.7.0 documentation Learning PyTorch with Examples Author: Justin Johnson This tutorial introduces the fundamental concepts of PyTorch through self-contained examples. At its core, PyTorch provides two main features: An n-dimensional Tensor, similar to numpy but can run on GP pytorch.org 예제로 배우는 파이토치 - Learni..

[OpenCV 딥러닝] OpenCV에서 제공하는 DNN 모듈로 GoogLeNet 모델을 실행하여 영상 인식하기 - cv2.dnn.readNet

GoogLeNet 영상 인식 저번 포스팅에서는 CNN 모델을 OpenCV DNN 모듈로 실행하는 것을 해보았습니다. 이번에는 OpenCV DNN 모듈을 이용해서 GoogLeNet 모델을 실행하는 것을 해보겠습니다. OpenCV에서는 GoogLeNet 모델을 학습을 시키는 것이 아니라 미리 학습해둔 파일을 받아와서 추론을 진행할 수 있습니다. 학습이 어떻게 진행되었는지를 알아야 DNN 모듈에 적절한 입력값을 설정할 수 있습니다. GoogLeNet의 입력 : 224x224, BGR 컬러 영상, 평균 값 = (104,117,123) GoogLeNet의 출력 : 1x1000 행렬, 1000개 클래스에 대한 확률값 미리 학습된 GoogLeNet 학습 모델 및 구성 파일 다운로드 Model Zoo에서 미리 학습되어..

[OpenCV 딥러닝] 미리 학습된 파일을 OpenCV DNN 모듈로 딥러닝 실행하기 - cv2.dnn.readNet

OpenCV DNN(Deep Neural Network) 모듈 미리 학습된 딥러닝 파일을 OpenCV DNN 모듈로 실행할 수 있습니다. 순전파(foward), 추론(inference)만 가능하며 학습은 지원하지 않습니다. 1. 네트워크 불러오기 - cv2.dnn.readNet OpenCV로 딥러닝을 실행하기 위해서는 우선 cv2.dnn_Net 클래스 객체를 생성해야 합니다. 객체 생성에는 훈련된 가중치와 네트워크 구성을 저장하고 있는 파일이 필요합니다. cv2.dnn.readNet(model, config=None, framework=None) -> retval • model: 훈련된 가중치를 저장하고 있는 이진 파일 이름 • config: 네트워크 구성을 저장하고 있는 텍스트 파일 이름, config..

[딥러닝] 세 가지 유명 신경망 - VGG, GoogLeNet, ResNet

사이토고키의 을 공부하고 정리해보았습니다. 1. VGG VGG는 합성곱 계층과 풀링 계층으로 구성되는 기본적인 CNN입니다. 다만, 아래 그림과 같이 비중 있는 층(합성곱 계층, 완전연결 계층)을 모두 16층(혹은 19층)으로 심화한 게 특징입니다. (층의 깊이에 따라서 'VGG 16'과 'VGG19'로 구분합니다.) VGG에서 주목할 점은 3x3의 작은 필터를 사용한 합성곱 계층을 연속으로 거칩니다. 그림에서 보듯 합성곱 계층을 2~4회 연속으로 풀링 계층을 두어 크기를 절반으로 줄이는 처리를 반복합니다. 그리고 마지막에는 완전연결 계층을 통과시켜 결과를 출력합니다. 2. GoogLeNet GoogLeNet의 구성은 다음과 같습니다. 그림의 사각형이 합성곱 계층과 풀링 계층 등의 계층을 나타냅니다. 그..

[딥러닝] 신경망의 층을 깊게 하는 것의 중요성

사이토고키의 을 공부하고 정리해보았습니다. 층을 깊게 하는 것의 중요성 층을 깊게 하는 것의 중요성은 ILSVRC로 대표되는 대규모 이미지 인식 대회의 결과에서 파악할 수 있습니다. 이 대회에서 최근 상위를 차지한 기법 대부분은 딥러닝 기반이며, 그 경향은 신경망을 더 깊게 만드는 방향으로 가고 있습니다. 층의 깊이에 비례해 정확도가 좋아지는 것입니다. 층을 깊게 할 때의 이점은 다음과 같습니다. 1. 신경망의 매개변수 수가 줄어듭니다. 층을 깊게 한 신경망은 깊지 않은 경우보다 적은 매개변수로 같은(혹은 그 이상) 수준의 표현력을 달성할 수 있습니다. 합성곱 연산에서의 필터 크기에 주목해 생각해보면 쉽게 이해할 수 있습니다. 예를 보겠습니다. 아래 그림은 5X5 필터로 구성된 합성곱 계층입니다. 여기에..

[딥러닝] CNN에서 정확도를 높이는 방법 - 데이터 확장(data augmentation)

사이토고키의 을 공부하고 정리해보았습니다. 데이터 확장 - data augmentation 데이터 확장은 입력 이미지(훈련 이미지)를 알고리즘을 동원해 '인위적'으로 확장합니다. 아래 그림과 같이 입력 이미지를 회전하거나 세로로 이동하는 등 미세한 변화를 주어 이미지 개수를 늘리는 것입니다. 이는 데이터가 몇 개 없을 때 특히 효과적인 수단입니다. 데이터 확장은 다양한 방법으로 이미지를 확장할 수 있습니다. 예를 들어 이미지 일부를 잘라내는 crop이나 좌우를 뒤집는 flip 등이 있습니다. 일반적인 이미지에는 밝기 등의 외형 변화나 확대, 축소 등의 스케일 변화도 효과적입니다. 데이터 확장을 동원해 훈련 이미지의 개수를 늘릴 수 있다면 딥러닝의 인식 수준을 개선할 수 있습니다. 데이터 확장을 위한 파이..

[딥러닝] 합성곱 신경망(CNN) - CNN 시각화 하기

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱 신경망(CNN) - CNN 구현하기 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리�� deep-learning-study.tistory.com 이전 포스팅에서 CNN을 구현해보았습니다. 이번에는 합성곱 계층을 시각화 해보겠습니다. CNN 시각화하기 CNN을 구성하는 합성곱 계층은 입력으로 받은 이미지 데이터에서 무엇을 보고 있는지 알아보도록 하겠습니다. 1. 1번째 층의 가중치 시각화하기 이전에 MNIST 데이터셋으로 간단한 CNN 학습을 해보았는데, 그때 1번째 층의 합성곱 계층의 가중치는 그 형상이 (30, 1, 5, 5)였습니다.(필터..

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

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

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

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱신경망(CNN) - im2col로 데이터 전개하기 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리�� deep-learning-study.tistory.com 이전 포스팅에서 합성곱 연산을 할 때 im2col로 데이터를 전개하는 방법에 대해 알아보았습니다. 이번에는 im2col을 적용한 합성곱 계층을 구현해보겠습니다. 합성곱 계층 구현하기 이 책에서는 im2col 함수를 미리 만들어 제공합니다. im2col 함수는 '필터 크기', '스트라이드'. '패딩'을 고려하여 입력 데이터를 2차원 배열로 전개합니다. im2col을 실제로 적용해보겠습니다...

[딥러닝] 합성곱신경망(CNN) - im2col로 데이터 전개하기

사이토고키의 을 공부하고 정리해보았습니다. [딥러닝] 합성곱 신경망(CNN) - 배치 처리와 풀링 계층 사이토고키의 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리해보았습니다. 을 공부하고 정리�� deep-learning-study.tistory.com 저번 포스팅에서 합성곱 신경망에서 배치 처리와 풀링 계층에 대해서 알아보았습니다. 이번에는 합성곱/풀링 계층을 구현하는 것에 대해 공부하겠습니다. im2col로 데이터 전개하기 합성곱 연산을 곧이곧대로 구현하려면 for문을 겹겹이 써야합니다. 넘파이에 for 문을 사용하면 성능이 떨어진다는 단점이 있습니다. (넘파이에서는 원소에 접근할 때 for문을 사용하지 않는 것이 바람직 합니다) for ..

반응형