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]]]