Максимальный балл: | 10 |
Требуется реализовать различные способы загрузки датасета для обучения:
tf.keras.utils.image_dataset_from_directory
. Реализация должна поддерживать следующие аргументы: directory, batch_size, image_size, shuffle, seed, validation_split, subset
; и возвращать объект класса tf.data.Dataset
. Элементом датасета является пара батч изображений и их классов. Альтернативно на pytorch реализовать аналогичную функцию, возвращающую torch.utils.data.DataLoader
.
def load_dataset(path: str, batch_size: int, image_size: tuple[int, int], shuffle: bool, split: str) -> tuple[tf.data.Dataset, dict[int, str]]:
'''Given a `path` to a csv index file loads one of the dataset splits. Paths in the index are assumed to be relative to the csv file. The file contains three columns: "filepaths", "labels" and "data set", path to the image, image label and dataset split respectively.
Arguments:
path: path to the csv index file
batch_size: size of batches in the dataset
image_size: size to resize the images to
shuffle: whether to shuffle the index. If False original index order is preserved
split: split to use. One of "train", "valid" or "test"
Returns:
The loaded dataset
A dictionary mapping class indices to class names'''
...
Альтернативно на pytorch реализовать аналогичную функцию, возвращающую torch.utils.data.DataLoader
.tf.keras.utils.PyDataset
. Классы должны повторять функционал функций, из предыдущих двух пунктов, включая возможность указать split. Альтернативно на pytorch реализовать интерфейс torch.utils.data.Dataset
, при этом __getitem__
должен возвращать один батч, вместо одного элемента датасета. Также, должна быть возможность итерироваться по этому объекту.Для каждой реализации необходимо продемонстрировать работу, проведя одну эпоху обучения любой модели на загруженном датасете.
Максимальное количество баллов за задачу — 10.
В качестве решения принимается файл с исходным кодом, например jupyter notebook. В систему требуется отправить ссылку на файл, размещённый в открытом доступе (Google Colab, Github, Google Drive и др.), указав среду разработки "Answer text
". После отправки решение необходимо сдать преподавателю лично.