728x90
학습 내용
- 텐서 : 텐서란 무엇인지, 어떤 구조로 되어있는지 등 텐서의 개념에 대해 살펴보자
- 텐서 타입 및 변환 : 텐서에 담을 수 있는 데이터의 타입에 대해 알아보고 텐서의 형태를 어떻게 바꾸는지 알아보자
- 텐서 연산 : 텐서 연산은 어떤 종류가 있고 어떻게 계산 할 수 있는지 살펴봅니다.
1. 텐서(Tensor)
- 데이터를 담기위한 컨테이너(container)
- 다차원 배열 또는 리스트 형태와 유사
- 일반적으로 수치형 데이터를 저장하고, 동적 크기를 가짐
- Rank : 축의 개수
- Shape : 형상(각 축에 따른 차원 개수)
- Type : 데이터 타입
Scalars (rank-0 tensors)
- 하나의 숫자만 담고 있는 텐서
- 축 개수 0개
import numpy as np
x = np.array(12)
x
1D Tensor(Vector)
- 1차원 텐서는 값들을 저장한 리스트와 유사한 텐서
- 벡터(vector)라고도 부르며, 하나의 축이 존재
2D Tensor(Matrix)
- 2차원 텐서는 행렬과 같은 모양으로 두개의 축이 존재
- 일반적인 수치, 통계 데이터셋이 여기에 해당
- 주로 샘플(samples)과 특성(features)을 가진 구조로 사용
3D Tensor
- 3차원 텐서는 큐브(cube)와 같은 모양으로 세개의 축이 존재
- 일반적으로 데이터가 연속된 시퀀스 데이터나 시간 축이 포함된 시계열 데이터에 해당
- 주로 샘플(samples), 특성(features), 타임스텝(timesteps)을 가진 구조로 사용
- 3차원 텐서를 이용하는 데이터로는 주식 가격 데이터셋, 시간에 따른 질병 발병 데이터 등이 존재
4D Tensor
- 4차원 텐서는 4개의 축이 존재
- 컬러 이미지 데이터가 대표적인 사례
- 흑백 이미지 데이터는 3D Tensor로 가능
- 주로 샘플(samples), 높이(height), 너비(width), 컬러 채널(channel)을 가진 구조로 사용
5D Tensor
- 5차원 텐서는 5개의 축이 존재
- 비디오 데이터가 대표적인 사례
- 주로 샘플(samples), 프레임(frames), 높이(height), 너비(width), 컬러 채널(channel)을 가진 구조로 사용
2. 텐서 타입 및 변환
2.1 텐서 타입
2.2 텐서 변환
3. 텐서 연산
3.1 0차원 텐서의 연산
- 텐서는 기본 산술과 다양한 연산을 수행 할 수 있습니다.
- 먼저 더하기와 빼기 연산을 수행해보겠습니다. 더하기 연산자인
+
와 빼기 연산자인-
를 이용해서 텐서간의 계산이 가능하고,add
와subtract
함수를 이용해서도 계산이 가능합니다. - 곱하기와 나누기 연산도
*
와/
연산자를 이용하는 방법과multiply
와divide
함수를 이용하는 방법이 있습니다. - 텐서 연산에서 주의할 점은 서로 다른 타입을 가지는 텐서는 연산이 되지 않고, 에러가 발생한다는 점입니다.
3.2 1차원 텐서의 연산
- 0차원의 상수값만 존재하는 텐서 계산 외에도 1차원 이상의 텐서에 대해서도 연산이 가능합니다. 다만 텐서의 모양이 직사각형이거나 연산이 가능하도록 형상을 맞춰주어야 합니다.
3.3 2차원 텐서의 연산
reduce_max()
: 텐서 값 중에서 최대값을 계산합니다.argmax()
: 최대값의 위치를 반환합니다.nn.softmax()
: 텐서의 값을 0과 1 사이의 값으로 보여줍니다.
728x90
'AIFFLE > STARTER' 카테고리의 다른 글
[DL] 5. 모델 저장과 콜백 (0) | 2024.05.07 |
---|---|
[DL] 3. 딥러닝 구조와 모델 (0) | 2024.05.02 |
[ML] 비지도학습 (0) | 2024.05.02 |
[DL] 1. 딥러닝 (0) | 2024.05.01 |
[ML] 지도학습(회귀) (0) | 2024.04.26 |