PyTorch 데이터
실습, CSV 데이터 활용 중심의 DL 실험에서 직접 따라간 구현 흐름과 코드 증거를 다시 볼 수 있게 정리한 DL 학습 기록입니다. 본문은 실습, CSV 데이터 활용, 이미지 데이터 활용 순서로 핵심 장면을 먼저 훑고, class CustomDataset(D…, 이미지 데이터 활용, 실습 같은 코드로 실제 구현을 이어서 확인할 수 있습니다. md 원본과 58개 코드 블록, 54개 실행 셀을 함께 남겨 구현 흐름을 다시 따라갈 수 있게 정리했습니다. 주요 스택은 torch, numpy, pandas, PIL입니다.
빠르게 볼 수 있는 포인트: 실습, CSV 데이터 활용, 이미지 데이터 활용.
남겨둔 자료: md 원본과 58개 코드 블록, 54개 실행 셀을 함께 남겨 구현 흐름을 다시 따라갈 수 있게 정리했습니다. 주요 스택은 torch, numpy, pandas, PIL입니다.
주요 스택: torch, numpy, pandas, PIL, glob
Snapshot
| Item | Value |
|---|---|
| Track | DL |
| Type | Archive Note |
| Source Files | md |
| Code Blocks | 58 |
| Execution Cells | 54 |
| Libraries | torch, numpy, pandas, PIL, glob, matplotlib, sklearn |
| Source Note | (실습)PyTorch_데이터 |
What This Note Covers
실습
scikit-learn에서 California Housing 데이터셋을 불러온 뒤, 입력은 input_data에 저장하고 타깃은 target_data에 저장하세요.이때 input_data와 target_data 모두 데이터 타입은 float32로 지정해주세요. California Housing 데이터셋의 입력과 타깃을 짝지어 관리하는…
- 읽을 포인트: 실습 아래 코드와 함께 읽으면 구현 포인트가 더 또렷해지는 구간입니다.
CSV 데이터 활용
CSV 데이터 활용 코드를 직접 따라가며 CSV 데이터 활용 흐름을 확인했습니다.
- 읽을 포인트: CSV 데이터 활용 아래 코드와 함께 읽으면 구현 포인트가 더 또렷해지는 구간입니다.
이미지 데이터 활용
이미지 데이터 활용 코드를 직접 따라가며 이미지 데이터 활용 흐름을 확인했습니다.
- 읽을 포인트: 이미지 데이터 활용 아래 코드와 함께 읽으면 구현 포인트가 더 또렷해지는 구간입니다.
data 분할
data 분할 코드를 직접 따라가며 data 분할 흐름을 확인했습니다.
- 읽을 포인트: data 분할 아래 코드와 함께 읽으면 구현 포인트가 더 또렷해지는 구간입니다.
표준화
표준화 코드를 직접 따라가며 표준화 흐름을 확인했습니다.
- 읽을 포인트: 표준화 아래 코드와 함께 읽으면 구현 포인트가 더 또렷해지는 구간입니다.
데이터 로더
데이터 로더 코드를 직접 따라가며 데이터 로더 흐름을 확인했습니다.
- 읽을 포인트: 데이터 로더 아래 코드와 함께 읽으면 구현 포인트가 더 또렷해지는 구간입니다.
Why This Matters
데이터 파이프라인
- 왜 필요한가: 모델 성능 이전에 입력이 일정한 형식으로 잘 들어가야 학습과 평가가 안정적으로 반복됩니다.
- 왜 이 방식을 쓰는가: Dataset/DataLoader 구조는 데이터 읽기, 변환, 배치 처리를 분리해 코드 재사용성과 실험 반복성을 높여줍니다.
- 원리: 각 샘플을 Dataset이 제공하고, DataLoader가 이를 배치로 묶어 셔플·병렬 로딩·collate를 담당합니다.
Implementation Flow
- 실습: scikit-learn에서 California Housing 데이터셋을 불러온 뒤, 입력은 input_data에 저장하고 타깃은 target_data에 저장하세요.이때 input_data와 target_data 모두 데이터 타입은 float32로 지정해주세…
- CSV 데이터 활용: CSV 데이터 활용 코드를 직접 따라가며 CSV 데이터 활용 흐름을 확인했습니다.
- 이미지 데이터 활용: 이미지 데이터 활용 코드를 직접 따라가며 이미지 데이터 활용 흐름을 확인했습니다.
- data 분할: data 분할 코드를 직접 따라가며 data 분할 흐름을 확인했습니다.
- 표준화: 표준화 코드를 직접 따라가며 표준화 흐름을 확인했습니다.
- 데이터 로더: 데이터 로더 코드를 직접 따라가며 데이터 로더 흐름을 확인했습니다.
Code Highlights
class CustomDataset(Dataset)
class CustomDataset(Dataset)는 이 노트에서 핵심 구현을 보여주는 코드 블록입니다. 원본 데이터를 모델이 바로 받을 수 있는 샘플 구조로 바꾸기 위해 커스텀 Dataset을 정의하는 부분입니다.
class CustomDataset(Dataset):
def __init__(self):
self.x =[
[10,20],
[10,20],
[10,20],
[10,20],
[10,20]
]
self.y = [0,0,1,1,1]
def __len__(self):
return len(self.x)
def __getitem__(self, index):
input_data = self.x[index]
label = self.y[index]
return torch.tensor(input_data), torch.tensor(label)
이미지 데이터 활용
이미지 데이터 활용는 이 노트에서 핵심 구현을 보여주는 코드 블록입니다. 원본 데이터를 모델이 바로 받을 수 있는 샘플 구조로 바꾸기 위해 커스텀 Dataset을 정의하는 부분입니다.
class FlowerDataset(Dataset):
def __init__(self, image_paths):
self.image_paths = image_paths
def __len__(self):
return len(self.image_paths)
def __getitem__(self, index):
image_path=self.image_paths[index]
image = Image.open(image_path)
image_np = np.array(image)
return torch.tensor(image_np)
실습
실습는 이 노트에서 핵심 구현을 보여주는 코드 블록입니다. 코드 마지막 부분에서 0번 인덱스 데이터를 출력했을 때 다음과 같은 결과가 나와야 합니다.
class CalHousingDataset(Dataset):
def __init__(self):
cal_housing = datasets.fetch_california_housing()
self.input_data = cal_housing.data.astype(np.float32)
self.target_data = cal_housing.target.astype(np.float32)
def __len__(self):
return len(self.input_data)
def __getitem__(self, index):
input_tensor = torch.tensor(self.input_data[index])
target_tensor = torch.tensor(self.target_data[index])
return input_tensor, target_tensor
표준화
표준화는 이 노트에서 핵심 구현을 보여주는 코드 블록입니다. 코드 안에서는 데이터셋 클래스 정의, # 데이터 표준화 수행, if self.scaler 흐름이 주석과 함께 드러납니다.
from sklearn.preprocessing import StandardScaler
import torch
from torch.utils.data import Dataset
# 데이터셋 클래스 정의
class AbaloneDataset(Dataset):
def __init__(self, inputs, targets, scaler=None):
"""
초기화 메서드
:param inputs: 원본 입력 데이터 (numpy 배열)
:param targets: 레이블 데이터 (numpy 배열)
:param scaler: Scikit-learn의 StandardScaler 객체 (선택사항)
"""
self.original_inputs = inputs # 복원을 위해 원본 데이터 저장
self.targets = targets
self.scaler = scaler
self.inputs = self.scale_transform(inputs)
# # 데이터 표준화 수행
# if self.scaler:
# self.inputs = self.scaler.transform(inputs)
# else:
# self.inputs = inputs
def __len__(self):
return len(self.inputs)
def __getitem__(self, index):
# ... trimmed ...
Source Bundle
- Source path:
12_Deep_Learning/Code_Snippets/(실습)PyTorch_데이터.md - Source formats:
md - Companion files:
(실습)PyTorch_데이터.md - Note type:
code-note - Last updated in the source vault:
2026-03-08T03:33:14 - Related notes:
12_Deep_Learning_Code_Summary.md - External references:
localhost,storage.googleapis.com
Note Preview
scikit-learn에서 California Housing 데이터셋을 불러온 뒤, 입력은 input_data에 저장하고 타깃은 target_data에 저장하세요.이때 input_data와 target_data 모두 데이터 타입은 float32로 지정해주세요. California Housing 데이터셋의 입력과 타깃을 짝지어 관리하는 커스텀 Dataset 클래스 CaliforniaHousingDataset을 정의해 주세요.