텐서(Tensor)란?

joon·2023년 7월 31일
0
post-thumbnail
post-custom-banner

딥러닝은 컴퓨터 알고리즘이 데이터를 보고, 이해하고, 그리고 그것으로부터 스스로 배우는 과정을 중심으로 돌아갑니다. TensorFlow나 PyTorch 같은 딥러닝 툴을 사용하면, 텐서라는 단어를 자주 보게 됩니다. 이 글에서는 텐서가 무엇인지, 그리고 텐서의 주요 특성이 무엇인지 알아보겠습니다.

텐서(Tensor)란 무엇인가요?

텐서는 숫자들을 담는 커다란 상자 같은 것입니다. 우리가 머신러닝 시스템에서 다루는 모든 정보는 이 텐서 안에 저장되죠. 텐서는 크게 세 가지 특성으로 정의됩니다:

  • 랭크(Rank): 텐서의 축의 개수입니다. 예를 들어, 벡터는 축이 하나뿐이니까 랭크가 1입니다.
  • 형태(Shape): 각 축을 따라 차원의 수입니다. 예를 들어, 정사각형 행렬은 (2,2) 형태를 가지고 있죠.
  • 데이터 타입(Data Type): 텐서 안에 담긴 데이터의 유형이죠. float32, float64, int32 등이 있습니다.

텐서를 더 잘 이해하기 위한 예시: 스칼라, 벡터, 행렬

텐서를 더 잘 이해하기 위해 세 가지 예시를 들어보겠습니다.

  • 스칼라 또는 0D 텐서: 랭크가 0인 텐서입니다. 즉, 숫자 하나로 이루어진 텐서를 의미해요.
import numpy as np
zero_d_tensor = np.array(4)
  • 벡터 또는 1D 텐서: 랭크가 1인 텐서로, 숫자 여러 개가 일렬로 이어진 형태입니다.
one_d_tensor = np.array([1, 2, 3, 4])
  • 행렬 또는 2D 텐서: 랭크가 2인 텐서로, 숫자가 행과 열로 이루어진 표 형태를 가집니다.
two_d_tensor = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

차원이 높아질수록 텐서를 만드는 것도 복잡해집니다. 하지만 원리는 그대로입니다. 벡터를 모으면 행렬이 되고, 행렬을 모으면 3차원 텐서가 됩니다.

자주 쓰이는 텐서의 형태

  • 벡터: 1차원 — (특성)
  • 시퀀스: 2차원 — (타임스텝, 특성)
  • 이미지: 3차원 — (높이, 너비, 채널)
  • 동영상: 4차원 — (프레임, 높이, 너비, 채널)

머신러닝에서는 보통 한 번에 일부분의 데이터를 처리합니다. 이렇게 처리하는 데이터의 묶음을 'Batch'라고 합니다. Batch 데이터를 다룰 때는 텐서의 첫 번째 축이 Batch 크기(즉, 샘플의 수)를 나타냅니다.

이렇게 텐서를 이해하면, 머신러닝이나 딥러닝에서 데이터를 효과적으로 다룰 수 있게 됩니다

참조 링크 https://medium.datadriveninvestor.com/what-is-the-tensor-in-deep-learning-77c2af7224a1

post-custom-banner

0개의 댓글