Dường như nếu một MonitoredTrainingSession làm một số hoạt động (khai thác gỗ?) Trước khi cuộc gọi đầu tiên .run (..), có nghĩa là khi tôi làm:tf.train.MonitoredTrainingSession và iterator reinitializable từ 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)
này mang lại các lỗi:
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
vì vậy, nó seams như nếu MonitoredTrainingSession được thực hiện một số hoạt động trước khi chạy hoạt động tôi nuôi nó, làm cho nó không thể sử dụng togeather với một iterator reinitializable từ Dataset.
Tôi chắc chắn rằng tôi đang thiếu thứ gì đó và muốn nghe những gì :-)
Để phần nào trả lời cho bản thân mình, tôi đã cố gắng để làm việc xung quanh nó bằng cách sử dụng: .ts._coordinated_creator.tf_sess.run (init_train) Nhưng điều này rất giống như một hack và không phải là một cách tiếp cận được đề nghị? –