본문 바로가기

ML & AI Theory

텐서플로, 랭크와 텐서를 확인하는 방법

반응형

텐서는 데이터를 담고 있는 다차원 배열에 대한 일반화된 수학적 용어입니다. 텐서 차원을 일반적으로 랭크라고 합니다. 

 

지금까지는 대부분 랭크0에서 랭크2사이 텐서를 다루었습니다. 예를 들어 정수나 실수처럼 숫자 하나로 이루어진 스칼라는 랭크 0인 텐서입니다. 벡터는 랭크 1인 텐서입니다. 행렬은 랭크 2인 텐서입니다. 텐서 표기는 더 고차원으로 일반화될 수 있습니다. 여러 개의 컬러 채널을 가진 이미지를 다루기 위해 랭크 3인 입력과 랭크 4인 가중치 텐서를 사용합니다.

 

import tensorflow as tf
import numpy as np

t1 = tf.constant(np.pi)
t2 = tf.constant([1,2,3,4])
t3 = tf.constant([[1,2], [3,4]])

#랭크를 구합니다. 
r1 = tf.rank(t1) 
r2 = tf.rank(t2) 
r3 = tf.rank(t3)

#크기를 구합니다.
s1 = t1.get_shape()
s2 = t2.get_shape()
s3 = t3.get_shape()

print('Size ', s1, s2, s3)
print('Rank ', r1.numpy(), r2.numpy(), r3.numpy())
Size  () (4,) (2, 2)
Rank  0 1 2

결과에서 보듯이 t1텐서는 단순한 스칼라이므로 랭크가 0입니다(크기가 ()입니다.). t2벡터는 네개의 원소를 가지므로 랭크가 1입니다. 크기는 원소 하나로 이루어진 튜플(4, )입니다. 마지막으로2X2행렬인 t3의 랭크는 2입니다. 이 텐서 크기는 (2, 2)튜플입니다. 

반응형