텐서플로우의 기본 단위, 텐서(Tensor)
텐서(Tensor)
는 텐서플로우(TensorFlow)에서 데이터를 표현하는 기본 단위입니다.
머신러닝과 딥러닝 모델에서는 수많은 숫자 데이터를 다루게 되는데, 주로 입력 데이터(features)
, 가중치(weights)
, 손실(loss)
등을 표현하는 데 사용됩니다.
손실
은 모델이 예측한 값과 실제 값 사이의 차이를 나타내는 값으로, 모델이 학습하는 동안 최소화하려는 대상입니다.
텐서 만들기
tf.constant()
를 사용하면 변하지 않는 상수 텐서를 생성할 수 있습니다.
import tensorflow as tf # 1차원 텐서 생성 tensor = tf.constant([1, 2, 3, 4, 5])
위 코드에서 tf.constant([1, 2, 3, 4, 5])
는 1차원 배열 형태의 텐서를 생성합니다.
딥러닝 모델에서 가중치와 편향 같은 값들은 학습 과정에서 변경됩니다. 이와 같이 가변적인 텐서를 표현할 때는 tf.Variable()
을 사용합니다.
# 학습 가능한 변수 생성 weight = tf.Variable([0.5, -0.3, 0.8], dtype=tf.float32)
이 함수는 모델이 학습하면서 업데이트할 값을 저장하는 데 사용되며, tf.GradientTape()
와 함께 자동 미분 기능을 활용할 때 필수적입니다.
텐서의 형태
예를 들어, 이미지 분류 모델에서는 특정 이미지의 각 픽셀 값은 텐서로 표현할 수 있습니다.
# 이미지의 픽셀 값을 텐서로 표현 image_tensor = tf.constant([ [0, 128, 255, 64, 32], [12, 200, 30, 90, 255], [255, 180, 75, 40, 0], [80, 190, 250, 140, 30], [50, 100, 150, 200, 250] ], dtype=tf.float32)
자연어 처리(NLP)에서는 단어 임베딩(word embedding) 벡터가 텐서로 변환됩니다.
단어 임베딩
은 단어를 숫자 형태의 벡터로 표현하는 기법으로, 단어 간의 의미적 유사성을 반영하여 단어를 수치화합니다.
비슷한 의미를 가진 단어는 유사한 벡터로 표현됩니다.
# 강아지 임베딩 벡터 dog = tf.constant([0.2, 0.4, 0.6, 0.8, 1.0], dtype=tf.float32) # 고양이 임베딩 벡터 (강아지와 유사한 벡터) cat = tf.constant([0.25, 0.38, 0.58, 0.85, 0.95], dtype=tf.float32) # 자동차 임베딩 벡터 (강아지와 다른 벡터) car = tf.constant([-0.8, 0.1, -0.5, 0.3, -0.6], dtype=tf.float32)
위 텐서 예시는 2차원 배열 형태의 이미지 데이터와 1차원 벡터 형태의 단어 임베딩을 보여줍니다.
다음 수업에서는 텐서의 차원과 형태에 대해 더 자세히 알아보겠습니다.
텐서플로우에서 tf.constant()는 변하는 값을 표현하는 데 사용된다.
Lecture
AI Tutor
Design
Upload
Notes
Favorites
Help