Arbeide med datasett
For å forenkle datapreparering for maskinlæringsmodeller og muliggjøre effektiv batch-prosessering, shuffling og datahåndtering, tilbyr PyTorch verktøyene TensorDataset
og DataLoader
.
Laste inn og inspisere datasettet
Vi bruker et datasett (wine.csv
) som inneholder data om ulike typer vin, inkludert deres egenskaper og tilhørende klasselabels.
Først skal vi laste inn datasettet og inspisere dets struktur for å forstå egenskapene og målvariabelen:
123import pandas as pd wine_df = pd.read_csv('https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv') print(wine_df.head())
Opprette et TensorDataset
Neste steg er å separere egenskaper og målvariabel, konvertere dem til PyTorch-tensorer, og bruke disse tensorene direkte for å opprette et TensorDataset
. Vi sørger for at egenskapene er av typen float32
(for håndtering av flyttall) og målvariabelen er av typen long
(en 64-bits heltallstype egnet for etiketter).
import pandas as pd
import torch
from torch.utils.data import TensorDataset
wine_df = pd.read_csv('https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv')
# Separate features and target
features = wine_df.drop(columns='quality').values
target = wine_df['quality'].values
# Create TensorDataset
wine_dataset = TensorDataset(
torch.tensor(features, dtype=torch.float32), # Features tensor
torch.tensor(target, dtype=torch.long) # Target tensor
)
Bruke DataLoader for batch-prosessering
For å legge til rette for batch-prosessering, shuffling og effektiv datalasting under trening, pakker vi inn TensorDataset
i en DataLoader
. Dette steget er avgjørende for å håndtere datastrømmen til modellen under trening, spesielt når man arbeider med større datasett. DataLoader
gir oss mulighet til å:
- Batch-prosessere: dele opp dataene i mindre, håndterbare deler (batcher) for trening, noe som optimaliserer minnebruk og tillater gradientoppdateringer etter hver batch;
- Shuffle: randomisere rekkefølgen på datasettet, noe som bidrar til å bryte opp innebygd rekkefølge i dataene og hindrer modellen i å lære tilfeldige mønstre;
- Effektiv lasting: automatisk håndtere innhenting og forhåndsprosessering av data for hver batch under trening, noe som reduserer overhead.
123456789101112131415161718import pandas as pd import torch from torch.utils.data import TensorDataset, DataLoader wine_df = pd.read_csv('https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv') # Separate features and target features = wine_df.drop(columns='quality').values target = wine_df['quality'].values # Create TensorDataset wine_dataset = TensorDataset( torch.tensor(features, dtype=torch.float32), # Features tensor torch.tensor(target, dtype=torch.long) # Target tensor ) # Wrap the dataset in a DataLoader wine_loader = DataLoader( wine_dataset, # TensorDataset batch_size=32, # Number of samples per batch shuffle=True # Randomize the order of the data )
Med denne oppsettet sørger DataLoader
for at modellen mottar datapartier effektivt og i tilfeldig rekkefølge. Dette er spesielt viktig ved trening av nevrale nettverk, da det hjelper modellen å generalisere bedre til ukjente data.
Iterere over DataLoader
Vi kan nå iterere over DataLoader
for å få tilgang til datapartier. Hvert parti inneholder en tuple (batch_features, batch_targets)
:
123456789101112131415161718192021222324import pandas as pd import torch from torch.utils.data import TensorDataset, DataLoader wine_df = pd.read_csv('https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv') # Separate features and target features = wine_df.drop(columns='quality').values target = wine_df['quality'].values # Create TensorDataset wine_dataset = TensorDataset( torch.tensor(features, dtype=torch.float32), # Features tensor torch.tensor(target, dtype=torch.long) # Target tensor ) # Wrap the dataset in a DataLoader wine_loader = DataLoader( wine_dataset, # TensorDataset batch_size=32, # Number of samples per batch shuffle=True # Randomize the order of the data ) # Iterate through batches for batch_idx, (batch_features, batch_targets) in enumerate(wine_loader): print(f"Batch {batch_idx+1}") print(f"Features: {batch_features}") print(f"Targets: {batch_targets}") print("-" * 30)
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 5
Arbeide med datasett
Sveip for å vise menyen
For å forenkle datapreparering for maskinlæringsmodeller og muliggjøre effektiv batch-prosessering, shuffling og datahåndtering, tilbyr PyTorch verktøyene TensorDataset
og DataLoader
.
Laste inn og inspisere datasettet
Vi bruker et datasett (wine.csv
) som inneholder data om ulike typer vin, inkludert deres egenskaper og tilhørende klasselabels.
Først skal vi laste inn datasettet og inspisere dets struktur for å forstå egenskapene og målvariabelen:
123import pandas as pd wine_df = pd.read_csv('https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv') print(wine_df.head())
Opprette et TensorDataset
Neste steg er å separere egenskaper og målvariabel, konvertere dem til PyTorch-tensorer, og bruke disse tensorene direkte for å opprette et TensorDataset
. Vi sørger for at egenskapene er av typen float32
(for håndtering av flyttall) og målvariabelen er av typen long
(en 64-bits heltallstype egnet for etiketter).
import pandas as pd
import torch
from torch.utils.data import TensorDataset
wine_df = pd.read_csv('https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv')
# Separate features and target
features = wine_df.drop(columns='quality').values
target = wine_df['quality'].values
# Create TensorDataset
wine_dataset = TensorDataset(
torch.tensor(features, dtype=torch.float32), # Features tensor
torch.tensor(target, dtype=torch.long) # Target tensor
)
Bruke DataLoader for batch-prosessering
For å legge til rette for batch-prosessering, shuffling og effektiv datalasting under trening, pakker vi inn TensorDataset
i en DataLoader
. Dette steget er avgjørende for å håndtere datastrømmen til modellen under trening, spesielt når man arbeider med større datasett. DataLoader
gir oss mulighet til å:
- Batch-prosessere: dele opp dataene i mindre, håndterbare deler (batcher) for trening, noe som optimaliserer minnebruk og tillater gradientoppdateringer etter hver batch;
- Shuffle: randomisere rekkefølgen på datasettet, noe som bidrar til å bryte opp innebygd rekkefølge i dataene og hindrer modellen i å lære tilfeldige mønstre;
- Effektiv lasting: automatisk håndtere innhenting og forhåndsprosessering av data for hver batch under trening, noe som reduserer overhead.
123456789101112131415161718import pandas as pd import torch from torch.utils.data import TensorDataset, DataLoader wine_df = pd.read_csv('https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv') # Separate features and target features = wine_df.drop(columns='quality').values target = wine_df['quality'].values # Create TensorDataset wine_dataset = TensorDataset( torch.tensor(features, dtype=torch.float32), # Features tensor torch.tensor(target, dtype=torch.long) # Target tensor ) # Wrap the dataset in a DataLoader wine_loader = DataLoader( wine_dataset, # TensorDataset batch_size=32, # Number of samples per batch shuffle=True # Randomize the order of the data )
Med denne oppsettet sørger DataLoader
for at modellen mottar datapartier effektivt og i tilfeldig rekkefølge. Dette er spesielt viktig ved trening av nevrale nettverk, da det hjelper modellen å generalisere bedre til ukjente data.
Iterere over DataLoader
Vi kan nå iterere over DataLoader
for å få tilgang til datapartier. Hvert parti inneholder en tuple (batch_features, batch_targets)
:
123456789101112131415161718192021222324import pandas as pd import torch from torch.utils.data import TensorDataset, DataLoader wine_df = pd.read_csv('https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv') # Separate features and target features = wine_df.drop(columns='quality').values target = wine_df['quality'].values # Create TensorDataset wine_dataset = TensorDataset( torch.tensor(features, dtype=torch.float32), # Features tensor torch.tensor(target, dtype=torch.long) # Target tensor ) # Wrap the dataset in a DataLoader wine_loader = DataLoader( wine_dataset, # TensorDataset batch_size=32, # Number of samples per batch shuffle=True # Randomize the order of the data ) # Iterate through batches for batch_idx, (batch_features, batch_targets) in enumerate(wine_loader): print(f"Batch {batch_idx+1}") print(f"Features: {batch_features}") print(f"Targets: {batch_targets}") print("-" * 30)
Takk for tilbakemeldingene dine!