[파이썬] Keras 함수형 API 사용

Keras는 딥러닝 모델을 구축하고 학습시키기 위한 인기있는 프레임워크입니다. Keras의 함수형 API는 모델을 더욱 복잡하게 구성하고 사용하기 위한 강력한 도구입니다. 이번 포스트에서는 Keras 함수형 API를 사용하여 모델을 만들고 학습하는 방법을 알아보겠습니다.

Keras 함수형 API 소개

Keras 함수형 API는 Sequential 모델 외에도 복잡한 모델 구조를 다룰 수 있도록 도와줍니다. Sequential 모델은 레이어를 순차적으로 쌓아서 모델을 구성하지만, 함수형 API는 더 다양한 구조를 가진 모델을 만들 수 있습니다. 예를 들어, 다중 입력, 다중 출력, 공유 레이어, 잔차 연결 등을 지원합니다.

Keras 함수형 API 예제

아래 예제에서는 Keras 함수형 API를 사용하여 간단한 분류 모델을 구성하고 학습하는 방법을 보여줍니다.

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.layers import Input, Dense

# 입력 레이어 정의
inputs = Input(shape=(784,))

# 은닉층 정의
x = Dense(64, activation='relu')(inputs)

# 출력 레이어 정의
outputs = Dense(10, activation='softmax')(x)

# 모델 생성
model = keras.Model(inputs=inputs, outputs=outputs)

# 모델 컴파일
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 데이터 로드 및 전처리
mnist = keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train / 255.0
x_test = x_test / 255.0

# 모델 학습
model.fit(x_train, y_train, epochs=10, batch_size=32)

# 모델 평가
model.evaluate(x_test, y_test)

위의 코드에서는 먼저 Input 레이어를 사용하여 입력을 정의합니다. 그 다음 Dense 레이어를 사용하여 은닉층과 출력 레이어를 정의합니다. 이후 keras.Model을 사용하여 모델을 생성하고, compile 메소드를 사용하여 모델을 컴파일합니다.

데이터는 MNIST 데이터셋을 사용하였으며, 모델을 학습하고 평가하기 위해 fitevaluate 메소드를 사용합니다.

Keras 함수형 API를 통해 더 복잡하고 유연한 모델을 생성할 수 있으며, 이를 통해 다양한 딥러닝 문제에 대한 솔루션을 구축할 수 있습니다. Keras 함수형 API를 사용하여 모델을 만들고 학습하는 방법을 숙지하면 딥러닝 프로젝트를 보다 더 효과적으로 구현할 수 있습니다.