Генератор не имеет атрибута __next__ и не является итератором с помощью `tf.data.Dataset.from_generator` - PullRequest
0 голосов
/ 04 марта 2020

Я использую tf.data.Dataset.from_generator для ускорения скорости чтения, однако кажется, что tf.keras не может повторно определить tensorflow.python.data.ops.iterator_ops.Iterator.

Я обнаружил, что model.fit_generator проверит генератор через проверку атрибута __next__ или с помощью next() получите следующую партию. Однако, как показывает следующий код:

tf_gener даже не является итератором , и я могу получить только следующий пакет, используя gen.get_next()

tf_gener = tf.data.Dataset.from_generator(self._gen.data_gener, output_types=(tf.float64, tf.uint8),
                                                  output_shapes=((256, 512), (self.class_num)),
                                                  args=(filep, self.spec_dir, aug),
                                                  )
gen =  tf_gener.repeat().batch(batchsize).cache().prefetch(tf.contrib.data.AUTOTUNE).make_initializable_iterator()

Is есть какая-то ошибка, которую я сделал?

...