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
Pytorch Perusteet

bookTyöskentely Datasettien Kanssa

Koneoppimismallien datan esikäsittelyn yksinkertaistamiseksi sekä tehokkaan eräkäsittelyn, sekoittamisen ja datan hallinnan 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ä.

Ladataan ensin datasarja ja tarkastellaan sen rakennetta, jotta ymmärrämme ominaisuudet ja kohdemuuttujan:

123
import 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())
copy

TensorDatasetin luominen

Seuraava vaihe on erottaa piirteet ja kohde, muuntaa ne PyTorch-tensoreiksi ja käyttää näitä tensoreita suoraan TensorDataset-olion luomiseen. Varmistetaan, että piirteet ovat tyyppiä float32 (liukulukujen käsittelyyn) 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://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
)

DataLoaderin käyttäminen eräajoon

Jotta voidaan mahdollistaa eräajo, sekoittaminen 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 (erät) 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 mahdolliset järjestyssidonnaisuudet ja estää mallia oppimasta virheellisiä kaavoja;
  3. Tehokas lataus: käsittelee automaattisesti datan noudon 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://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 )
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 uusiin, näkemättömiin datoihin.

Dataloaderin läpikäynti

Nyt voimme 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 esikäsittelyn yksinkertaistamiseksi sekä tehokkaan eräkäsittelyn, sekoittamisen ja datan hallinnan 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ä.

Ladataan ensin datasarja ja tarkastellaan sen rakennetta, jotta ymmärrämme ominaisuudet ja kohdemuuttujan:

123
import 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())
copy

TensorDatasetin luominen

Seuraava vaihe on erottaa piirteet ja kohde, muuntaa ne PyTorch-tensoreiksi ja käyttää näitä tensoreita suoraan TensorDataset-olion luomiseen. Varmistetaan, että piirteet ovat tyyppiä float32 (liukulukujen käsittelyyn) 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://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
)

DataLoaderin käyttäminen eräajoon

Jotta voidaan mahdollistaa eräajo, sekoittaminen 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 (erät) 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 mahdolliset järjestyssidonnaisuudet ja estää mallia oppimasta virheellisiä kaavoja;
  3. Tehokas lataus: käsittelee automaattisesti datan noudon 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://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 )
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 uusiin, näkemättömiin datoihin.

Dataloaderin läpikäynti

Nyt voimme 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