Python/Deep Learning

TensorFlow란? 설치 및 기본 사용법

임베디드 친구 2025. 12. 5. 20:44
반응형

TensorFlow란? 설치 및 기본 사용법

1. TensorFlow란?

TensorFlow는 Google Brain 팀에서 개발한 오픈 소스 딥러닝 프레임워크로, 머신러닝 및 딥러닝 모델을 구축하고 훈련하는 데 널리 사용됩니다. 다양한 플랫폼에서 실행할 수 있으며, GPU 및 TPU 가속을 활용하여 높은 성능을 제공합니다.

TensorFlow의 특징

  • 다양한 플랫폼 지원: Windows, Linux, macOS뿐만 아니라 모바일 및 임베디드 기기에서도 실행 가능
  • 자동 미분 기능: 그래디언트 계산 자동화 (TensorFlow의 tf.GradientTape 활용)
  • 확장성: 작은 모델부터 대규모 분산 학습까지 지원
  • 풍부한 생태계: Keras API 통합, TensorFlow Lite, TensorFlow.js, TensorFlow Extended(TFX) 등 다양한 확장 기능 제공

2. TensorFlow 설치 방법

TensorFlow는 Python 패키지로 제공되며, pip를 이용하여 간단하게 설치할 수 있습니다.

기본 설치

pip install tensorflow

또는 GPU를 활용한 학습을 위해 CUDA 및 cuDNN이 설치된 환경에서는 아래 명령어로 GPU 버전을 설치할 수 있습니다.

pip install tensorflow-gpu

설치가 완료되었는지 확인하려면 Python 환경에서 TensorFlow를 불러와 버전을 출력해 보면 됩니다.

import tensorflow as tf
print(tf.__version__)

3. TensorFlow 기본 사용법

TensorFlow의 핵심 개념을 몇 가지 예제를 통해 살펴보겠습니다.

3.1 텐서(Tensor) 다루기

TensorFlow의 핵심 데이터 구조는 Tensor입니다. 이는 다차원 배열로, NumPy 배열과 유사하지만 GPU에서 실행이 가능하다는 특징이 있습니다.

import tensorflow as tf

a = tf.constant([[1, 2], [3, 4]])  # 2x2 행렬
b = tf.constant([[5, 6], [7, 8]])

c = tf.add(a, b)  # 원소별 덧셈
print(c.numpy())

3.2 간단한 선형 회귀 모델 만들기

TensorFlow에서는 딥러닝 모델을 손쉽게 구축할 수 있습니다. 아래는 Keras API를 이용한 간단한 선형 회귀 모델의 예제입니다.

import tensorflow as tf
from tensorflow import keras
import numpy as np

# 샘플 데이터 생성
x_train = np.array([1, 2, 3, 4, 5], dtype=np.float32)
y_train = np.array([2, 4, 6, 8, 10], dtype=np.float32)

# 간단한 모델 정의
model = keras.Sequential([
    keras.layers.Dense(units=1, input_shape=[1])
])

# 모델 컴파일 (손실 함수 및 최적화 알고리즘 설정)
model.compile(optimizer='sgd', loss='mean_squared_error')

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

# 예측 수행
print(model.predict([6]))  # 6 입력 시 예측 값 출력

3.3 자동 미분 기능

TensorFlow의 tf.GradientTape를 사용하면 자동으로 그래디언트를 계산할 수 있습니다.

x = tf.Variable(3.0)

def f(x):
    return x**2 + 2*x + 1  # f(x) = x^2 + 2x + 1

with tf.GradientTape() as tape:
    y = f(x)

grad = tape.gradient(y, x)  # dy/dx 계산
print(grad.numpy())  # 결과: 8.0 (3*2 + 2)

4. TensorFlow의 주요 모듈

TensorFlow는 다양한 기능을 제공하며, 주요 모듈은 다음과 같습니다.

4.1 tf.keras (고수준 API)

TensorFlow의 Keras API는 신경망 모델을 쉽게 만들 수 있도록 도와줍니다.

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

4.2 tf.data (데이터 처리)

대용량 데이터를 처리할 때 tf.data API를 이용하면 효율적인 데이터 입력 파이프라인을 구성할 수 있습니다.

dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5])
dataset = dataset.map(lambda x: x * 2).batch(2)

for batch in dataset:
    print(batch.numpy())

4.3 tf.function (성능 최적화)

tf.function을 사용하면 Python 코드 실행 속도를 최적화할 수 있습니다.

@tf.function
def add(a, b):
    return a + b

print(add(tf.constant(2), tf.constant(3)).numpy())

5. TensorFlow의 확장 기능

TensorFlow는 다양한 확장 기능을 제공합니다.

  • TensorFlow Lite: 모바일 및 임베디드 기기에서 모델을 실행할 수 있도록 경량화된 버전
  • TensorFlow.js: 브라우저 및 Node.js 환경에서 모델을 실행할 수 있도록 지원
  • TensorFlow Extended (TFX): 머신러닝 파이프라인을 구축하는 데 사용
  • TensorFlow Probability: 확률적 모델 및 베이지안 분석을 위한 라이브러리

6. 결론

TensorFlow는 강력한 기능을 갖춘 딥러닝 프레임워크로, 다양한 플랫폼에서 사용할 수 있습니다. 기본적인 텐서 연산부터 모델 학습, 자동 미분, 최적화 기능까지 폭넓은 기능을 제공하며, Keras API를 통해 쉽게 모델을 구축할 수도 있습니다.

반응형