Как преобразовать изображения в TFRecords с помощью tf.data.Dataset наиболее эффективным способом - PullRequest
0 голосов
/ 08 февраля 2020

Я совершенно сбит с толку количеством бесполезных сообщений об ошибках, которые я получил, пытаясь использовать этот предположительно простой API для написания TFRecords таким образом, чтобы при каждом новом наборе данных не требовалось 30 минут.

Задача:

Я хотел бы передать список путей к изображениям и список меток в tf.data.Dataset, проанализировать их параллельно, чтобы прочитать изображения и кодировать как tf.train.Examples используйте tf.data.Dataset.shard, чтобы распределить их по разным осколкам TFRecord (например, train-001-of-010.tfrecord, train-002-of-010.tfrecord, et c.) и, наконец, для каждого осколка запишите их в соответствующий файл.

Так как я отлаживал это часами, я не получил ни одной конкретной ошибки, чтобы исправить ее, иначе я бы предоставил ее. Я изо всех сил пытался найти какой-либо современный учебник, который не (а) не приходит с 2017 года и не использует бегунов очередей, (б) использует tf.Session (я использую tennflowflow 1.15, но официальные документы постоянно говорят мне поэтапно вне сеансов), (c) Удобно создавать записи в чистом виде python, что делает простое руководство, но слишком медленным для любого реального приложения, или (d) использовать уже созданные TFRecords и просто пропустить весь процесс.

При необходимости я могу привести пример того, о чем я говорю. Но так как я застреваю на каждом уровне процесса, на данный момент это кажется бесполезным.

Tldr:

Если кто-то использовал tf.data.Dataset для параллельного создания осколков TFRecord пожалуйста, укажите мне лучшее направление, чем у Google.

...