본문 바로가기
AI/관련 자료

[딥러닝] 텐서플로 케라스란? / TensorFlow Keras

by 뒹굴거리는프로도 2024. 11. 14.
반응형

 


 

텐서플로 케라스(TensorFlow Keras)는 딥러닝 모델을 설계하고 훈련시키기 위한 고수준의 API로, 텐서플로의 일부입니다. Keras는 사용자 친화적이고 모듈화가 잘 되어 있으며 확장 가능하다는 특징을 가지고 있어, 초보자부터 전문가까지 다양한 수준의 사용자들이 이용할 수 있습니다. 여기서는 텐서플로 케라스의 주요 개념과 구성 요소를 살펴보겠습니다.

 

핵심 구성 요소


1. 모델
Keras에서는 Sequential 모델과 함수형 API를 통해 모델을 구성할 수 있습니다. Sequential 모델은 층을 순서대로 쌓아 만드는 가장 간단한 형태의 모델이며, 함수형 API는 입력과 출력이 여러 개이거나 모델 구조가 복잡한 경우에 사용합니다.
2. 층(Layers)
Keras에서는 다양한 내장 층을 제공합니다. 예를 들어, Dense는 완전 연결 층이며, Conv2D는 컨볼루션 층입니다. 각 층은 특정한 구조와 활성화 함수를 가지며, 이를 통해 데이터에 대한 학습이 이루어집니다.
3. 컴파일(Compile)
모델을 학습하기 전에, compile() 메소드를 사용하여 학습 과정을 설정합니다. 이때 손실 함수(loss function), 최적화 방법(optimizer), 그리고 평가 지표(metrics)를 정의합니다. 예를 들어, 분류 문제에서는 categorical_crossentropy를 손실 함수로, adam을 최적화 방법으로 사용할 수 있습니다.
4. 학습(Fit)
fit() 메소드를 사용하여 모델을 학습시킵니다. 이 메소드는 입력 데이터와 레이블 데이터를 받아 모델의 파라미터를 업데이트하면서 학습을 진행합니다.
5. 평가(Evaluate) 및 예측(Predict)
evaluate() 메소드를 사용하여 테스트 데이터에 대한 모델의 성능을 평가하고, predict() 메소드를 사용하여 새로운 데이터에 대한 예측을 수행합니다.

 


 

간단한 예제


다음은 텐서플로 케라스를 사용하여, 간단한 완전 연결 네트워크를 구성하고 MNIST 데이터셋을 학습하는 예제 코드입니다.

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten

# 모델 구성
model = Sequential([
    Flatten(input_shape=(28, 28)),  # 입력 데이터를 평탄화
    Dense(128, activation='relu'),  # 128개의 뉴런을 가지는 Dense 층
    Dense(10, activation='softmax')  # 출력 층, 10개의 클래스에 대한 확률을 출력
])

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

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

# 모델 학습
model.fit(x_train, y_train, epochs=5)

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

 

이 코드는 MNIST 데이터셋에 대해 간단한 이미지 분류 모델을 학습하고 평가하는 과정을 보여줍니다. Sequential 모델을 사용하여 모델을 구성하고, compile()과 fit() 메소드를 통해 학습을 진행합니다.

 


반응형