2.2.5 핵심 속성
텐서는 3개의 핵심 속성으로 정의됩니다.
• 축의 개수(랭크): 예를 들어 랭크-3 텐서에는 3개의 축이 있고, 행렬에는 2개의 축이 있습니다. 넘파이나 텐서플로 같은 파이썬 라이브러리에서는 ndim 속성에 저장되어 있습니다.
• 크기(shape): 텐서의 각 축을 따라 얼마나 많은 차원이 있는지를 나타낸 파이썬의 튜플(tuple)입니다. 예를 들어 앞에 나온 행렬의 크기는 (3, 5)이고 랭크-3 텐서의 크기는 (3, 3, 5)입니다. 벡터의 크기는 (5,)처럼 1개의 원소로 이루어진 튜플입니다. 배열 스칼라는 ()처럼 크기가 없습니다.
• 데이터 타입(파이썬 라이브러리에서는 보통 dtype이라고 부릅니다): 텐서에 포함된 데이터의 타입입니다. 예를 들어 텐서의 타입은 float16, float32, float64, uint8 등이 될 수 있습니다. 텐서플로에서는 string 텐서를 사용하기도 합니다.
이를 구체적으로 확인해 보기 위해 MNIST 예제에서 사용했던 데이터를 다시 들여다봅시다. 먼저 MNIST 데이터셋을 불러들입니다.
from tensorflow.keras.datasets import mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
그다음 train_images 배열의 ndim 속성으로 축의 개수를 확인합니다.
>>> train_images.ndim 3