인공지능

[Tensor의 구조] Shape & Reshape

sujin7837 2021. 1. 20. 00:49
반응형

머신러닝에서 데이터의 형태

스칼라(Scala): 0차원 텐서

배열(Arrary): 1차원 텐서

행렬(Matrix): 2차원 텐서

텐서(Tensor): N차원 텐서

 

Shape

-요소를 구분하는 구조

-데이터가 어떤 형태를 보이는지 설명하는 방식으로, Shape을 통해서 몇 개의 데이터가 어떤 구조로 구조화되어 있는지 파악이 가능

-텐서: 배열을 구성하는 요소를 구분하는 구조를 만들고, 그 곳에 요소를 할당한 것

 

Shape 예시 분류 설명 Sample
(8, ) 1차원 텐서 배열 형태로 8개의 요소로 구성되어 있습니다. [1, 2, 3, 4, 5, 6, 7, 8]
(2, 4) 2차원 텐서 두 개의 그룹으로 나누고, 각 그룹은 4개의 요소를 가지고 있는 구조입니다. [[1, 2, 3, 4], [5, 6, 7, 8]]
(2, 2, 2) 3차원 텐서 두 개의 그룹으로 나누고, 각 그룹별로 4개의 요소를 2개 그룹으로 분할하여 가지고 있습니다. [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]

 

Reshape

-특정 데이터의 구조를 변경하는 것으로, np.reshape 함수를 이용함

-데이터의 배치 순서는 변경하지 않고, 데이터를 구분하는 블록의 구조를 변경하는 것

 

 

squeeze, expand

tf.squeeze([[0], [1], [2]]).eval()
->array([0, 1, 2], dtype=int32)

tf.expand_dims([0, 1, 2], 1).eval()
->array([[0],
		 [1],
         [2]], dtype=int32)
반응형