brunch

You can make anything
by writing

C.S.Lewis

by Changhwa Oh Nov 10. 2018

1-1화 : 데이터만 있으면 해결책은 많다

처음 딥러닝 도입을 결정하고 가장 어려웠던 점은 딥러닝 자체에 대한 이해였다.

신경망은 뭘까 경사하강법은 뭐지 loss function 은 뭘까

그리고 대게 설명은 무척이나 어렵게 되어 있었다.

이쯤 1차 포기 시점이었는데 이해하고 모든 걸 하기에는 시간이 부족했고 쉽게 해결될 문제도 아니었다.


여기서 발상의 전환을 하게 된다.

개와 고양이 이런 사진 분류는 이미 잘해주는 시스템(논문)이 있으니 난 그걸 쓰기만 해도 충분하지 않을까?

그렇게 tensorflow inception을 만나게 되었다.


tensorflow는 쉽게 이야기하면 머신 러닝 시스템이다.

학습 코드를 작성하여 tensorflow를 이용해 실행하고 로그를 이용해 결과를 보거나 할 수 있다.


개와 고양이 분류 예제를 찾아보니 코드를 전혀 수정하지 않아도 폴더 이름과 라벨만 수정해주면 바로 실행해볼 수 있었다. 

설명을 보니 일명 CNN ( Convolution Neural Network )에서 가장 인기 있는 모델 중에 하나인 inception v3을 이용한 코드였다. (물론 CNN, inception 은 당시에 전혀 이해를 못했다.)


가볍게 이미지 분류를 체험해보자

이미 텐서플로우는 이런 사람들을 위해 튜토리얼을 제공하고 있다.

코드 한 줄 작성 없이 바로 이미지 분류를 해보자.


우선 tensorflow/models 저장소를 받는다. 

(앞으로도 우리는 이 저장소에서 많은 일을 하게 된다.)

이미 튜토리얼 파일로 잘 되어 있는 /tutorials/image/imagenet 로 이동한다.

그리고 필요한 tensorflow, numpy 라이브러리를 설치한다.

(여기서 잠깐 tensorflow는 보통 버전 벌로 다르기 때문에 anaconda 같은 것을 이용한다)


바로 고양이 사진 한 장 분류해보자

각 고양이 종류들이 나온다.

고양이만 분류가 될까? 이번엔 강아지 사진을 해봤다.

각 강아지 종류들이 나온다.

이렇게 코드 한 줄을 작성하지 않아도 기본적인 분류는 가능하다.


앞으로는 이런 코드를 이용해 내가 원하는 사진들을 원하는 카테고리로 분류하는 작업을 할 것이다.  

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari