Тестирование несбалансированного конвейера данных
В этом шаге вы протестируете функцию unbalanced_data_pipeline
, чтобы убедиться, что она работает как ожидается.
Добавьте следующий код в файл unbalanced_data_pipeline.py
.
if __name__ == "__main__":
data = [
[[1, 2, 5], [1, 0]],
[[1, 6, 0], [1, 0]],
[[4, 1, 8], [1, 0]],
[[7, 0, 4], [0, 1]],
[[5, 9, 4], [0, 1]],
[[2, 0, 1], [0, 1]],
[[1, 9, 3], [0, 1]],
[[5, 5, 5], [0, 1]],
[[8, 4, 0], [0, 1]],
[[9, 6, 3], [0, 1]],
[[7, 7, 0], [0, 1]],
[[0, 3, 4], [0, 1]],
]
for epoch in range(10):
batch_data = unbalanced_data_pipeline(data, 6)
batch_data = list(batch_data)
print(f"{epoch=}, {batch_data=}")
В блоке if __name__ == "__main__":
мы вызываем функцию unbalanced_data_pipeline
с примерами данных и размером пакета 6.
Запустите файл unbalanced_data_pipeline.py
, чтобы увидеть вывод.
python unbalanced_data_pipeline.py
Вывод должен быть похож на пример, приведенный в исходном задании:
epoch=0, batch_data=[[[1, 2, 5], [1, 0]], [[4, 1, 8], [1, 0]], [[1, 6, 0], [1, 0]], [[2, 0, 1], [0, 1]], [[7, 0, 4], [0, 1]], [[5, 9, 4], [0, 1]]]
epoch=1, batch_data=[[[4, 1, 8], [1, 0]], [[1, 2, 5], [1, 0]], [[1, 6, 0], [1, 0]], [[2, 0, 1], [0, 1]], [[9, 6, 3], [0, 1]], [[1, 9, 3], [0, 1]]]
epoch=2, batch_data=[[[4, 1, 8], [1, 0]], [[1, 2, 5], [1, 0]], [[1, 6, 0], [1, 0]], [[5, 5, 5], [0, 1]], [[7, 0, 4], [0, 1]], [[8, 4, 0], [0, 1]]]
epoch=3, batch_data=[[[1, 2, 5], [1, 0]], [[1, 6, 0], [1, 0]], [[4, 1, 8], [1, 0]], [[7, 7, 0], [0, 1]], [[8, 4, 0], [0, 1]], [[0, 3, 4], [0, 1]]]
epoch=4, batch_data=[[[4, 1, 8], [1, 0]], [[1, 6, 0], [1, 0]], [[1, 2, 5], [1, 0]], [[5, 5, 5], [0, 1]], [[0, 3, 4], [0, 1]], [[8, 4, 0], [0, 1]]]
epoch=5, batch_data=[[[1, 6, 0], [1, 0]], [[4, 1, 8], [1, 0]], [[1, 2, 5], [1, 0]], [[2, 0, 1], [0, 1]], [[7, 0, 4], [0, 1]], [[7, 7, 0], [0, 1]]]
epoch=6, batch_data=[[[1, 2, 5], [1, 0]], [[1, 6, 0], [1, 0]], [[4, 1, 8], [1, 0]], [[8, 4, 0], [0, 1]], [[5, 9, 4], [0, 1]], [[0, 3, 4], [0, 1]]]
epoch=7, batch_data=[[[1, 2, 5], [1, 0]], [[1, 6, 0], [1, 0]], [[4, 1, 8], [1, 0]], [[2, 0, 1], [0, 1]], [[0, 3, 4], [0, 1]], [[1, 9, 3], [0, 1]]]
epoch=8, batch_data=[[[1, 6, 0], [1, 0]], [[4, 1, 8], [1, 0]], [[1, 2, 5], [1, 0]], [[7, 7, 0], [0, 1]], [[2, 0, 1], [0, 1]], [[0, 3, 4], [0, 1]]]
epoch=9, batch_data=[[[1, 2, 5], [1, 0]], [[4, 1, 8], [1, 0]], [[1, 6, 0], [1, 0]], [[7, 0, 4], [0, 1]], [[0, 3, 4], [0, 1]], [[5, 5, 5], [0, 1]]]
В этом шаге вы протестировали функцию unbalanced_data_pipeline
, чтобы убедиться, что она работает как ожидается. Теперь функция должна быть способна обрабатывать несбалансированные данные и возвращать пакеты данных с приблизительно сбалансированным распределением классов.