MonitoredTrainingSession が .run(..) への最初の呼び出しの前にいくつかの操作 (ログ記録?) を行っているように見えます。
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)
これにより、次のエラーが発生します。
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
そのため、MonitoredTrainingSession が操作を実行する前にいくつかの操作を実行しているように見え、データセットからの再初期化可能な反復子と一緒に使用することができなくなります。
私は何かが欠けていると確信しており、何かを聞きたいと思っています:-)