TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 다양한 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있으며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 활용됩니다.
Keras는 ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System)라는 프로젝트의 연구 과정에서 개발된 딥러닝 API입니다. Python으로 작성되었으며, 머신러닝 문제 해결을 돕는 생산성 높은 인터페이스를 갖춘 고수준(high-level) API입니다. TensorFlow 프레임워크 위에서 동작하며, 빠르게 실험할 수 있도록 설계되었습니다.
Keras의 주요 특징
- 머신러닝 솔루션을 개발하고 캡슐화하는 데 필요한 핵심 추상화와 빌딩 블록을 제공합니다.
- 뛰어난 확장성을 지니며, TPU나 GPU 클러스터 등 크로스 플랫폼 환경에서 실행할 수 있습니다.
- Keras 모델은 웹 브라우저나 모바일 기기에서 실행될 수 있도록 내보내기(export)할 수도 있습니다.
Keras는 이미 TensorFlow 패키지에 포함되어 있으며, 아래 코드 한 줄로 손쉽게 불러올 수 있습니다.
import tensorflow
from tensorflow import keras
이 글의 코드는 Google Colaboratory에서 실행합니다. Google Colab 또는 Colaboratory는 브라우저에서 Python 코드를 실행할 수 있게 해주며, 별도의 설정이 필요 없고 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.
예제 코드
print("모델 인스턴스가 생성됩니다")
model = create_model()
print("모델을 평가합니다")
loss, acc = model.evaluate(test_images, test_labels, verbose=2)
print("학습되지 않은 모델의 정확도: {:5.3f}%".format(100 * acc))코드 출처: https://www.tensorflow.org/tutorials/keras/save_and_load
실행 결과
An Instance of the model is created
The Model is being evaluated 32/32 -0s - loss: - sparse_categorical_accuracy: 0.0930
This is an untrained model, with accuracy: 9.300%
코드 설명
먼저 모델의 인스턴스를 생성합니다.
생성된 모델은 아직 학습되지 않은 새로운 모델이며, 이를 테스트 데이터셋으로 평가합니다.
'evaluate' 메서드는 모델이 새로운 데이터에서 얼마나 잘 작동하는지 확인하는 데 사용됩니다.
동시에 모델 학습 시의 손실(loss)과 모델의 정확도(accuracy)도 함께 계산됩니다.
마지막으로 계산된 손실과 정확도가 콘솔에 출력됩니다. 위 예제에서는 학습되지 않은 모델이므로 정확도가 약 9.3%로 매우 낮게 나타납니다.