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를 통해 쉽게 모델을 구축할 수도 있습니다.
'Python > Deep Learning' 카테고리의 다른 글
| Keras를 이용한 딥러닝 모델 빌딩 기초 (0) | 2025.12.08 |
|---|---|
| TensorFlow의 주요 기능과 데이터 흐름 그래프 (0) | 2025.12.07 |
| 딥러닝에서의 하이퍼파라미터 튜닝 기초 (0) | 2025.12.04 |
| 심층 신경망(Deep Neural Network, DNN)의 구조와 원리 (0) | 2025.12.03 |
| 활성화 함수 선택 방법과 딥러닝 성능 최적화 (0) | 2025.12.02 |