Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Työskentely Datasettien Kanssa | Edistyneemmät Käsitteet
Quizzes & Challenges
Quizzes
Challenges
/
Pytorch Essentials

bookTyöskentely Datasettien Kanssa

Koneoppimismallien datan valmistelun yksinkertaistamiseksi sekä tehokkaan eräkäsittelyn, sekoittamisen ja datan käsittelyn mahdollistamiseksi PyTorch tarjoaa TensorDataset- ja DataLoader-apuohjelmat.

Datan lataaminen ja tarkastelu

Käytämme datasarjaa (wine.csv), joka sisältää tietoja erilaisista viineistä, niiden ominaisuuksista ja vastaavista luokkamerkinnöistä.

Ensiksi ladataan datasarja ja tarkastellaan sen rakennetta, jotta ymmärrämme ominaisuudet ja kohdemuuttujan:

123
import pandas as pd wine_df = pd.read_csv('https://content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv') print(wine_df.head())
copy

TensorDatasetin luominen

Seuraavaksi erotellaan piirteet ja kohde, muunnetaan ne PyTorch-tensoreiksi ja käytetään näitä tensoreita suoraan TensorDataset-olion luomiseen. Varmistetaan, että piirteet ovat tyyppiä float32 (liukulukuja varten) ja kohde on tyyppiä long (64-bittinen kokonaislukutyyppi, joka soveltuu luokkamerkinnöille).

import pandas as pd
import torch
from torch.utils.data import TensorDataset
wine_df = pd.read_csv('https://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
)

DataLoaderin käyttö eräajoon

Jotta voidaan mahdollistaa eräajo, sekoitus ja tehokas datan lataus koulutuksen aikana, kääritään TensorDataset DataLoader-olioon. Tämä vaihe on olennainen datan hallinnassa mallille koulutuksen aikana, erityisesti suurten aineistojen kanssa työskenneltäessä. DataLoader mahdollistaa:

  1. Eräajo: jakaa datan pienempiin, hallittaviin osiin (eriin) koulutusta varten, mikä optimoi muistin käyttöä ja mahdollistaa gradienttipäivitykset jokaisen erän jälkeen;
  2. Sekoittaminen: satunnaistaa aineiston järjestyksen, mikä auttaa poistamaan mahdollisia järjestyksiä datassa ja estää mallia oppimasta virheellisiä kaavoja;
  3. Tehokas lataus: käsittelee automaattisesti datan hakemisen ja esikäsittelyn jokaiselle erälle koulutuksen aikana, mikä vähentää ylikuormitusta.
123456789101112131415161718
import pandas as pd import torch from torch.utils.data import TensorDataset, DataLoader wine_df = pd.read_csv('https://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 )
copy

Tällä asetuksella DataLoader varmistaa, että malli vastaanottaa tietoa erissä tehokkaasti ja satunnaisessa järjestyksessä. Tämä on erityisen tärkeää neuroverkkojen koulutuksessa, sillä se auttaa mallia yleistämään paremmin aiemmin näkemättömään dataan.

Dataloaderin läpikäynti

Voimme nyt käydä läpi DataLoader-olion saadaksemme tietoa erissä. Jokainen erä sisältää tuplen (batch_features, batch_targets):

123456789101112131415161718192021222324
import 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)
copy

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 5

bookTyöskentely Datasettien Kanssa

Pyyhkäise näyttääksesi valikon

Koneoppimismallien datan valmistelun yksinkertaistamiseksi sekä tehokkaan eräkäsittelyn, sekoittamisen ja datan käsittelyn mahdollistamiseksi PyTorch tarjoaa TensorDataset- ja DataLoader-apuohjelmat.

Datan lataaminen ja tarkastelu

Käytämme datasarjaa (wine.csv), joka sisältää tietoja erilaisista viineistä, niiden ominaisuuksista ja vastaavista luokkamerkinnöistä.

Ensiksi ladataan datasarja ja tarkastellaan sen rakennetta, jotta ymmärrämme ominaisuudet ja kohdemuuttujan:

123
import pandas as pd wine_df = pd.read_csv('https://content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_2/wine.csv') print(wine_df.head())
copy

TensorDatasetin luominen

Seuraavaksi erotellaan piirteet ja kohde, muunnetaan ne PyTorch-tensoreiksi ja käytetään näitä tensoreita suoraan TensorDataset-olion luomiseen. Varmistetaan, että piirteet ovat tyyppiä float32 (liukulukuja varten) ja kohde on tyyppiä long (64-bittinen kokonaislukutyyppi, joka soveltuu luokkamerkinnöille).

import pandas as pd
import torch
from torch.utils.data import TensorDataset
wine_df = pd.read_csv('https://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
)

DataLoaderin käyttö eräajoon

Jotta voidaan mahdollistaa eräajo, sekoitus ja tehokas datan lataus koulutuksen aikana, kääritään TensorDataset DataLoader-olioon. Tämä vaihe on olennainen datan hallinnassa mallille koulutuksen aikana, erityisesti suurten aineistojen kanssa työskenneltäessä. DataLoader mahdollistaa:

  1. Eräajo: jakaa datan pienempiin, hallittaviin osiin (eriin) koulutusta varten, mikä optimoi muistin käyttöä ja mahdollistaa gradienttipäivitykset jokaisen erän jälkeen;
  2. Sekoittaminen: satunnaistaa aineiston järjestyksen, mikä auttaa poistamaan mahdollisia järjestyksiä datassa ja estää mallia oppimasta virheellisiä kaavoja;
  3. Tehokas lataus: käsittelee automaattisesti datan hakemisen ja esikäsittelyn jokaiselle erälle koulutuksen aikana, mikä vähentää ylikuormitusta.
123456789101112131415161718
import pandas as pd import torch from torch.utils.data import TensorDataset, DataLoader wine_df = pd.read_csv('https://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 )
copy

Tällä asetuksella DataLoader varmistaa, että malli vastaanottaa tietoa erissä tehokkaasti ja satunnaisessa järjestyksessä. Tämä on erityisen tärkeää neuroverkkojen koulutuksessa, sillä se auttaa mallia yleistämään paremmin aiemmin näkemättömään dataan.

Dataloaderin läpikäynti

Voimme nyt käydä läpi DataLoader-olion saadaksemme tietoa erissä. Jokainen erä sisältää tuplen (batch_features, batch_targets):

123456789101112131415161718192021222324
import 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)
copy

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5
some-alt