РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
573 of 769 menu

Атрибут dataset

Атрибут dataset класса DataLoader хранит ссылку на объект набора данных, который был передан при создании экземпляра загрузчика. Этот атрибут позволяет получить доступ к исходным данным, их меткам и другим свойствам, определённым в пользовательском классе набора данных. Он полезен для проверки содержимого, получения длины набора или выполнения дополнительных операций с данными без создания нового загрузчика.

Синтаксис

dataloader.dataset

Пример

Создадим простой набор данных и загрузчик, а затем обратимся к атрибуту dataset для получения исходных данных:

import torch from torch.utils.data import DataLoader, TensorDataset # Создание данных data = torch.tensor([1, 2, 3, 4, 5]) labels = torch.tensor([0, 1, 0, 1, 0]) dataset = TensorDataset(data, labels) # Создание загрузчика dataloader = DataLoader(dataset, batch_size=2) # Доступ к атрибуту dataset ds = dataloader.dataset print(ds)

Результат выполнения кода:

<torch.utils.data.dataset.TensorDataset object at 0x7f8a1c2b3d90>

Пример

Используем атрибут dataset для получения количества элементов и проверки типа данных:

import torch from torch.utils.data import DataLoader, TensorDataset # Создание данных data = torch.tensor([[1, 2], [3, 4], [5, 6]]) labels = torch.tensor([0, 1, 0]) dataset = TensorDataset(data, labels) # Создание загрузчика dataloader = DataLoader(dataset, batch_size=2) # Получение длины набора через атрибут dataset ds_len = len(dataloader.dataset) print(f"Length of dataset: {ds_len}") # Проверка типа данных тензора t_data = dataloader.dataset.tensors[0] print(f"Data type: {t_data.dtype}")

Результат выполнения кода:

"Length of dataset: 3" "Data type: torch.int64"

Пример

Покажем, как атрибут dataset позволяет получить доступ к пользовательским свойствам набора данных:

import torch from torch.utils.data import DataLoader, Dataset # Пользовательский набор данных class CustomDataset(Dataset): def __init__(self, data, labels): self.data = data self.labels = labels self.description = "Custom dataset example" def __len__(self): return len(self.data) def __getitem__(self, idx): return self.data[idx], self.labels[idx] # Создание данных data = torch.tensor([10, 20, 30, 40]) labels = torch.tensor([1, 0, 1, 0]) dataset = CustomDataset(data, labels) # Создание загрузчика dataloader = DataLoader(dataset, batch_size=2) # Доступ к пользовательскому свойству desc = dataloader.dataset.description print(desc)

Результат выполнения кода:

"Custom dataset example"

Смотрите также

  • класс DataLoader,
    который создаёт итератор для загрузки данных
  • метод __iter__,
    который возвращает итератор по батчам данных
  • метод __len__,
    который возвращает количество батчей в загрузчике
  • атрибут batch_size,
    который содержит размер батча загрузчика
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить