티스토리 뷰

AI(인공지능)

TensorFlow(텐서플로)

Dev.Luv 2024. 10. 31. 17:18

 

TensorFlow(텐서플로)는 구글이 개발한 오픈 소스 머신러닝 및 딥러닝 라이브러리로, 대규모의 수치 연산을 효율적으로 수행하는 데 최적화되어 있습니다. TensorFlow는 주로 인공신경망을 사용한 머신러닝 모델을 구축하고 학습하는 데 쓰이며, 확장성이 높아 다양한 플랫폼과 환경에서 사용할 수 있습니다.

TensorFlow의 특징

  1. 유연한 구조: TensorFlow는 모델을 구축하고 훈련하는 데 필요한 다양한 레이어와 함수들을 제공합니다. 이를 통해 복잡한 신경망 구조도 쉽게 구현할 수 있습니다.
  2. 자동 미분 및 최적화 기능: 자동으로 모델의 그래디언트를 계산하고 경사 하강법을 통해 모델의 파라미터를 최적화하는 기능을 제공합니다.
  3. 다양한 플랫폼 지원: CPU, GPU, TPU를 활용한 고속 연산을 지원하며, 모바일 기기에서도 실행할 수 있는 TensorFlow Lite와 같은 경량화 버전도 제공됩니다.
  4. 확장성: 모델 학습 후 배포를 위한 TensorFlow Serving, 데이터 전처리를 위한 TensorFlow Data API, 강화학습 라이브러리인 TensorFlow Agents 등 여러 확장 라이브러리와 도구를 제공합니다.

TensorFlow 주요 구성 요소

  • 텐서(Tensor): TensorFlow의 기본 데이터 구조로, 배열과 유사한 n차원 행렬입니다.
  • 변수(Variable): 모델이 학습하는 동안 업데이트되는 파라미터입니다.
  • 그래프(Graph): 연산과 데이터의 흐름을 정의하는 계산 그래프입니다.
  • 세션(Session): 그래프를 실행하여 결과를 반환하는 환경입니다. (TensorFlow 2에서는 Session을 직접 사용할 필요가 줄어듦)

TensorFlow 예제 코드

간단한 텐서 연산

import tensorflow as tf 
# 텐서 생성 
a = tf.constant([[1, 2], [3, 4]]) b = tf.constant([[5, 6], [7, 8]]) 
# 텐서 간의 연산 
c = tf.add(a, b) print(c)

간단한 선형 회귀 모델 학습 예제

import tensorflow as tf 

# 학습 데이터 정의 
X = tf.constant([[1.0], [2.0], [3.0], [4.0]], dtype=tf.float32) 
y = tf.constant([[2.0], [4.0], [6.0], [8.0]], dtype=tf.float32) 

# 가중치와 절편 정의 
W = tf.Variable(0.0) b = tf.Variable(0.0) 

# 학습률 및 최적화기 
learning_rate = 0.01 optimizer = tf.optimizers.SGD(learning_rate) 

# 손실 함수 정의 
def loss_fn(): 
	y_pred = W * X + b return tf.reduce_mean(tf.square(y_pred - y)) 
    
# 학습 과정 
for step in range(1000): 
	optimizer.minimize(loss_fn, var_list=[W, b]) 
    	if step % 100 == 0: 
        	print(f"Step {step}, Loss: {loss_fn().numpy()}, W: {W.numpy()}, b: {b.numpy()}") 
            print(f"Final W: {W.numpy()}, Final b: {b.numpy()}")

TensorFlow 학습 리소스

TensorFlow는 공식 문서와 튜토리얼이 잘 제공되어 있어, 기초부터 고급 모델까지 학습할 수 있습니다. 주요 학습 자원으로는 다음을 추천합니다:

TensorFlow는 강력한 성능과 다양한 기능을 제공하는 머신러닝 라이브러리로, 실무와 학습에 모두 널리 사용되고 있습니다.

댓글