Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Keras에서 HDF5(.h5) 형식으로 모델을 저장하고 불러오는 방법

TensorFlow란 무엇인가?

TensorFlow는 Google이 제공하는 머신러닝 프레임워크로, 오픈소스 기반이며 Python과 함께 사용해 다양한 알고리즘과 딥러닝 애플리케이션을 구현할 수 있습니다. 학술 연구부터 실제 프로덕션 환경까지 폭넓게 활용되고 있습니다.

'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 설치할 수 있습니다.

pip install tensorflow

텐서(Tensor)는 TensorFlow의 기본 데이터 구조입니다. 데이터 흐름 다이어그램(이른바 '데이터 흐름 그래프')에서 노드 사이의 엣지를 연결하는 역할을 하며, 본질적으로 다차원 배열 또는 리스트라고 할 수 있습니다.

Keras란?

Keras는 ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System) 프로젝트의 연구 과정에서 탄생한 딥러닝 API로, Python으로 작성되었습니다. 머신러닝 문제를 효율적으로 해결할 수 있도록 돕는 생산성 높은 고수준(high-level) API입니다.

Keras는 TensorFlow 프레임워크 위에서 동작하며, 빠른 실험과 반복을 지원하도록 설계되었습니다. 머신러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 핵심 추상화 계층과 빌딩 블록을 제공합니다. 또한 확장성이 뛰어나고 크로스 플랫폼을 지원하기 때문에 TPU나 GPU 클러스터에서 실행할 수 있으며, 학습된 모델을 웹 브라우저나 모바일 기기에서 동작하도록 내보내는 것도 가능합니다.

Keras는 TensorFlow 패키지에 이미 포함되어 있으므로, 아래 두 줄의 코드만으로 바로 사용할 수 있습니다.

import tensorflow
from tensorflow import keras

이 글의 코드는 Google Colaboratory에서 실행했습니다. Google Colab은 별도의 환경 설정 없이 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, GPU를 무료로 사용할 수 있다는 큰 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어진 서비스입니다.

예제 코드

print("모델을 HDF5 형식으로 저장합니다")
model.save('my_model.h5')
print("동일한 가중치와 옵티마이저를 사용해 모델을 다시 불러옵니다")
new_model = tf.keras.models.load_model('my_model.h5')
print("모델의 아키텍처를 확인합니다")
new_model.summary()

코드 출처 — https://www.tensorflow.org/tutorials/keras/save_and_load

실행 결과

Python Keras에서 HDF5(.h5) 형식으로 모델을 저장하고 불러오는 방법

코드 설명

  • 새로 생성한 모델은 save() 함수를 사용해 간단히 저장할 수 있습니다.

  • 파일 이름의 확장자를 '.h5'로 지정하면 모델이 자동으로 HDF5 형식으로 저장됩니다.

  • load_model()로 불러온 모델은 저장 당시의 가중치와 옵티마이저 상태를 그대로 유지합니다.

  • summary() 메서드를 호출하면 새로 불러온 모델의 구조와 파라미터 정보가 콘솔에 출력됩니다.

HDF5 형식으로 저장하면 좋은 점

HDF5(Hierarchical Data Format version 5)는 대용량 과학 데이터를 저장하기 위해 설계된 파일 형식입니다. Keras에서 모델을 HDF5 파일 하나로 저장하면 모델 아키텍처, 가중치 값, 컴파일 설정(loss 함수와 optimizer), 옵티마이저 상태까지 모두 함께 보관됩니다. 덕분에 저장 시점 그대로 학습을 재개하거나, 별도의 코드 없이 바로 추론에 활용할 수 있어 체크포인트 관리와 배포에 매우 유용합니다.