Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 쿠키(cookie)
- 세션(Session)
- 자료구조
- flask
- NoSQL
- Wil
- 연습
- 오블완
- github
- redis
- viewsets
- 개발공부
- 파이썬
- django
- nginx
- CS
- Doker
- 장고
- SQL
- 코딩테스트
- ERD
- Til
- 아티클 스터디
- 도커
- web
- git
- Python
- docker
- 티스토리챌린지
- JWT
Archives
- Today
- Total
SteadyDrills
[DL]Tensor? 본문
# Tensor의 shape (형태) 확인
print(f"tensor_from_list의 shape: {tensor_from_list.shape}")
# Tensor의 dtype (자료형) 확인
print(f"tensor_from_list의 dtype: {tensor_from_list.dtype}")
# Tensor의 rank (차원) 확인 (len(shape) 또는 .ndim 사용)
print(f"tensor_from_list의 rank: {len(tensor_from_list.shape)}")
목차
250205
Tensor란?
Tensor는 딥러닝 모델이 이미지, 텍스트, 음성 등 다양한 데이터를 처리할 때, 이러한 데이터를 수치화하여 표현하는
다차원 배열이며, 스칼라, 벡터, 행렬을 일반화한 개념이다. 딥러닝 모델의 입력 데이터, 중간 계산 결과, 모델의 가중치와 편향 등 모든 것이 Tensor 형태로 표현되며, Tensor는 GPU와 같은 병렬 처리 장치에서 효율적인 연산을 가능하게 해 딥러닝 모델의 빠른 학습을 돕는 핵심적인 역할을 한다.
Tensor의 속성과 종류
Tensor의 핵심 속성: 축(Axis)과 랭크(Rank/Dimension)
- 축 (Axis): Tensor의 각 차원을 의미하며, 0부터 시작하는 인덱스로 접근할 수 있다.
즉, 축은 확장되는 방향을 의미합니다. 데이터를 '정렬'하거나 '인덱싱'할 수 있는 방향
예를 들어, 스칼라(0차원 Tensor)는 값만 존재할 뿐 방향이 없어 축이 없고,행렬(2차원 Tensor)에서 첫 번째 축은 행, 두 번째 축은 열을 나타낸다. - 랭크 (Rank/Dimension): Tensor의 차원 개수(크기)를 의미하며, 0차원 Tensor는 랭크 0,
1차원 Tensor는 랭크 1, 2차원 Tensor는 랭크 2를 가진다. - 비슷한 개념 같은데 왜 굳이 구별을 할까?
랭크는 Tensor의 크기(magnitude) 또는 차원 수에 대한 정보만 제공하고, 축은 그 각각의 차원에 의미를 부여하고, 특정 차원을 지칭하는 데 사용되는 레이블(label) 또는 인덱스(index) 역할을 하기 때문이다.
Tensor의 종류
스칼라 (Scalar): 0차원 Tensor
스칼라는 단일 숫자 값을 내며, 크기 외에 다른 속성은 없다.
- 예시: 온도(), 나이(), 시험 점수()
벡터 (Vector): 1차원 Tensor
벡터는 숫자들이 일렬로 나열된 형태로, 방향과 크기를 가진다.
- 예시: 특정 단어의 임베딩 값 (예: [0.1, 0.5, -0.2, 0.8]), 한 학생의 과목별 점수 리스트 (예: [80, 90, 75])
행렬 (Matrix): 2차원 Tensor
행렬은 행(row)과 열(column)로 이루어진 사각형 형태의 숫자 배열이다.
- 예시: 흑백 이미지 (픽셀 값이 행과 열로 구성), 스프레드시트 데이터 (행은 레코드, 열은 속성)
3차원 Tensor 이상
3차원 이상의 Tensor는 더욱 복잡한 데이터를 표현하는 데 사용되고 있다.
- 3차원 Tensor 예시: 컬러 이미지 (높이, 너비, 색상 채널(RGB)의 세 축), 시계열 데이터 (샘플 수, 시간 단계, 특징 수)
- 4차원 Tensor 예시: 동영상 (프레임 수, 높이, 너비, 색상 채널) 또는 여러 개의 컬러 이미지 묶음 (배치 크기, 높이, 너비, 색상 채널)
PyTorch로 구현한 Tensor
Tensor 생성
import torch
import numpy as np
# 리스트로부터 Tensor 생성
python_list = [[1, 2, 3], [4, 5, 6]]
tensor_from_list = torch.tensor(python_list)
print(f"리스트로부터 생성된 Tensor:\n{tensor_from_list}")
# 넘파이 배열로부터 Tensor 생성
numpy_array = np.array([[7, 8], [9, 10]])
tensor_from_numpy = torch.from_numpy(numpy_array)
print(f"넘파이 배열로부터 생성된 Tensor:\n{tensor_from_numpy}")
Tensor 형태, 자료형, 차원 확인
# Tensor의 shape (형태) 확인
print(f"tensor_from_list의 shape: {tensor_from_list.shape}")
# Tensor의 dtype (자료형) 확인
print(f"tensor_from_list의 dtype: {tensor_from_list.dtype}")
# Tensor의 rank (차원) 확인 (len(shape) 또는 .ndim 사용)
print(f"tensor_from_list의 rank: {len(tensor_from_list.shape)}")