TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 알고리즘 구현, 딥러닝 애플리케이션 개발 등 다양한 작업에 활용되며, 연구 목적과 상용 환경 모두에서 널리 쓰입니다. 복잡한 수학 연산을 빠르게 처리할 수 있는 최적화 기법을 갖추고 있는 것이 큰 장점입니다.
TensorFlow 설치하기
Windows 환경에서는 아래 명령어 한 줄로 'TensorFlow' 패키지를 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)란 무엇인가?
텐서는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. 텐서는 데이터 흐름 다이어그램(이른바 '데이터 플로우 그래프')에서 엣지를 연결하는 역할을 하며, 본질적으로 다차원 배열 또는 리스트라고 할 수 있습니다. 텐서는 다음 세 가지 주요 속성으로 식별됩니다.
랭크(Rank) − 텐서의 차원 수를 나타냅니다. 즉, 정의된 텐서의 차원 개수 또는 텐서의 차수(order)를 의미합니다.
타입(Type) − 텐서 요소와 연관된 데이터 타입을 나타냅니다. 1차원, 2차원 또는 n차원 형태일 수 있습니다.
셰이프(Shape) − 행(row)과 열(column)의 개수를 함께 나타냅니다.
Keras 소개
Keras는 ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System) 프로젝트의 일환으로 개발된 딥러닝 API로, Python으로 작성되었습니다. 높은 수준의(high-level) API로써 생산적인 인터페이스를 제공하며 머신러닝 문제 해결을 돕습니다. TensorFlow 프레임워크 위에서 동작하며, 빠른 실험과 반복을 지원하기 위해 설계되었습니다. 머신러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 추상화 계층과 구성 요소들을 제공합니다.
Keras는 확장성이 뛰어나고 크로스 플랫폼을 지원합니다. 따라서 TPU나 GPU 클러스터에서도 실행할 수 있으며, 학습된 Keras 모델은 웹 브라우저나 모바일 환경에서도 구동되도록 내보낼 수 있습니다.
Keras는 TensorFlow 패키지 안에 이미 포함되어 있으므로, 아래 코드 한 줄로 바로 불러올 수 있습니다.
import tensorflow from tensorflow import keras
Google Colaboratory 활용
이 글의 코드는 Google Colaboratory(Colab)에서 실행됩니다. Colab은 브라우저에서 Python 코드를 실행할 수 있도록 지원하며, 별도의 설정 없이 GPU에 무료로 접근할 수 있다는 장점이 있습니다. Jupyter Notebook을 기반으로 만들어졌습니다.
실전 예제 코드
print("Sequential model created")
initial_model = keras.Sequential(
[
keras.Input(shape=(250, 250, 3)),
layers.Conv2D(32, 5, strides=2, activation="relu"),
layers.Conv2D(32, 3, activation="relu"),
layers.Conv2D(32, 3, activation="relu"),
]
)
print("Feature extraction from the model")
feature_extractor = keras.Model(
inputs=initial_model.inputs,
outputs=[layer.output for layer in initial_model.layers],
)
print("The feature extractor method is called on test data")
x = tf.ones((1, 250, 250, 3))
features = feature_extractor(x)코드 출처 − https://www.tensorflow.org/guide/keras/sequential_model
실행 결과
Sequential modal created Feature extraction form the model The feature extractor method is called on test data
코드 설명
모델 아키텍처가 준비되면 해당 모델을 학습시킵니다.
학습이 완료되면 모델을 평가합니다.
평가된 모델은 디스크에 저장할 수 있습니다.
필요할 때 저장된 모델을 다시 불러와 복원할 수 있습니다.
여러 개의 GPU를 활용하면 모델 학습 속도를 크게 높일 수 있습니다.
모델이 한 번 구축되면 함수형 API 모델처럼 동작합니다.
즉, 모든 레이어는 입력(input)과 출력(output)을 가지게 됩니다.