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

Keras 순차(Sequential) 모델로 특징 추출하는 방법 – Python 실전 가이드

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)을 가지게 됩니다.