В настоящее время я пытаюсь обучить модель, и мой входной конвейер построен на основе этого ответа здесь .Я хочу сохранить свою модель после каждой эпохи.Но после тренировок на несколько эпох тренировочный сбой.Я читал, что это потому, что он добавляет вход в качестве постоянного тензора на графике.Здесь предлагаются решения здесь , чтобы использовать tf.placeholder
для решения проблемы.К сожалению, это не решает проблему для меня.Входной конвейер выглядит следующим образом
....
filenames = [P_1]
dataset = tf.data.TFRecordDataset(filenames)
def _parse_function(example_proto):
keys_to_features = { 'data':tf.VarLenFeature(tf.float32)},
parsed_features = tf.parse_single_example(example_proto, keys_to_features)
return tf.sparse_tensor_to_dense(parsed_features['data'
# Parse the record into tensors.
dataset = dataset.map(_parse_function)
# Shuffle the dataset
dataset = dataset.shuffle(buffer_size=1000)
# Repeat the input indefinitly
dataset = dataset.repeat()
# Generate batches
dataset = dataset.batch(Batch_size)
# Create a one-shot iterator
iterator = dataset.make_one_shot_iterator()
data = iterator.get_next()
....
for i in range(epochs):
for ii in range(iteration):
image = sess.run(data)
....
saver.save(sess, 'filename')
Сообщение об ошибке выглядит следующим образом
[libprotobuf FATAL external/protobuf_archive/src/google/protobuf/message_lite.cc:68] CHECK failed: (byte_size_before_serialization) == (byte_size_after_serialization): tensorflow.GraphDef was modified concurrently during serialization.
terminate called after throwing an instance of 'google::protobuf::FatalException'
what(): CHECK failed: (byte_size_before_serialization) == (byte_size_after_serialization): tensorflow.GraphDef was modified concurrently during serialization.
Aborted