Я передаю имена файлов 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