Почему инициализация tf.keras model.fit () занимает так много времени? Как это можно оптимизировать? - PullRequest
1 голос
/ 20 апреля 2019

С помощью tenorflow.keras (2.0-alpha0 с поддержкой графического процессора) у меня очень долгое время инициализации с помощью tf.keras.model.fit () как для вновь скомпилированных моделей, так и для моделей, ранее сохраненных и перезагруженных.

Я полагаю, что это после того, как tf.data.Datasets () уже загружен и предварительно обработан, поэтому я не понимаю, что занимает так много времени и нет вывода из TF / Keras:

2019-04-19 23:29:18.109067: tensorflow/core/common_runtime/gpu/gpu_device.cc:1149] Created TensorFlow device
Resizing images and creating data sets with num_parallel_calls=8
Loading existing model to continue training.
Starting model.fit()
Epoch 1/100
2019-04-19 23:32:22.934394: tensorflow/core/kernels/data/shuffle_dataset_op.cc:150] Shuffle buffer filled.
2019-04-19 23:38:52.374924: tensorflow/core/common_runtime/bfc_allocator.cc:230] Allocator (GPU_0_bfc) ran out of memory trying to allocate 2.62GiB. The caller indicates that this is not a failure, but may mean that there could be performance gains if more memory were available.

3 минуты для загрузки модели и заполнения буфера перемешивания и 6 минут для ... что?И как можно оптимизировать эту загадочную работу?(5 ГГц 8700 КБ, 32 ГБ ОЗУ, твердотельный накопитель NVME, 1080ti 11G DDR5 - диспетчер задач показывает 100% однопоточное использование ЦП, умеренный доступ к диску, медленное расширение использования ОЗУ до ~ 28 ГБ максимум, нулевое использование ГП в течение этого периода).

Есть ли способ сериализации или хранения моделей более эффективным способом, чтобы их можно было регулярно запускать и останавливать без 10-минутных накладных расходов?

TF / Keras как-то лениво загружают данныеустанавливает и обрабатывает их в этот период?

...