티스토리 뷰

Tensorflow는 써봐야 겠다 싶어 뒤적 뒤적 거리는데 좋은 기회에 Google Codelabs의 Github에 Tensorflow for Poets 가 있어서 시도해보았고, 보고서까지 써서 과제로 제출했기 때문에 그 보고서를 그대로 옮겨보려고 한다. 다른 소스를 찾기가 귀찮거나 힘들었다면 이 보고서를 그대로 따라하면 잘 나오지 않을까 싶다.

Sorting FlowersMachine Learning in Tensorflow

What is Tensorflow?

Tensorflow machine learning 모델을 만들고 배포를 쉽게 하게끔 도와주는 플랫폼이다. Tensorflow machine learning 쉽게 시작할 있도록 API 라이브러리를 제공해줄 뿐만 아니라 제품화까지 이어질 있도록 도와주기 때문에 많은 기업들에서 활용하고 있다.

Downloading Jupyter notebook & Tensorflow

우선 Anaconda Navigator install 해준다. Anaconda 활용하여 데이터 분석을 때의 장점은 패키지의 버전관리도 되고, 가상 환경도 제공해준다는 점이다. 가령, Tensorflow 계속 업데이트가 되고 있기 때문에 프로젝트 별로 필요로하는 version 상이하다. Tensorflow 개별적으로 install 하게 되면 필요한 version 하나씩 받아야 하지만 Anaconda 활용하면 필요한 버전에 맞게 사용할 있게 해준다.

Mac terminal 창에 pip install tensorflow 라고 입력하면 Tensorflow install 필요한 package requirements 받아온다. pip package installer for Python으로 python package index 다른 index들에 있는 패키지들을 다운받고 관리할 있다. Mac 경우 python 2.7 default 존재한다. Python2.7 활용하여 작업을 예정이라면 pip 명령어를 계속써도 되지만, Python3 이상의 version 사용할 경우 패키지 관리는 pip3 이루어진다. 이번 과제의 경우 따로 path 설정을 하지 않는다면 Jupyter Notebook에서 Python 2.7 사용하게 되므로 pip 명령어를 그대로 쓰도록한다.

Tensorflow 설치가 되었는지 확인하기 위해 Install 완료되면 terminal 창에 pip list -format=columns 입력하면 install package package version 리스트 형태로 뜨게 된다. 그러나 맞는 경로에 설치되었는지 확인을 해보기 위해 Anaconda Navigator Jupyter Notebook launch import tensorflow as tf 실행해본다. 옳게 설치되었다면 다음 실행을 기대하고, 설치가 제대로 되지 않았다면 tensorflow라는 module 없다는 error 뜨니 위에서 언급한 pip, pip3 활용하면 고칠 있다.

Getting Ready to Train Data

Google codelabs에서 제공하는 tensorflow-for-poets-2 꽃의 사진을 학습시켜 새로운 꽃의 이미지 data 들어오면 daisy, sunflower, tulip, dandelion, rose 어떤 꽃에 해당할 확률이 얼마인지 알려주는 모델이다. googlecodelabs github 계정으로 가서 tensorflow-for-poets-2 repository 들어가면 전체를 clone하거나 download 받을 있다. Zip파일로 컴퓨터에 받아 학습시킬 이미지 데이터를 다운 받도록 한다. 

  > cd Tensorflow-for-poets-2

  > curl -O http://download.tensorflow.org/example_images/flower_photos.tgz

  > tar xzf flower_photos.tgz -C tf_files

주의할 것은 명령어인 cd Tensorflow-for-poets-2 그냥 입력하면 실행이 되지 않는다. 해당 directory 있어야 change directory 되는데 그런 이름을 가진 폴더가 없기 때문이다. 그러므로 직전에 받은 zip파일을 풀고 폴더 명을 Tensorflow-for-poets-2 바꾸거나 cd 명령어를 기존 폴더명을 쓰면 된다. 또한, curl 통해 데이터를 받아왔으면 다음 tar 명령으로 파일을 풀어도 되고, 직접 폴더에서 decompressor 파일을 풀어도 된다. 결과적으로 218M 해당하는 이미지 데이터를 받게 된다.

Train Flower Data

다운 받아 flower image data training 시키기 위해 다음과  같은 코드를 사용하게 된다. 이 때  scripts.retrain에서 scripts .py파일들이 모여있는 폴더로서   하나의 파일이 retrain.py이고 이후에 나오는 코드는 retrain.py 옵션에 해당한다.

> python -m scripts.retrain —bottleneck_dir=tf_files/bottlenecks -—how_many_training_steps=1000 --model_dir=tf_files/models/ --summaries_dir=tf_files/training_summaries/mobilenet_0.50_224 --output_graph=tf_files/retrained_graph.pb --output_labels=tf_files/retrained_labels.txt --architecture=mobilenet_0.50_224 -—image_dir=tf_files/flower_photos

각 옵션들이 무엇을 나타내는지 알아보면,

—bottleneck_dir=tf_files/bottlenecks : 학습할 사진을 인셉션을 위한 용도로 변환해서 저장할 폴더위치

—how_many_training_steps=7000 : 반복 학습할 횟수

—model_dir=tf_files/models/ : inception 모델을 다운받을 위치

—summaries_dir=tf_files/training_summaries/mobilenet_0.50_224 : tensorboard 사용될 log 파일 위치

—output_graph=tf_files/retrained_graph.pb : 추론에 사용할 학습된 파일 위치

—output_lables=tf_files/retrained_labels.txt : 추론에 사용할 레이블 파일 위치

—architecture=mobilenet_0.50_224

—image_dir=tf_files/flower_photos : 학습할 원본 이미지 위치

뜻한다. 코드를 실행을 완료하고 나면 terminal 창에는 최종 Final test accuracy 89.0%임을 알리면서 끝이 나고, tf_files에는 3개의 새로운 폴더와(flower_photos 위에서 tar 압축 생김), retrained_graph.pb, retrained_labels.txt라는 2개의 새로운 파일이 생겼음을 확인할 있다. 

총 7000번의 steps.... 오늘도 맥북에서 불이 날까 조마조마....
다음과 같이 폴더들이모두 생겼는지 확인해야 한다. 가끔 에러가 나서 .txt와 .pb가 만들어지지 않을 때가 있다.

Test Model

Test 하기 위해  새로운  사진을 1.jpg 저장해서 위의 사진처럼 tf_files 넣고 python -m scripts.label_image --graph=tf_files/retrained_graph.pb --image=tf_files/1.jpg 코드를 실행하면 아래와 같은 화면이 나온다. 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함