TF-Slim verwendet eine eigene Trainingsschleife. Allerdings würde ich gerne ein TF-Slim-Modell (Resnet50) verwenden, während ich immer noch meine eigene Tensorflow-Trainingsschleife verwende. Das TF-Slim-Modell gibt einfach die Vorhersage aus und ich berechne meinen eigenen Gesamtverlust. Ich kann das Modell ohne Fehler trainieren und der Trainingsfehler scheint zu konvergieren. Ich frage, weil ich Probleme mit der Batch-Normalisierung während der Auswertung hatte (der Fehler ist sehr hoch im Vergleich zum Trainingsfehler). Ich fand heraus, dass dies auf unzureichende Trainingsschritte zurückzuführen sein könnte. Aber ich möchte sicherstellen, dass ich TF-Slim nicht falsch verwende.Verwendung von Tensorflow TF-Slim ohne slim.learning.train()
Der TF-Slim Trainingsverfahren sieht wie folgt aus:
#create_train_op ensures that each time we ask for the loss, the
update_ops
# are run and the gradients being computed are applied too.
train_op = slim.learning.create_train_op(total_loss, optimizer)
logdir = ... # Where checkpoints are stored.
slim.learning.train(
train_op,
logdir,
number_of_steps=1000,
save_summaries_secs=300,
save_interval_secs=600):
Ich will nicht die train_op
aber so etwas wie dieses und rufen sess.run(train_tensor)
Does dann
def update_gradients(update_ops, optimizer, total_loss, variables_to_train, global_step, summaries):
for grad, var in gradients:
if grad is not None:
summaries.add(tf.summary.histogram(var.op.name + '/gradients', grad))
grad_updates = optimizer.apply_gradients(gradients,
global_step=global_step)
update_ops.append(grad_updates)
update_op = tf.group(*update_ops)
with tf.control_dependencies([update_op]):
train_tensor = tf.identity(total_loss, name='train_op')
return train_tensor
verwenden dies verursacht Probleme intern? Ich lese hier, dass man train_op
verwenden sollte: github issues
Oder ist es einfach nicht passieren darf, zum Beispiel train_tensor
in die slim.learning.train()
Funktion direkt?
Sie können versuchen, von 'slim.learning.train' in den Quellcode zu lesen und sezieren die Funktion für welche Teile Sie auch brauchen. Es sollte technisch gleich sein. – kwotsin
Es gibt einige Beispiele für das, was Sie in dieser Anleitung erreichen möchten. Ich hoffe, es hilft Ihnen dabei: https://github.com/tensorflow/models/blob/master/slim/slim_walkthrough.ipynb – RoccoLacatus