[파이토치] 실전 인공지능으로 이어지는 딥러닝/ 딥러닝호형
🦿Data Loader
import torch # 파이토치 기본 라이브러리
import torchvision # 이미지 관련 된 파이토치 라이브러리
import torchvision.transforms as tr # 이미지 전처리 기능들을 제공하는 라이브러리
from torch.utils.data import DataLoader, Dataset # 데이터를 모델에 사용할 수 있도록 정리해 주는 라이브러리
import numpy as np # 넘파이 기본 라이브러리
from torch.utils.data import Dataset
class MyDataset(Dataset):
def __init__(self):
def __getitem__(self, index):
def __len__(self):
정형화 되지 않은 커스텀 데이터 정리하기
class TensorData(Dataset):
def __init__(self, x_data, y_data):
self.x_data = torch.FloatTensor(x_data) # 이미지 데이터를 FloatTensor로 변형
self.x_data = self.x_data.permute(0,3,1,2) # (이미지 수)x(높이)x(너비)x(채널 수) -> (배치 크기)x(채널 수)x(높이)x(너비)
self.y_data = torch.LongTensor(y_data) # 라벨 데이터를 LongTensor로 변형
self.len = self.y_data.shape[0]
def __getitem__(self, index):
return self.x_data[index], self.y_data[index] # 뽑아 낼 데이터를 적어준다.
def __len__(self):
return self.len
# 파이토치에서는 (배치 크기)x(채널 수)x(너비)x(높이) 데이터가 사용 되므로 원래 데이터 (이미지 수)x(높이)x(너비)x(채널 수)를 변경해야만 한다.
# permute에서 0(이미지 수), 1(높이), 2(너비), 3(채널 수)을 0(이미지 수), 3(채널 수), 1(높이),2 (너비)로 바꿔주는 것이기 때문에
# .permute(0,3,1,2)을 사용하는 것이다.
train_data = TensorData(train_images,train_labels) # 텐서 데이터 불러오기
train_loader = DataLoader(train_data, batch_size=10, shuffle=True) # 미니 배치 형태로 데이터 갖추기
dataiter = iter(train_loader)
images, labels = next(dataiter)
print(images.size(), labels.size())
텐서 데이터 로드
미니 배치 형태로 바꾸기
테스트 뽑아보기
'🤖 AI > AI' 카테고리의 다른 글
🔬sLLM 학습하기 : 성능 평가 파이프라인 (0) | 2024.10.24 |
---|---|
🔬sLLM 학습하기 :Text2SQL 데이터셋 (2) | 2024.10.24 |
🦿딥러닝 실전 : 파이토치 입문 (0) | 2024.10.15 |
🦿딥러닝 개념 : 여러 가지 학습 방법과 XAI (2) | 2024.10.14 |
🦿딥러닝 개념 : 인공 신경망의 성능 개선 (0) | 2024.10.14 |