Когда `tf.data.TFRecordsDataset` имеет num_parallel_read = 2 и dr aws из набора tf.dataset, перед запуском он извлекает 8 файлов, а не 2, как ожидалось - PullRequest
1 голос
/ 04 февраля 2020

Я передаю имена файлов tfrecord в TFRecordDataset из набора данных генератора, который обрабатывает получение и размещение файлов tfrecords локально по мере необходимости. Файлы tfrecords велики и в целом не помещаются в локальную файловую систему. Я помещаю их на оперативный диск для ускорения передачи, и поэтому беспокоюсь о том, сколько я поставил в очередь за раз.

ds = tf.data.Dataset.from_generator(generator=self.gen_tfrecords_files, output_types=tf.string, output_shapes=())
ds = tf.data.TFRecordDataset(filenames=ds, num_parallel_reads=2)

Я ожидал, что TFRecordDataset выберет 2 файла на время от моего генератора, однако он извлекает 8 файлов из моего генератора, прежде чем он когда-либо начнет тренироваться. У меня нет какой-либо существенной предварительной загрузки в конвейере.

Может кто-нибудь объяснить, почему TFRecordDataset тянет гораздо больше файлов, чем диктует num_parallel_read?

TF 1.14.0

...