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() 함수를 통해 언제든 다시 불러와 재학습이나 추론 작업에 활용할 수 있어, 학습 결과를 보관하고 배포하는 데 매우 유용합니다.