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

Python에서 Keras를 활용해 전체 모델을 저장하는 방법

```html

TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스로 공개된 이 프레임워크는 Python과 함께 사용되어 알고리즘 구현, 딥러닝 애플리케이션 개발 등 다양한 용도로 활용되며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 쓰입니다.

Keras란 무엇인가?

Keras는 Python으로 작성된 딥러닝 API입니다. 머신러닝 문제를 효율적으로 해결할 수 있는 생산성 높은 인터페이스를 제공하는 고수준(High-level) API로, TensorFlow 프레임워크 위에서 동작합니다. 빠르게 실험할 수 있도록 설계되었으며, 뛰어난 확장성과 크로스 플랫폼 지원이 특징입니다. 따라서 Keras 모델은 TPU나 GPU 클러스터에서 실행할 수 있을 뿐만 아니라, 웹 브라우저나 모바일 기기에서도 동작하도록 내보낼 수 있습니다.

Keras는 TensorFlow 패키지 안에 이미 포함되어 있으며, 아래 코드 한 줄로 손쉽게 불러올 수 있습니다.

import tensorflow
from tensorflow import keras

본 글에서는 Google Colaboratory(이하 Colab) 환경에서 코드를 실행합니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, 별도의 설정 없이 GPU에 무료로 접근할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.

전체 모델 저장 예제

print("A new model instance is created")
model = create_model()
print("The model is fit to the training data")
model.fit(train_images, train_labels, epochs=5)
print("The model is saved")
!mkdir -p saved_model
model.save('saved_model/my_model')
ls saved_model

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

실행 결과

위 코드를 실행하면 에포크(epoch)별 학습 진행 상황과 함께 손실(loss) 및 정확도(accuracy)가 출력되고, 마지막에는 saved_model 디렉터리 아래에 my_model 폴더가 생성된 것을 확인할 수 있습니다.

코드 설명

  • create_model 메서드를 호출하여 새로운 모델 인스턴스를 생성합니다.

  • 생성된 모델을 학습 데이터(train_images, train_labels)에 대해 5번의 에포크 동안 학습시킵니다.

  • mkdir 명령어로 모델을 저장할 새 디렉터리(saved_model)를 생성합니다.

  • 학습이 완료되면 save 메서드를 호출하여 전체 모델을 SavedModel 형식으로 저장합니다.

  • ls 명령어를 통해 저장된 모델의 경로가 콘솔에 출력됩니다.

마무리

Keras의 model.save() 메서드를 사용하면 모델의 아키텍처, 가중치, 옵티마이저 상태까지 모두 포함된 전체 모델을 하나의 경로에 저장할 수 있습니다. 이렇게 저장된 모델은 tf.keras.models.load_model() 함수를 통해 언제든 다시 불러와 재학습이나 추론 작업에 활용할 수 있어, 학습 결과를 보관하고 배포하는 데 매우 유용합니다.