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
'🤖 AI' 카테고리의 다른 글
[DNN] 신경망의 구조 (0) | 2022.02.07 |
---|---|
[DNN] 그래디언트, 옵티마이저 정리 (0) | 2021.10.02 |
[CNN]CNN모델의 이해 (0) | 2021.09.20 |
[Tensorflow_Keras_API] tf.keras.utils.get_file : 데이터 다운로드 메서드 (0) | 2021.07.21 |
[Jupyter Notebook] 매직 키워드(매직 커맨드 '%') (0) | 2021.07.05 |