Введение
В этом проекте вы научитесь реализовывать функцию для разделения набора данных на мини-пачки, что является распространенной техникой при обучении глубоких нейронных сетей.
🎯 Задачи
В этом проекте вы научитесь:
- Как реализовать функцию
data_pipelineдля разделения набора данных на мини-пачки - Как протестировать функцию
data_pipeline, чтобы убедиться, что она работает как ожидается
🏆 Достижения
После завершения этого проекта вы сможете:
- Разделить набор данных на мини-пачки с использованием функции
data_pipeline - Проверить функциональность функции
data_pipelineс помощью тестирования
Реализация мини-пачек
В этом шаге вы научитесь реализовывать функцию data_pipeline для разделения набора данных на мини-пачки.
Откройте файл data_pipeline.py в вашем текстовом редакторе.
Реализуйте функцию data_pipeline в соответствии с требованиями:
- Функция должна принимать два параметра:
data(список списков, содержащих целые числа) иbatch_size(целое число, представляющее размер каждой мини-пачки). - Функция должна возвращать генератор, который генерирует пакеты входных данных, где каждый пакет содержит
batch_sizeсписков целых чисел. - Если оставшееся количество данных меньше
batch_size, функция должна выводить все оставшиеся образцы.
Вот полная функция data_pipeline:
from typing import Generator, List
def data_pipeline(data: List[List[int]], batch_size: int) -> Generator[List[List[int]], None, None]:
"""
Эта функция принимает список списков, содержащих целые числа, и разделяет его на более мелкие 'пачки' заданного размера.
Она возвращает генератор, который последовательно генерирует эти пакеты.
Параметры:
data (List[List[int]]): Входной набор данных, список списков, содержащих целые числа.
batch_size (int): Размер каждого пакета, то есть количество списков целых чисел, которое должно входить в каждый пакет.
Возвращает:
Generator[List[List[int]], None, None]: Генератор, который генерирует пакеты входных данных, при этом каждый пакет содержит 'batch_size' списков целых чисел.
"""
for i in range(0, len(data), batch_size):
batch_data = data[i : i + batch_size]
yield batch_data
Сохраните файл data_pipeline.py.
Тестирование мини-пачек
В этом шаге вы протестируете функцию data_pipeline, чтобы убедиться, что она работает как ожидается.
Откройте файл data_pipeline.py в вашем текстовом редакторе.
Добавьте следующий код в конец файла для тестирования функции data_pipeline:
if __name__ == "__main__":
data = [[1, 2], [1, 3], [3, 5], [2, 1], [3, 3]]
batch_size = 2
batch_data = data_pipeline(data, batch_size)
for batch in batch_data:
print(f"{batch=}")
Сохраните файл data_pipeline.py.
Запустите файл data_pipeline.py в вашей терминале:
python data_pipeline.py
Вывод должен быть таким:
batch=[[1, 2], [1, 3]]
batch=[[3, 5], [2, 1]]
batch=[[3, 3]]
Этот вывод подтверждает, что функция data_pipeline работает как ожидается, деля входной набор данных на мини-пачки размером 2.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



