관리 메뉴

bright jazz music

선형대수 : 4. 텐서(Tensor) 본문

Math/선형대수

선형대수 : 4. 텐서(Tensor)

bright jazz music 2022. 7. 22. 08:31

텐서(Tensor)

  • 텐서는 스칼라를 여러 개의 차원으로 나월한 것이다.
  • 텐서는 스칼라, 벡터, 행렬을 포함한다.
  • 스칼라, 벡터, 행렬은 서로 다른 차원의 텐서이다.

 

스칼라, 벡터, 행렬와 텐서와의 관계

각 요소에 붙은 첨자 수를 그 텐서의 차원수라고 말한다.

 

  • 스칼라에는 첨자가 붙지 않는다. 따라서 스칼라는 0차원 텐서이다.
  • 벡터에는 첨자가 1개 붙는다. 따라서 벡터는 1차원 텐서이다.
  • 행렬은 첨자가 2개 붙는다. 따라서 행렬은 2차원 텐서이다.

 

3차원 텐서, 4차원 텐서 순으로 고차원으로 나아간다.

 

 

파이썬에서의 텐서 구현

import numpy as np

a = np.array([[[0, 1, 2, 3],
               [2, 3, 4, 5],
               [4, 5, 6, 7]],

              [[1, 2, 3, 4],
               [3, 4, 5, 6],
               [5, 6, 7, 8]]])     #2x3x4인 3차원 텐서 (중복 리스트 사용).
               				#3x4행렬이 2개 쌓여 있다.
print(a)

# [[[0 1 2 3]
#   [2 3 4 5]
#   [4 5 6 7]]
# 
#  [[1 2 3 4]
#   [3 4 5 6]
#   [5 6 7 8]]]

 

 

 

실습

Numpy를 사용하여 스칼라, 벡터, 행렬, 텐서를 구현할 것.

 

import numpy as np
#스칼라
a = 1.5
print('a=', a)

print()

#벡터
b = np.array([1, 2, 3, 4, 5])
print('b=', b)

print()

#행렬
c = np.array([[1, 2, 3],
              [4, 5, 6]])
print('c=',c)

print()

#3차원 텐서
d = np.array([[[0, 1, 2, 3],
               [2, 3, 4, 5],
               [4, 5, 6, 7]],

              [[1, 2, 3, 4],
               [3, 4, 5, 6],
               [5, 6, 7, 8]]])     #2x3x4인 3차원 텐서 (중복 리스트 사용)
print('d =', d)



# a= 1.5
 
# b= [1 2 3 4 5]
 
# c= [[1 2 3]
#  [4 5 6]]
 
# d = [[[0 1 2 3]
#   [2 3 4 5]
#   [4 5 6 7]]
# 
#  [[1 2 3 4]
#   [3 4 5 6]
#   [5 6 7 8]]]

 

 

 

 

Comments