Ich benutze Keras mit Tensorflow für Deep Learning. Ich arbeite mit etwas großen Datensätzen (Bildern), daher konnte ich nicht den gesamten Datensatz auf einmal laden, stattdessen lade ich Stapel von 8000 Bildern und benutze model.fit() für das Training (Code-Ausschnitt unten).Gibt es eine Möglichkeit, Daten parallel zu laden, wenn GPU Computing?
for epochs in range(50): # number of epochs
for i in range(num_batches): # 5 batches with 8000 images each
#### load the data here (train, val)
history_train = model.fit(train_image, train_gt, batch_size=16, epochs=1, verbose=1, shuffle=False, validation_data=(val_image,val_gt))
if history_train.history['val_loss'][0] < total_val_loss:
model.save_weights(weights_file)
total_val_loss = history_train.history['val_loss'][0]
Sicherlich kein effizienter Weg. Es braucht viel Zeit, um einen Stapel (von 8000 Bildern) zu laden, als die Zeit zu lernen (Laufzeit jeder Epoche). Gibt es einen besseren Weg, wie ich das machen könnte? oder eine andere Möglichkeit, es zu optimieren? Kann ich Daten (für die nächste Epoche) parallel laden, wenn die Berechnung (GPU) abgeschlossen ist, damit ich die Ladezeit sparen kann?