반응형

안녕하세요

 

이번 포스팅은 현재 연습중인 Tensorflow를 통해 pb 파일 생성하기 위한 과정으로

 

이미지셋을 통한 라이브러리 설치 및 학습 그리고 학습된 라이브러리에 대한 평가 방법에 대한 포스팅을

 

해볼께요

 

첫번째로 Anaconda와 텐서플로우 설치를 먼저해야 합니다

 

설치 방법에 대해서는 아래 링크를 통해 확인하시기 바랍니다

 

https://codingman.tistory.com/77 

 

[Deep Learning] Anaconda3 + Tensorflow 사용하기

안녕하세요 코딩연습생 입니다ㅠ 개발 블로그를 운영하면서 이것저것 많이 정보를 올리고 있는데 해보고자 하는 연습물이 잘 안풀려서 요즘 1일 1포스팅이 잘 안 이루어지고 있습니다ㅠ 대충 포스팅 글 올리기에..

codingman.tistory.com

참고로 이번 포스팅에 사용된 버전 정보는 다음과 같습니다

 

=============================================================

1) Anaconda3

2) Python 3.7

3) Tensorflow 1.14

4) CUDA 8.0

==============================================================

 

위의 리스트 순서로 설치를 진행하시면 됩니다

 

CUDA 설치 방법은 아래 링크 포스팅을 참조해주세요

https://codingman.tistory.com/81

 

[Nvidia CUDA] 윈도우에서 CUDA 설치 하기

안녕하세요 요즘 딥러닝 구현을 위해 열심히 공부 중인 코딩연습생입니다ㅎㅎ Anaconda3 설치 부터 하나씩 배워가며 포스팅을 진행하고 있는데요 과정중에 하나인 CUDA에 대해 포스팅 해보도록 하겠습니다 제일 먼..

codingman.tistory.com

 

이렇게 환경 설정을 모두 마치셨으면

 

다음 진행해야할 것은 Slim 이미지셋 설치와 TFRecord 생성 방법입니다

 

위의 내용은 아래 포스팅을 참조해서 따라해 주세요

 

https://codingman.tistory.com/78

 

[Deep Learning] Tensorflow slim 라이브러리 설치

안녕하세요 이번 시간 포스팅 내용은 텐소플로우에 모델을 추가하고 학습할수 있게 하기 위한 slim 라이브러리 설치 방법입니다 해당 포스팅을 검색해서 찾아오셨다면 이미 기본 적인 내용을 알고 오셨으리라 생각..

codingman.tistory.com

 

내용이 상당히 길기 때문에 포스팅을 나누어 올리고 있습니다

 

다소 헷갈릴수 있는데 어쩔수 없이 나눠 포스팅한점을 양해 주시기 바랍니다

 

이제 위의 레코드 파일 생성까지 완료 되셨다면 모든 환경 설정은 끝났습니다

 

이제 Deep Learning중 학습 방법에 대해서 Slim 모델을 통해 설명하도록 하겠습니다

 

저도 공부 중에 찾은 내용입니다만 학습 방법에 대해 여러가지 방법이 있습니다

 

그중에 제가 찾은것은 세가지 방법이 있었는데요

 

그중에 한가지 방법은 Tensorflow의 구버전으로 사용되는것으로 현재 저희 환경과 맞지 않아 구현이 불가능했습니다

 

그래서 저희가 설정한 환경에서 동작이 가능한 방법인 두가지를 설명해 드리겠습니다

 

1) Trainng a model from scratch

    - 저희가 만든 이미지셋을 가지고 신규 모델을 학습 하는 방법

    - Anaconda Prompt를 통해 다음 명령어를 실행

    * 명령어 간략 설명

      python train_image_classifier.py

      --train_dir=\tmp\train_inception_v1_flowers_logs # 모델 저장될 폴더
      --dataset_name=flowers # 이미지 셋 이름
      --dataset_split_name=train # 학습에 사용할 이미지 선택
      --dataset_dir=\tmp\flowers # 이미지 셋 위치
      --batch_size=16 # 기본 32이나 메모리 부족 에러 발생 -> 16 설정
      --model_name=inception_v1 # 사용할 모델 이름

python train_image_classifier.py --train_dir=\tmp\train_inception_v1_flowers_logs --dataset_name=flowers --dataset_split_name=train --dataset_dir=\tmp\flowers --batch_size=16 --model_name=inception_v1

오류가 발생하실수 있습니다 오류가 발생하였을 경우 py 파일을 약간 수정해 줍니다

 

다음 경로에 있는 train_image_classifier.py파일을 Spyder을 통해 열어 줍니다

 

아래와 같이 변경한뒤 저장합니다

 

다시 명령어를 실행 합니다

 

명령어가 실행되면사 step별 학습을 시작하는것을 보실수 있습니다

 

 

학습이 GPU의 성능에 따라 차이가 있을수 있지만 상당한 수분이 소요 됩니다

 

그래서 학습 중간에 중지 하고 싶으시면 Ctrl + C를 누루시면 종료 됩니다

 

학습이 완료되어 지면 다음과 같은 checkpoint 형식의 log가 생성됩니다

 

이어서 두번째 방식 입니다

 

2-1) Fine-tuning a model from an existing checkpoint

    - 마지막 layer만 새롭게 학습하는 과정

    - 완성도가 높은 모델을 사용할 수록 정확도가 올라가기 때문에 ImgaeNet에서 미리 학습된 모델을 다운 받아

      사용합니다

      (http:// http://download.tensorflow.org/models/inception_v1_2016_08_28.tar.gz)

불러오는 중입니다...

   - 압축을 푼뒤 inception_v1.ckpt 파일을  \tmp\my_checkpoints 폴더로 복사하세요.

 

   - 다음 명령어를 1번 방법과 동일하게 실행 시킵니다

python train_image_classifier.py
  --train_dir=\tmp\train_inception_v1_flowers_FineTune_logs
  --dataset_name=flowers
  --dataset_split_name=train
  --dataset_dir=\tmp\flowers
  --model_name=inception_v1
  --checkpoint_path=\tmp\my_checkpoints/inception_v1.ckpt
  --checkpoint_exclude_scopes=InceptionV1/Logits
  --trainable_scopes=InceptionV1/Logits
  --max_number_of_steps=1000
  --batch_size=16
  --learning_rate=0.01
  --learning_rate_decay_type=fixed
  --save_interval_secs=60
  --save_summaries_secs=60
  --log_every_n_steps=100
  --optimizer=rmsprop
  --weight_decay=0.00004

  - 1000번의 step이 완료된후 다음과 같이 checkpoint가 생성된 log가 생성됩니다

2-2) # Fine-tune all the new layers for 500 steps.

    - 전체 layer 학습하는 과정

python train_image_classifier.py


  --train_dir=\tmp\train_inception_v1_flowers_FineTune_logs\all
  --dataset_name=flowers
  --dataset_split_name=train
  --dataset_dir=\tmp\flowers

  --model_name=inception_v1

  --checkpoint_path=\tmp\train_inception_v1_flowers_FineTune_logs
  --max_number_of_steps=500
  --batch_size=16
  --learning_rate=0.0001
  --learning_rate_decay_type=fixed
  --save_interval_secs=60
  --save_summaries_secs=60
  --log_every_n_steps=10
  --optimizer=rmsprop
  --weight_decay=0.00004

 

이렇게 생성된 두가지 방법을 통해 3가지의 딥러닝 모델을 학습 시켜 봤습니다

 

정확도 확인을 위한 평가 방법입니다

 

1) Flowers로부터 새롭게 만든 모델

결과를 보시면 eval/Recall_5[1]의 의미는 5개의 Class 중에 하나라도 맞으면 맞다고 보는 정확도 입니다

[1]의 결과로 보면 100%로 라는 말이네요

실예측정확도의 경우는 eval/Accuracy[0.3675] -> 36% 정도로가 평가가 나오네요

 

2) 이미 잘 만들어진 모델로부터 Flowers로 마지막 layer만 학습해 만든 모델

매칭 유사율 100%

실예측정확도 86%라고 평가가 나오네요

 

3) 2)으로 만들어진 모델에서 전체 layer를 학습해 만든 모델

매칭 유사율은 역시 100%

실예측정확도는 90%로 평가가 됩니다

 

결론은 기존에 잘 학습된 모델을 활용해서 그 위에 분류하고 싶은 추가적인 이미지를 학습하는 것이

 

실예측 정확도를 가장 효과적으로 올릴수 있다는 결론이 나온거 같네요

반응형
반응형

안녕하세요

 

이번 시간 포스팅 내용은 텐소플로우에 모델을 추가하고 학습할수 있게 하기 위한

 

slim 라이브러리 설치 방법입니다

 

해당 포스팅을 검색해서 찾아오셨다면 이미 기본 적인 내용을 알고 오셨으리라 생각합니다

 

그럼 slim 라이브러리 설비 방법에 대해 포스팅해드리겠습니다

 

환경으로는

1)Anaconda3

2)Tensorflow 1.13.1

3)이미지모델라이브러리

 

Anaconda3 + Tensorflow 설치 방법은 저번 포스팅에 올려있으니 확인하시면 될거 같습니다

https://codingman.tistory.com/77?category=741547

 

[Deep Learning] Anaconda3 + Tensorflow 사용하기

안녕하세요 코딩연습생 입니다ㅠ 개발 블로그를 운영하면서 이것저것 많이 정보를 올리고 있는데 해보고자 하는 연습물이 잘 안풀려서 요즘 1일 1포스팅이 잘 안 이루어지고 있습니다ㅠ 대충 포스팅 글 올리기에..

codingman.tistory.com

 

그럼 이미지 모델 라이브러리 다운로드와 적용 방법에 대해 포스팅 하겠습니다

 

1. 깃헙에 가서 모델 라이브러리를 다운로드 받습니다

    (아래 링크를 클릭하면 해당 싸이트로 이동합니다)

 

https://github.com/tensorflow/models

 

tensorflow/models

Models and examples built with TensorFlow. Contribute to tensorflow/models development by creating an account on GitHub.

github.com

 

2. 다운로드 받은 모델 라이브러리 중 해당 위치의 파일을 열어 줍니다

   (Model\models-master\models-master\research\slim\download_and_convert_data.py)

   (저는 Anaconda3에 포함되어 있는 spyder를 이용해서 열었습니다)

 

 

3. download_and_convert_data.py 파일 내용중 210번 줄의 내용을 주석 처리 합니다

 

4. 파이썬의 텐서플로우를 통해 TFRecord 포멧으로 변환 해줍니다

   1) 가상환경을 활성해 해줍니다

   2) 모델 라이브러리가 설치된 경로를 지정해 줍니다

      (DOS를 사용해 보신 분이라면 명령어가 비슷해서 쉽가 하 실수 있을거 같습니다)

   3) TFRecord 생성 명령어를 실행

     

python download_and_convert_data.py --dataset_name=flowers --dataset_dir=/tmp/flowers

 

[오류 처리]

 

1. 실행 시 다음과 같은 오류가 발생할 수 있습니다

   - ModuleNotFoundError: No module named 'contextlib2'

 

그럴경우 다음 명령어를 실행해 줍니다

pip install contextlib2

 

2. 다음 오류가 발생할 수 있습니다

   - ModuleNotFoundError: No module named 'PIL'

 

 

 

다음 명령어를 실행 줍니다

 

pip install pillow

 

3. 해당 오류가 나탈날 경우 입니다

   - AttributeError: module 'tensorflow.python.util.compat' has no attribute 'v1'

 

이 경우 기존 설치된 tensorflow를 삭제하고 다운 그레이드를 해야 합니다

 

다음 명령어를 실행해 줍니다

pip uninstall tensorflow

 

다음 명령어를 실행해 줍니다

pip install tensorflow==1.13.1

 

 

TFRecord 포맷 생성 명령어를 다시 실행해 줍니다

python download_and_convert_data.py --dataset_name=flowers --dataset_dir=/tmp/flowers

 

 

다음과 같은 문구가 뜬다면 설치에 정상 성공 하신겁니다

 

"Finished converting the Flowers dataset!"

 

반응형
반응형

안녕하세요

 

코딩연습생 입니다ㅠ 개발 블로그를 운영하면서 이것저것 많이 정보를 올리고 있는데

 

해보고자 하는 연습물이 잘 안풀려서 요즘 1일 1포스팅이 잘 안 이루어지고 있습니다ㅠ

 

대충 포스팅 글 올리기에 집중하기 보단 좀 더 정확한 정보를 업로드 하고자 늦어지는것입니다

 

이번 포스팅은 Deep Learning을 구현해 볼려고 하는데요

 

Deep Learning란?

- 기계 학습 알고리즘의 집합(?)

   이런식으로 표현을 하는거 같습니다 딥러닝이라는것은 컴퓨터 비전, 머신런닝, 음성인식, 신호처리등

   모든 분야에서 기계 학습을 통한 훈련 기법 이다 라고 저는 생각합니다

 

딥러닝 기법을 사용하고자 할때 제일 많이 듣는 말이 텐서플로우(Tensorflow)인데요

 

그럼 텐서플로우는 또 뭐냐?

 

텐서플로우란?

 - 구글이 2011년에 개발을 시작하여 2015년에 오픈소스로 공개한 기계학습 라이브러리

    2016년 알파고와 함께 관심이 높아진 컨퍼런스임

    Python 언어로 되어 있는 텐서플로우는 다른 프로그래밍 언어들 연계하여 

    다양한 분야에 적용할 수 있음

 

뭐 인터넷에 이정도 포스팅 되어 있네요ㅎ

 

참 어렵습니다ㅎ

 

근데 이것을 왜 제가 하고 있는냐 단순합니다 기존 OpenCv를 통해 이미지 처리법을 공부하고

 

그 처리된 이미지를 통해 판독 시스템을 만들어볼 예정이거든요

 

근데 단순 판독이 아니라 시스템 자체 학습을 통해 신규 사물을 재정의하고 학습하면서

 

시스템에 보이는 이미지를 어떤 이미지라고 인식하는 프로그램을 만들려고 하다보니

 

이 영역까지 오게 되었습니다ㅎㅎ

 

그래서 어쨋든 핵심인 딥러닝을 구현하기 위해서는 텐서플로우가 필요하고 그 텐서플로우를 알려면

 

Python을 알아야한다는게 결론입니다

 

이래서 사설이 엄청 길어졌는데 이번 포스팅에서 윈도우에서 Python과 텐서플로우를 셋팅하는 방법을

 

포스팅 해볼려고 합니다

 

일단 윈도우에서 Python을 사용하기 위해 Anaconda라는 프로그램을 설치 할것입니다

 

1.Anaconda3 설치하기

  - 링크 주소를 통해 사이트에서 다운로드 받기

https://www.anaconda.com/distribution/

 

Anaconda Python/R Distribution - Free Download

Anaconda Distribution is the world's most popular Python data science platform. Download the free version to access over 1500 data science packages and manage libraries and dependencies with Conda.

www.anaconda.com

 

- 링크를 접속하신뒤에 Download 버튼 눌러 줍니다

 

- 적용하실려는 PC의 OS타입 그리고 OS비트에 맞는 링크를 눌러 다운로드를 실행합니다

- 다운 받은 실행 파일을 실행하여 설치를 진행해 주세요

 

 

- 경로 지정이 나올때까지 다음(Next) 버튼을 눌러주세요

 

- 경로 지정 부분이 나타나면 Default로 설치하셔도 되긴 합니다만

  기본 경로에 있는 ProgramData 폴더는 숨김 폴더라 삭제할때 조금 귀찮아 질 수 있어서

  저는 D:\에 Anaconda3라는 폴더로 지정하여 설치 하였습니다

   

 

 

- 이렇게 설치가 완료 되어지면 시작 메뉴에서 다음 메뉴를 "관리자 권한으로 실행해 주세요"

 

- 그러면 콘솔창이 하나 뜹니다 거기에 다음과 같으 명령어를 쳐주세요

 

conda upgrade pip

 

- 그 다음 pip 패키지 업데이트를 실행 합니다

pip install upgrade

 

※다음과 같은 오류가 날수가 있는데 저의 경우 패스 했습니다

 

- 다음은 텐서플로우 설치를 위한 가상환경을 만들어 줍니다

conda create -n 임의이름지정 python=3.6

 

- Proceed([y]/n)?이라고 물어보면 y를 눌러주고 엔터를 칩니다

 

 

- 생성된 가상환경을 활성화 시켜 줍니다

 

activate 지정된 임의 가상환경 이름

- 이렇게 하면 다음과 같이 (base)가 가상환경 이름으로 변경이 됩니다

 

- 그다음 텐서플로우를 설치 합니다

pip install tensorflow

 

 

- 설치가 모두 끝나고 나면 python을 실행 시켜줍니다

python

 

- 파이썬이 제대로 실행되는지 명령어를 칩니다

import tensorflow as tf
hello = tf.constant("hello, TensorFlow!")
sess = tf.Session()
print(sess.run(hello))

 

- 그런데 다음과 같은 오류가 뜨실수 있습니다

  (DLL load failed: 지정된 모듈을 찾을 수 없습니다)

 

- AVX(Advanced Vector Extensions)를 지원하지 않는 CPU를 사용할 경우 다음과 같은 오류가 납니다

 

- 이경우 텐서플로우를 다운그래이드 해줘야 합니다

 

pip install tensorflow==1.5

 

- 이렇게 다운그래이드를 실행한 다음에 다시 파이썬을 실행한뒤 명령어를 실행합니다

 

 

- 이렇게 출력이 되면 정상적으로 텐서플로우를 파이썬에서 호출해서 사용된것입니다

 

반응형

+ Recent posts