7
看來,如果一個MonitoredTrainingSession第一次調用之前做一些操作(記錄?)到.RUN(..),這意味着當我這樣做:tf.train.MonitoredTrainingSession並重新初始化的迭代器從數據集
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運行操作我喂之前做一些操作,使其無法togeather從數據集一個重新初始化的迭代器使用。
我相信我失去了一些東西,很想聽聽:-)
部分地回覆我,我設法通過各種各樣的變通方法: .ts._coordinated_creator.tf_sess.run(init_train ) 但這非常感覺像是一個黑客,而不是一個推薦的方法? –