Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Keras를 활용해 새로운 콜백으로 모델을 학습시키는 방법

TensorFlow는 구글(Google)이 제공하는 오픈소스 머신러닝 프레임워크입니다. Python과 함께 사용하여 다양한 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있으며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 활용됩니다. 복잡한 수학 연산을 빠르게 처리할 수 있도록 돕는 최적화 기법들을 내장하고 있습니다.

'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 간단히 설치할 수 있습니다.

pip install tensorflow

텐서(Tensor)는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. 플로우 다이어그램의 엣지(edge)를 연결하는 역할을 하며, 이 다이어그램은 '데이터 흐름 그래프(Data flow graph)'라고 불립니다. 텐서는 결국 다차원 배열 또는 리스트라고 할 수 있습니다.

Keras는 Python으로 작성된 딥러닝 API입니다. 머신러닝 문제를 해결하는 데 도움이 되는 생산성 높은 인터페이스를 갖춘 고수준(high-level) API로, TensorFlow 프레임워크 위에서 동작합니다. 빠른 실험을 지원하도록 설계되었으며, 머신러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 추상화 계층과 빌딩 블록을 제공합니다. 확장성이 뛰어나고 크로스 플랫폼 기능을 갖추고 있어 TPU나 GPU 클러스터에서도 실행할 수 있습니다. 나아가 Keras 모델은 웹 브라우저나 모바일 기기에서 실행되도록 내보낼 수도 있습니다.

Keras는 이미 TensorFlow 패키지에 포함되어 있으며, 아래 코드로 간단히 불러올 수 있습니다.

import tensorflow
from tensorflow import keras

아래 코드는 Google Colaboratory에서 실행됩니다. Google Colab(또는 Colaboratory)은 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, 별도의 설정 없이 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.

다음은 새로운 콜백을 적용해 모델을 학습시키는 예제 코드입니다.

예제

print("The model is trained with new callback")
model.fit(train_images,
   train_labels,
   epochs=50,
   callbacks=[cp_callback],
   validation_data=(test_images, test_labels),
   verbose=0)
ls {checkpoint_dir}
print("The latest checkpoint being updated")
latest = tf.train.latest_checkpoint(checkpoint_dir)
print(latest)

코드 출처: https://www.tensorflow.org/tutorials/keras/save_and_load

출력 결과

Keras를 활용해 새로운 콜백으로 모델을 학습시키는 방법

Keras를 활용해 새로운 콜백으로 모델을 학습시키는 방법

Keras를 활용해 새로운 콜백으로 모델을 학습시키는 방법

Keras를 활용해 새로운 콜백으로 모델을 학습시키는 방법

코드 설명

  • 새롭게 생성된 모델 인스턴스가 학습 데이터에 맞춰 학습(fit)됩니다.

  • 여기서 cp_callback은 일반적으로 tf.keras.callbacks.ModelCheckpoint로 정의된 콜백으로, 학습 과정 중 일정한 간격으로 모델의 가중치를 체크포인트 파일로 저장하는 역할을 합니다.

  • 체크포인트 디렉터리에 저장된 모든 파일이 콘솔에 출력됩니다.

  • 가장 최근의 체크포인트가 업데이트됩니다.

  • 새로 업데이트된 최신 체크포인트 경로가 콘솔에 표시됩니다.