Arbeta med Dataset
För att förenkla datapreparering för maskininlärningsmodeller och möjliggöra effektiv batchbearbetning, omblandning och datahantering tillhandahåller PyTorch verktygen TensorDataset
och DataLoader
.
Ladda och inspektera datasetet
Vi kommer att använda ett dataset (wine.csv
) som innehåller data om olika typer av vin, inklusive deras egenskaper och motsvarande klassetiketter.
Först ska vi ladda datasetet och inspektera dess struktur för att förstå egenskaperna och målvariabeln:
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())
Skapa ett TensorDataset
Nästa steg är att separera egenskaper och mål, konvertera dem till PyTorch-tensorer, och använda dessa tensorer direkt för att skapa ett TensorDataset
. Vi säkerställer att egenskaperna är av typen float32
(för hantering av flyttal) och målet är av typen long
(en 64-bitars heltalstyp som passar för 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
)
Använda DataLoader för batchbearbetning
För att underlätta batchbearbetning, omblandning och effektiv datainläsning under träning, kapslar vi in TensorDataset
i en DataLoader
. Detta steg är avgörande för att hantera dataflödet till modellen under träning, särskilt vid arbete med större datamängder. DataLoader
möjliggör:
- Batchbearbetning: delar upp data i mindre, hanterbara delar (batchar) för träning, vilket optimerar minnesanvändningen och möjliggör gradientuppdateringar efter varje batch;
- Omblandning: slumpmässig ordning av datamängden, vilket hjälper till att bryta eventuell inbyggd ordning i datan och förhindrar att modellen lär sig felaktiga mönster;
- Effektiv inläsning: hanterar automatiskt datahämtning och förbearbetning för varje batch under träning, vilket minskar 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 denna konfiguration säkerställer DataLoader
att modellen tar emot datapartier effektivt och i slumpmässig ordning. Detta är särskilt viktigt vid träning av neurala nätverk, eftersom det hjälper modellen att generalisera bättre till osedda data.
Iterera över DataLoader
Vi kan nu iterera över DataLoader
för att komma åt datapartier. Varje parti innehåller en tuppel (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)
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 5
Arbeta med Dataset
Svep för att visa menyn
För att förenkla datapreparering för maskininlärningsmodeller och möjliggöra effektiv batchbearbetning, omblandning och datahantering tillhandahåller PyTorch verktygen TensorDataset
och DataLoader
.
Ladda och inspektera datasetet
Vi kommer att använda ett dataset (wine.csv
) som innehåller data om olika typer av vin, inklusive deras egenskaper och motsvarande klassetiketter.
Först ska vi ladda datasetet och inspektera dess struktur för att förstå egenskaperna och målvariabeln:
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())
Skapa ett TensorDataset
Nästa steg är att separera egenskaper och mål, konvertera dem till PyTorch-tensorer, och använda dessa tensorer direkt för att skapa ett TensorDataset
. Vi säkerställer att egenskaperna är av typen float32
(för hantering av flyttal) och målet är av typen long
(en 64-bitars heltalstyp som passar för 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
)
Använda DataLoader för batchbearbetning
För att underlätta batchbearbetning, omblandning och effektiv datainläsning under träning, kapslar vi in TensorDataset
i en DataLoader
. Detta steg är avgörande för att hantera dataflödet till modellen under träning, särskilt vid arbete med större datamängder. DataLoader
möjliggör:
- Batchbearbetning: delar upp data i mindre, hanterbara delar (batchar) för träning, vilket optimerar minnesanvändningen och möjliggör gradientuppdateringar efter varje batch;
- Omblandning: slumpmässig ordning av datamängden, vilket hjälper till att bryta eventuell inbyggd ordning i datan och förhindrar att modellen lär sig felaktiga mönster;
- Effektiv inläsning: hanterar automatiskt datahämtning och förbearbetning för varje batch under träning, vilket minskar 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 denna konfiguration säkerställer DataLoader
att modellen tar emot datapartier effektivt och i slumpmässig ordning. Detta är särskilt viktigt vid träning av neurala nätverk, eftersom det hjälper modellen att generalisera bättre till osedda data.
Iterera över DataLoader
Vi kan nu iterera över DataLoader
för att komma åt datapartier. Varje parti innehåller en tuppel (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)
Tack för dina kommentarer!