Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Робота з наборами даних | Більш Просунуті Концепції
Основи PyTorch

bookРобота з наборами даних

Для спрощення підготовки даних для моделей машинного навчання та забезпечення ефективної обробки пакетів, перемішування і керування даними, PyTorch надає утиліти TensorDataset та DataLoader.

Завантаження та огляд набору даних

Ми використаємо набір даних (wine.csv), що містить інформацію про різні види вина, включаючи їх характеристики та відповідні мітки класів.

Спочатку завантажимо набір даних і переглянемо його структуру, щоб зрозуміти ознаки та цільову змінну:

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

Створення TensorDataset

Наступний крок — відокремити ознаки та ціль, перетворити їх у тензори PyTorch і використати ці тензори безпосередньо для створення TensorDataset. Ми переконаємося, що ознаки мають тип float32 (для роботи з числами з плаваючою комою), а ціль — типу long (64-бітний цілий тип, придатний для міток).

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
)

Використання DataLoader для пакетної обробки

Для забезпечення пакетної обробки, перемішування та ефективного завантаження даних під час навчання ми обгортаємо TensorDataset у DataLoader. Цей крок є ключовим для керування потоком даних до моделі під час навчання, особливо при роботі з великими наборами даних. DataLoader дозволяє:

  1. Пакетна обробка: розбивати дані на менші, зручні для обробки частини (пакети) для навчання, що оптимізує використання пам'яті та дозволяє оновлювати градієнти після кожного пакета;
  2. Перемішування: випадковим чином змінювати порядок у наборі даних, що допомагає уникнути впливу початкового порядку та запобігає навчанню моделі хибним шаблонам;
  3. Ефективне завантаження: автоматично обробляти отримання та попередню обробку даних для кожного пакета під час навчання, зменшуючи накладні витрати.
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

З такою конфігурацією DataLoader забезпечує ефективну передачу пакетів даних до моделі та у випадковому порядку. Це особливо важливо для навчання нейронних мереж, оскільки допомагає моделі краще узагальнювати на невідомих даних.

Ітерація по DataLoader

Тепер можна ітеруватися по DataLoader, щоб отримувати пакети даних. Кожен пакет містить кортеж (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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 5

bookРобота з наборами даних

Свайпніть щоб показати меню

Для спрощення підготовки даних для моделей машинного навчання та забезпечення ефективної обробки пакетів, перемішування і керування даними, PyTorch надає утиліти TensorDataset та DataLoader.

Завантаження та огляд набору даних

Ми використаємо набір даних (wine.csv), що містить інформацію про різні види вина, включаючи їх характеристики та відповідні мітки класів.

Спочатку завантажимо набір даних і переглянемо його структуру, щоб зрозуміти ознаки та цільову змінну:

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

Створення TensorDataset

Наступний крок — відокремити ознаки та ціль, перетворити їх у тензори PyTorch і використати ці тензори безпосередньо для створення TensorDataset. Ми переконаємося, що ознаки мають тип float32 (для роботи з числами з плаваючою комою), а ціль — типу long (64-бітний цілий тип, придатний для міток).

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
)

Використання DataLoader для пакетної обробки

Для забезпечення пакетної обробки, перемішування та ефективного завантаження даних під час навчання ми обгортаємо TensorDataset у DataLoader. Цей крок є ключовим для керування потоком даних до моделі під час навчання, особливо при роботі з великими наборами даних. DataLoader дозволяє:

  1. Пакетна обробка: розбивати дані на менші, зручні для обробки частини (пакети) для навчання, що оптимізує використання пам'яті та дозволяє оновлювати градієнти після кожного пакета;
  2. Перемішування: випадковим чином змінювати порядок у наборі даних, що допомагає уникнути впливу початкового порядку та запобігає навчанню моделі хибним шаблонам;
  3. Ефективне завантаження: автоматично обробляти отримання та попередню обробку даних для кожного пакета під час навчання, зменшуючи накладні витрати.
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

З такою конфігурацією DataLoader забезпечує ефективну передачу пакетів даних до моделі та у випадковому порядку. Це особливо важливо для навчання нейронних мереж, оскільки допомагає моделі краще узагальнювати на невідомих даних.

Ітерація по DataLoader

Тепер можна ітеруватися по DataLoader, щоб отримувати пакети даних. Кожен пакет містить кортеж (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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 5
some-alt