728x90

텐서(tensor) :

  • 인공신경망을 위한 데이터의 기본 구성 요소
  • 숫자 데이터를 위한 컨테이너
  • 임의의 차원 개수를 가짐
  • 텐서의 차원을 rank(축) 이라고 부름

스칼라(0D 텐서)

  • 하나의 숫자만 담고 있는 텐서
  • 스칼라 텐서의 Rank(축) 개수 는 0 (ndim ==0)

벡터(1D 텐서)

  • 숫자의 배열
  • 벡터 텐서의 Rank(축) 개수 는 1 (ndim ==1)
d1_tensor = np.array([1., 2., 3.]) # 소수점도 표시하라는 의미

행렬(2D 텐서)행렬:

  • 백터의 배열
  • 행렬 텐서의 Rank(축) 개수 는 2 (ndim ==2)
    • 행(Row) : 첫번째 Rank 기준으로 존재하는 원소
    • 열(Column) : 두번째 Rank 기준으로 존재하는 원소
d2_tensor= np.array([[1, 2, 3],[4, 5, 6]]) # 첫 번째 축은 두개의 원소, 두 번째 축은 세개의 원소를 가짐

3D 텐서:

  • 행렬의 배열
  • 3D 텐서의 Rank(축) 개수 는 3 (ndim ==3)
d3_tensor = np.array([[[1, 2, 3], [4, 5, 6]],[[-1, -2, -3],[-4, -5, -6]]])

텐서의 핵심 속성

축의 개수(rank) :

  • 텐서의 차원을 의미 함
  • 0차원, 1차원, 2차원 텐서는 각각 스칼라, 벡터, 행렬 이라는 이름으로 불림
  • Numpy 로 만든 텐서의 경우 ndim 속성 값으로 확인 가능
print(d0_tensor.ndim)
print(d1_tensor.ndim)
print(d2_tensor.ndim)
print(d3_tensor.ndim)

크기(shape) :

  • 텐서의 각 축 마다 얼마의 차원이 있는지를 나타내는 값
  • Numpy 로 만든 텐서의 경우 shape 속성 값으로 확인 가능
print(d0_tensor)
d0_tensor.shape
'''
3
()
'''

print(d1_tensor)
d1_tensor.shape 
'''
[1. 2. 3.]
(3,) # 1개의 축을 가지고 있고, 원소는 3개를 가짐(, 표시는 튜플의 특성인데 
두번째 요소가 없으면 그냥 ,만 표시함)
'''

print(d2_tensor)
d2_tensor.shape
'''
[[1 2 3]
 [4 5 6]]
(2, 3)
'''

print(d3_tensor)
d3_tensor.shape
'''
[[[ 1  2  3]
  [ 4  5  6]]

 [[-1 -2 -3]
  [-4 -5 -6]]]
(2, 2, 3)
'''

데이터 타입(dtype) :

  • 텐서에 포함된 데이터의 타입
  • float32, uint8, float64 들이 될 수 있음
print(d0_tensor)
d0_tensor.dtype
'''
3
dtype('int64')
'''

print(d1_tensor)
d1_tensor.dtype
'''
[1. 2. 3.]
dtype('float64')
'''
728x90