TensorFlow란 무엇인가?
TensorFlow는 구글(Google)이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 알고리즘 구현, 딥러닝 애플리케이션 개발 등 다양한 작업에 활용되며, 연구 목적뿐 아니라 실제 프로덕션 환경에서도 널리 사용됩니다.
Windows 환경에서는 아래 명령어 한 줄로 'tensorflow' 패키지를 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. 텐서는 데이터 흐름 그래프(Data Flow Graph)에서 노드와 노드를 연결하는 역할을 하며, 본질적으로 다차원 배열 또는 리스트라고 할 수 있습니다. 텐서는 다음 세 가지 주요 속성으로 식별됩니다.
- 랭크(Rank) – 텐서의 차원 수를 나타냅니다. 즉, 정의된 텐서가 몇 차원인지를 의미합니다.
- 타입(Type) – 텐서 요소에 연결된 데이터 타입을 나타냅니다. 1차원, 2차원 또는 n차원 형태일 수 있습니다.
- 셰이프(Shape) – 행과 열의 개수를 함께 나타내는 값입니다.
Keras란 무엇인가?
Keras는 그리스어로 '뿔(horn)'을 의미하며, ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System) 프로젝트의 연구 과정에서 개발되었습니다. Keras는 TensorFlow 프레임워크 위에서 동작하며, 빠른 실험과 개발을 돕기 위해 만들어졌습니다.
Keras는 뛰어난 확장성과 크로스 플랫폼 지원 능력을 갖추고 있어 TPU나 GPU 클러스터에서도 실행할 수 있습니다. 또한 Keras 모델은 웹 브라우저나 모바일 기기에서 실행 가능한 형태로 내보낼 수도 있습니다.
Keras는 TensorFlow 패키지 안에 이미 포함되어 있으며, 아래 코드로 손쉽게 가져올 수 있습니다.
import tensorflow
from tensorflow import keras
이 글의 코드는 Google Colaboratory(Colab)에서 실행했습니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있도록 도와주며, 별도의 설정 없이 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.
저장된 모델 다시 로드하기
아래 코드는 이전에 저장해 둔 모델을 새로운 변수에 로드하고, 해당 모델의 구조를 확인하는 과정을 보여줍니다.
예제 코드
ls saved_model/my_model
new_model = tf.keras.models.load_model('saved_model/my_model')
print("모델의 아키텍처를 확인합니다")
new_model.summary()
코드 출처 – https://www.tensorflow.org/tutorials/keras/save_and_load
실행 결과
위 코드를 실행하면 저장된 모델 파일의 목록이 먼저 출력되고, 이후 로드된 모델의 전체 구조(레이어 구성, 파라미터 수 등)가 콘솔에 표시됩니다.
코드 설명
- 'ls saved_model/my_model' 명령으로 저장된 모델 디렉터리의 내용을 확인합니다.
- tf.keras.models.load_model() 함수를 사용하여 저장된 모델을 불러온 뒤 new_model 변수에 저장합니다.
- summary() 메서드를 호출하여 새로 로드한 모델의 상세 정보(아키텍처)를 콘솔에 출력합니다.
이처럼 Keras의 load_model 함수를 활용하면 한 번 학습시킨 모델을 파일로 저장했다가, 언제든지 다시 불러와 재사용할 수 있습니다. 이는 학습 시간을 크게 절약하고, 학습된 모델을 배포 환경에서 손쉽게 활용할 수 있게 해주는 핵심 기능입니다.