UD1 · Pipelines de datos para ML | MP03 · Desarrollo de componentes para sistemas de ML
Generacion de datasets para frameworks de entrenamiento
import torch
from torch.utils.data import Dataset, DataLoader
from sklearn.model_selection import train_test_split
class DatasetML(Dataset):
def __init__(self, X, y):
self.X = torch.tensor(X, dtype=torch.float32)
self.y = torch.tensor(y, dtype=torch.long)
def __len__(self):
return len(self.X)
def __getitem__(self, idx):
return self.X[idx], self.y[idx]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
X_train, X_val, y_train, y_val = train_test_split(
X_train, y_train, test_size=0.15, random_state=42, stratify=y_train
)
train_loader = DataLoader(DatasetML(X_train, y_train), batch_size=64, shuffle=True)
val_loader = DataLoader(DatasetML(X_val, y_val), batch_size=64, shuffle=False)
test_loader = DataLoader(DatasetML(X_test, y_test), batch_size=64, shuffle=False)
print(f"Train: {len(X_train)} | Val: {len(X_val)} | Test: {len(X_test)}")