Il semble que si un MonitoredTrainingSession faire certaines opérations (exploitation forestière?) Avant le premier appel à .RUN (..), ce qui signifie que lorsque je fais:tf.train.MonitoredTrainingSession et reinitializable iterator du dataset
train_data = reader.traindata() # returns a tf.contrib.data.Dataset
it = tf.contrib.data.Iterator.from_structure(train_data.output_types, train_data.output_shapes)
init_train = it.make_initializer(train_data)
ne = it.get_next()
ts = tf.train.MonitoredTrainingSession(checkpoint_dir=save_path)
... no calls to ts.run ...
ts.run(init_train)
Cela donne l'erreur:
FailedPreconditionError (see above for traceback): GetNext() failed because the iterator has not been initialized. Ensure that you have run the initializer operation for this iterator before getting the next element
il coutures comme si le MonitoredTrainingSession fait certaines opérations avant de lancer l'opération, je le nourrir, ce qui rend impossible l'utilisation togeather avec un iterator reinitializable de Dataset.
Je suis sûr que je manque quelque chose et je serais ravi d'entendre ce que :-)
Pour répondre en partie à moi-même, j'ai réussi à contourner le problème en utilisant: .ts._coordinated_creator.tf_sess.run (init_train Mais cela ressemble beaucoup à un hack et pas une approche recommandée? –