IT/Python

[Python] TensorFlow 기초 : 딥러닝 모델 구현하기

멋진 선배 2025. 1. 14. 00:00
반응형

TensorFlow를 사용하여 딥러닝 모델을 구현하는 방법에 대해서 알아보겠습니다. TensorFlow는 구글에서 개발한 오픈소스 머신러닝 라이브러리로, 다양한 딥러닝 모델을 쉽게 구현할 수 있게 해줍니다.

TensorFlow 소개

TensorFlow는 데이터 흐름 그래프를 사용하여 수치 연산을 수행 합니다. 이 라리브러리의 핵심은 '텐서(Tensor)'로, 다차원 배열을 의미합니다. TensorFlow 2.0 부터는 즉시 실행(Eager Execution) 모드가 기본으로 설정되어 있어, 더욱 직관적인 코드 작성이 가능해 졌습니다.

TensorFlow 설치 및 기본 사용법

TensorFlow를 설치하려면 다음 명령어를 사용 합니다.

pip install tensorflow

설치가 완료되면, 다음과 같이 TensorFlow를 임포트하고 버전을 확인 할 수 있습니다.

import tensorflow as tf
print("TensorFlow version:", tf.__version__)

 

딥러닝 모델 구현하기

이제 TensorFlow를 사용하여 간단한 딥러닝 모뎅을 구현해 보겠습니다. 여기서는 Sequential API를 사용하여 다층 퍼셉트로(MLP) 모델을 만들어 보겠습니다.

1.데이터 준비

먼저, 모델 학습에 사용할 데이터를 준비합니다. 예를 들어, MNIST 데이터 셋을 사용할 수 있습니다.

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

2. 모델 구성

Sequential API를 사용하여 모델을 구성 합니다.

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

3. 모델 컴파일

모델을 컴파일하여 학습 과정을 설정 합니다.

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

4.모델 학습

준비된 데이터로 모델을 학습 시킵니다

model.fit(x_train, y_train, epochs=5)

5.모델 평가

학습된 모델을 테스트 데이터로 평가 합니다.

model.evaluate(x_test, y_test)

고급 기능 : CNN 구현하기

이번에는 조금 더 복잡한 모델인 합성곱 신경망(CNN)(을 구현해보겠습니다. CNN은 이미지 처리에 특히 효과적 입니다.

model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    tf.keras.layers.MaxPooling2D((2, 2)),
    tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),
    tf.keras.layers.MaxPooling2D((2, 2)),
    tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

이 모델은 여러 개의 합성곱 층과 풀링 층, 그리고 완전 연결 층으로 구성되어 있습니다.

모델 저장 및 로드

학습된 모델을 저장하고 나중에 다시 불러올 수 있습니다.

# 모델 저장
model.save('my_model.h5')

# 모델 로드
loaded_model = tf.keras.models.load_model('my_model.h5')

결론

이렇게 TensorFlow를 사용하여 기본적인 딥러닝 모델을 구현해보았습니다. TensorFlow는 강력하고 유연한 도구로, 다양한 종류의 신경망을 구현할 수 있습니다. 이 글에서 다룬 내용은 TensorFlow의 기초적인 부분에 불과하며, 더 복잡한 모델과 고급 기능들도 많이 있습니다.

 

 

반응형