深層学習のためにテンソルフローのあるケラスを使用しています。少し大きめのデータセット(画像)を扱うので、データセット全体を一度に読み込むことはできませんでした。代わりに、私は8000画像のバッチを読み込み、model.fit()をトレーニング用に使用しました(下のコードスニペット)。gpuが計算中のときにデータを並列に読み込む方法はありますか?
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]
確かに効率的な方法ではありません。学習する時間(各エポックの実行時間)よりもバッチ(8000画像)を読み込むには多くの時間がかかります。私はこれを行うことができるより良い方法はありますか?またはそれを最適化するための他の方法?ローディング時間を節約できるように、コンピューティング(GPU)が完了したときに、データ(次のエポック)を並列に読み込むことはできますか?