Асинхронный вывод с моделью keras и prefetch_to_device - PullRequest
0 голосов
/ 16 ноября 2018

Я создал и обучил модель с помощью Keras API.Теперь мне нужно создать эффективную структуру для запуска логического вывода для большого количества входных выборок.Сложность в том, что не все эти образцы доступны с самого начала, но они выбираются во время вывода на основании результатов предыдущих образцов.

Я могу создать для этого базовый конвейер: один процесс выбирает сэмплы для помещения в очередь, а второй - для их извлечения и предварительной обработки.Затем эти образцы передаются в модель на графическом процессоре (которая инициализировалась только один раз в начале) с помощью Keras 'model.predict_on_batch(batch).
Однако это будет довольно медленно.Я предпочел бы иметь небольшую очередь на графическом процессоре , чтобы не было времени загрузки при передаче следующего пакета из ОЗУ в графический процессор.

Это представляется возможным с помощью API набора данных Tensorflow и prefetch_to_device [ 1 ].Но также, похоже, не совсем понятно использовать API набора данных с моделью Keras для вывода:

  1. Вывод с tf.data.Dataset запрашивался несколько раз: [ 2 ], [ 3 ] но ответы на самом деле не являются пояснительными, кроме приведенных фрагментов кода.Также я не уверен, как использовать предложения для моей контрольной точки модели Keras .hdf5-файл.
  2. Как асинхронно кормить набор данных без перестройки или перезагрузки графика каждый раз, когда первый процесс выбирает новые образцы?[ 4 ], [ 5 ]

Я не знаком с простым кодом тензорного потока без абстракций keras, поэтому я мог бы заметить что-то очевидное вссылки.Я был бы очень благодарен за подробные объяснения или ссылки на другие источники.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...