Teste die unbalancierte Datenpipeline
In diesem Schritt wirst du die Funktion unbalanced_data_pipeline
testen, um sicherzustellen, dass sie wie erwartet funktioniert.
Füge den folgenden Code in die Datei unbalanced_data_pipeline.py
hinzu.
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=}")
Im Block if __name__ == "__main__":
rufen wir die Funktion unbalanced_data_pipeline
mit den Beispiel-Daten und einer Batchgröße von 6 auf.
Führe die Datei unbalanced_data_pipeline.py
aus, um die Ausgabe zu sehen.
python unbalanced_data_pipeline.py
Die Ausgabe sollte ähnlich dem in der ursprünglichen Aufgabe angegebenen Beispiel aussehen:
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]]]
In diesem Schritt hast du die Funktion unbalanced_data_pipeline
getestet, um sicherzustellen, dass sie wie erwartet funktioniert. Die Funktion sollte jetzt in der Lage sein, die unbalancierten Daten zu verarbeiten und Batches von Daten mit annähernd balancierten Klassenverteilungen zurückzugeben.