TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 알고리즘 구현, 딥러닝 애플리케이션 개발 등 다양한 용도로 활용되며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 쓰이고 있습니다.
TensorFlow 설치하기
'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 간단히 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)란 무엇인가?
텐서는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. 텐서는 데이터 흐름 그래프(Data Flow Graph) 내에서 엣지(edge)를 연결하는 역할을 하며, 본질적으로 다차원 배열 또는 리스트라고 할 수 있습니다.
텐서는 다음 세 가지 주요 속성으로 식별할 수 있습니다.
랭크(Rank) - 텐서의 차원 수를 나타냅니다. 텐서의 차수 또는 정의된 텐서가 가진 차원의 개수로 이해할 수 있습니다.
타입(Type) - 텐서 요소에 연결된 데이터 타입을 나타냅니다. 1차원, 2차원 또는 n차원 형태일 수 있습니다.
쉐이프(Shape) - 행과 열의 개수를 함께 나타내는 값입니다.
Keras 소개
Keras는 Python으로 작성된 딥러닝 API입니다. 높은 수준의 추상화를 제공하는 고급 API로, 생산적인 인터페이스를 통해 머신러닝 문제 해결을 돕습니다. TensorFlow 프레임워크 위에서 동작하며, 빠른 실험을 지원하도록 설계되었습니다. 또한 머신러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 추상화 계층과 빌딩 블록을 제공합니다.
Keras는 뛰어난 확장성과 크로스 플랫폼 호환성을 갖추고 있어 TPU나 GPU 클러스터에서도 실행할 수 있습니다. 나아가 Keras 모델은 웹 브라우저나 모바일 기기에서도 구동되도록 내보낼 수 있습니다.
Keras는 TensorFlow 패키지에 이미 포함되어 있으며, 아래 코드로 간단히 불러올 수 있습니다.
import tensorflow from tensorflow import keras
함수형 API(Functional API)의 장점
Keras 함수형 API는 순차형(Sequential) API로 만든 모델보다 더 유연한 모델 생성이 가능합니다. 비선형 토폴로지를 가진 모델을 다룰 수 있고, 레이어 공유와 다중 입력·출력 처리도 지원합니다. 일반적으로 딥러닝 모델은 여러 레이어로 구성된 방향성 비순환 그래프(DAG)이며, 함수형 API를 사용하면 이러한 레이어 그래프를 손쉽게 구축할 수 있습니다.
개발 환경: Google Colaboratory
본 예제는 Google Colaboratory에서 실행합니다. Colab은 브라우저에서 바로 Python 코드를 실행할 수 있도록 도와주며, 별도의 설정 없이 GPU에 무료로 접근할 수 있다는 장점이 있습니다. Jupyter Notebook을 기반으로 구축되어 있습니다.
예제: 모델 저장 및 재생성
다음은 Keras를 사용해 Python으로 모델을 저장하고 직렬화하는 방법을 보여주는 코드입니다.
print("Save the model to a file")
model.save("path_to_my_model")
print("Delete the model")
del model
print("Recreating the model from the saved model")
model = keras.models.load_model("path_to_my_model")코드 출처 - https://www.tensorflow.org/guide/keras/functional
실행 결과
Save the model to a file INFO:tensorflow:Assets written to: path_to_my_model/assets Delete the model Recreating the model from the saved model
코드 설명
model.save()메서드를 사용하여 학습된 모델을 파일로 저장합니다.저장이 정상적으로 완료되었음을 확인하기 위해
del키워드로 메모리상의 모델을 삭제합니다.keras.models.load_model()메서드를 호출하여 파일에 저장된 모델을 다시 불러와 재생성합니다.
이처럼 Keras의 저장 및 로드 기능을 활용하면 학습 결과물을 안전하게 보관하고, 필요할 때 언제든 동일한 모델을 복원하여 재사용할 수 있습니다. 이는 모델 배포, 실험 재현, 협업 등 실무에서 매우 유용하게 활용됩니다.