[Machine Learning] .tflite 파일 만들기, TensorFlow tutorial 따라하기

반응형

https://vuzwa.tistory.com/entry/Machine-LearningTensorFlow-TensorFlow-Lite-%ED%85%90%EC%84%9C%ED%94%8C%EB%A1%9C%EC%9A%B0%EB%9E%80-%ED%85%90%EC%84%9C%ED%94%8C%EB%A1%9C%EC%9A%B0-%EB%9D%BC%EC%9D%B4%ED%8A%B8%EB%9E%80?category=1014704 

 

[Machine Learning]TensorFlow? TensorFlow Lite? 텐서플로우란? 텐서플로우 라이트란?

카테고리만 만들어두고 공부를 많이 못했다..(반성중) 이번에 신청한 과제가 선정돼서 이제 진짜 개발을 해야 한다. 이번 과제의 핵심은 머신러닝과 딥러닝이기 때문에!! 그럼 우선 TensorFlow(줄여

vuzwa.tistory.com

 

이전 포스팅(한참 지났다.) 이후 개인적인 사정으로 텐서플로우를 들여다보지 못했다. 그래서 다시 시작해보려고 한다.

 

우선 이번 포스팅은 TensorFlow 에서 제공하는 tutorial 중에서 모바일 및 엣지용 디바이스(MCU or MPU로 구동되는 장치들)에서 사용하는 모델 파일인. tflite 파일을 배포하는 방법을 따라한 것이다. 

 

아래 링크에 들어가면 쉽게(?) 따라할 수 있을 것이다. 

https://www.tensorflow.org/lite/models/modify/model_maker/image_classification?hl=ko 

 

Image classification with TensorFlow Lite Model Maker

Image classification with TensorFlow Lite Model Maker The TensorFlow Lite Model Maker library simplifies the process of adapting and converting a TensorFlow neural-network model to particular input data when deploying this model for on-device ML applicatio

www.tensorflow.org

 

vsc를 열고 tutorial을 실행할 가상환경을 구축! 혹시 모르시는 분이 있다면 아래 포스팅 참고!

https://vuzwa.tistory.com/entry/Python-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD%EC%9D%B4%EB%9E%80-VSC%EC%97%90%EC%84%9C-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0?category=952374 

 

[Python-개발환경] 가상환경이란? VSC에서 가상환경 설정하기

펌웨어 엔지니어인 나에게 소프트웨어란..뭐랄까 좀 더 복잡하고 답답한느낌이든다. 펌웨어 개발은 시스템이 작고 파일수도 작고 설정도 그다지 어렵지 않은데 소프트웨어는 아직 모르는 용어

vuzwa.tistory.com

 

 

import os

import numpy as np

import tensorflow as tf
assert tf.__version__.startswith('2')

from tflite_model_maker import model_spec
from tflite_model_maker import image_classifier
from tflite_model_maker.config import ExportFormat
from tflite_model_maker.config import QuantizationConfig
from tflite_model_maker.image_classifier import DataLoader

import matplotlib.pyplot as plt

우선 필요한 패키지들을 가져오는 작업을 해야한다. 새롭게 가상 환경을 구축했기 때문에 아마 다 새로 설치해야 될 것이다. 오래 걸리지는 않는다. 순서대로 입력해보면

pip install numpy

넘 파이 설치, 다음으로 tensor flow 설치 이건 시간이 조금 걸린다.

pip install tensorflow

다음으로 tflite_model_maker 설치, 이건 처음 보는 거다. 뭐하는 패키지인지는 나중에 찾아봐야겠다.

pip install tflite-model-maker

tensorflow tutorial 페이지에는 pip install -q tflite-model-maker 이렇게 입력하고 나오는데 별 차이는 없다. 마지막으로 matplotlib을 설치

pip install matplotlib

여기까지 설치하고 제공하는 코드를 순서 대록 입력해보자.

 

 

모델 학습, 훈련, 평가에 사용할 이미지 데이터가 있는 링크다. 여기서 데이터를 가져오는데 tutorial에서 제공하는 데이터는 꽃 이미지 데이터다. 

image_path = tf.keras.utils.get_file(
      'flower_photos.tgz',
      'https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz',
      extract=True)
image_path = os.path.join(os.path.dirname(image_path), 'flower_photos')

 

DataLoader 클래스에서 데이터를 가져온다. image_path는 위 코드를 참고, 가져온 데이터를 훈련데이터와 테스트 데이터로 나누는 코드

 

data = DataLoader.from_folder(image_path)
train_data, test_data = data.split(0.9)

 

 

Tensorflow 모델을 지정하고 훈련 데이터를 전달한다. 

model = image_classifier.create(train_data)

 

훈련된 모델을 평가

loss, accuracy = model.evaluate(test_data)

 

평가까지 완료된 모델을 .tflite 파일로 내보냄

model.export(export_dir='.')

 

 

이렇게 정상적으로 실행된다!

 

 

 

model 파일도 정상적으로 생성. 후. 그럼 이제 내가 원하는 데이터로 모델을 학습시키고 .tflite 파일을 만들어서 cubeAI를 통해 MCU에 올리고 동작시키는 과정을 해봐야지.

 

 

 

- 끝 -

반응형