본문 바로가기
머신러닝딥러닝/딥러닝

h5파일 TFlite 변환하기, h5파일 keras 파일로 변환하기

by orangecode 2023. 5. 16.
728x90
H5 파일 vs TFLite 파일 

H5 파일과 TFLite 파일 모두 머신러닝에서 모델을 저장하는 목적으로 사용되는 파일 형식이지만 다른 용도로 사용된다.

 

H5 파일

h5파일은 Keras 모델 저장을 목적으로 사용되는 파일 형식이다.

h5파일은 모델의 아키텍처, 가중치 weight 값과 loss 값이 저장되어있고, 해당 값들을 사용하는데 필요한 메타데이터가 저장되어 있다.

 

TFLite 파일

TFLite 파일은 tensorflow lite 모델을 저장하는데 사용되는 파일 형식으로 모바일 기기와 임베디드 장치에 배포하는데 최적화되어 있는 모델이다. 

 

쉽게 말해서 Tensorflow 모델을 압축하고 최적화된 버전으로 만들어서, 파일 크기가 더 작고 추론시간은 자른 최적화된 모델을 만든다. 가볍고 처리능력이 빠른 특성으로 메모리와 배터리 수명이 제한되어 있는 모바일과 임베디드 장치에서 실행되도록 설계되었다.

 

 

H5와 TFLite 파일의 차이점

두 가지 파일형식 모두  머신러닝에서 모델을 저장하는 목적으로 사용되는 공통점을 가지고 있다.

 

H5와 TFLite 파일의 차이점은 목적하고 있는 용도가 다르다는 점이다.

h5 파일은 고성능 컴퓨터 플랫폼에서 모델을 학습시키고 평가하는데 주로 이용되지만, TFLite파일은 리소스와 메모리가 제한되어 있는 모바일이나 임베디드 장치에 모델을 베포하는데 사용된다.

tensorflow 모델을 keras모델로 변환하기

tensorflow 모델을 keras 모델로 변환하고 h5 파일로 변환하는 방법은 다음과 같다

import tensorflow as tf

# 모델 로드하기
model = tf.keras.models.load_model('path/to/tensorflow/model')

# Keras 모델로 변환하기
keras_model = tf.keras.models.Sequential(model.layers)

# Keras 모델 저장하기
keras_model.save('path/to/keras/model.h5')

 

1. 먼저 Keras 모델 객체를 반환하는 tf.keras.models.load_model() 함수를 이용해서 Tensorflow 모델을 load 한다.

 

2. Keras의 'Sequential'  클래스를 이용하여 새로운 Keras 모델을 생성한다.

 

'Sequential'모델은 레이어의 선형스택으로, Tensorflow 모델의 레이어는 레이어 목록을 반환하는 model.layers를 이용하여 Sequential 모델로 전달된다.

 

 

3. Keras 모델은 save()함수를 이용해서 keras의 .h5 형식으로 저장한다.

 

 

h5 파일 Tflite 파일로 변경하기
import tensorflow as tf

# Load the Keras model from the H5 file
keras_model = tf.keras.models.load_model('path/to/keras/model.h5')

# Convert the Keras model to a TFLite model
converter = tf.lite.TFLiteConverter.from_keras_model(keras_model)
tflite_model = converter.convert()

# Save the TFLite model to a file
with open('path/to/tflite/model.tflite', 'wb') as f:
    f.write(tflite_model)

 

1. tf.keras.models.load_model()을 사용해서 h5 파일을 이용해 keras 모델을 로드한다.

 

2. tf.lite.TFLiteConverter.from_keras_model() 함수로 keras 모델을 TFLite모델로 변환한다.

 

3. 변환된 TFLite 파일을 로컬에 저장한다.

 

 

반응형

댓글