본문 바로가기
인공지능(AI) 개발/Tensorflow

텐서(Tensor)란?

by Jaeseok_Shim 2019. 9. 21.

텐서(Tensor)는 텐서플로우(Tensorflow)에서 사용하는 자료형(Data type)임.

 

  • 다차원 배열로 Numpy 배열로 부터 시작함
  • Rank, Shape, Type 3가지 구성요소가 있음

Rank

Array의 차원(Dimension)에 해당함

 

  • 0 Rank : 스칼라 텐서, 0차원 텐서, ex. 3
  • 1 Rank : 1차원 벡터, ex. [1, 2, 3]
  • 2 Rank : 2차원 벡터, 행렬(Matrix)과 같음, ex. [[1, 2], [1, 2]]
  • 3 Rank : 3차원 벡터, ex. [[[1, 2], [1, 2]], [[1, 2], [1, 2]]]

Shape


몇 개의 행과 열을 갖는지를 의미함

  • 3은 shape [] 으로 표현됨
  • [1, 2, 3]은 shape [3] 으로 표현됨
  • [[1, 2, 3], [4, 5, 6]]은 shape[2, 3] 으로 표현됨
  • [[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]]은 shape[2, 2, 3] 으로 표현됨

 

Type


텐서 값의 자료형

 

  • [1, 2, 3] 은 int 형
  • [1.0, 2.0, 3.0] 은 float 형
  • [[1, 2, 3], [4.1, 5.5, 6.0]]은 float 형

ex. tf.float32(32bit float 형), tf.float64(64bit float 형), tf.int8(8bit integer 형), tf.int16(16bit integer 형), tf.int32(32bit integer 형),..

 

In [1]: import numpy as np

In [2]: a = np.array(3)

In [3]: a.ndim #Rank, Dimension
Out[3]: 0

In [4]: a.shape #Shape
Out[4]: ()

In [5]: a.dtype #Type
Out[5]: dtype('int32')

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

In [8]: a.ndim
Out[8]: 2

In [9]: a.shape
Out[9]: (2, 3)

In [10]: a.dtype
Out[10]: dtype('int32')

In [11]: a = np.array([[1, 2, 3], [4.1, 5.5, 6.0]]) # float 타입으로 변경

In [12]: a.dtype
Out[12]: dtype('float64')

 

댓글