Ich habe ein Modell mit Tensorflow trainiert und während des Trainings die Batch-Normalisierung verwendet. Die Batch-Normalisierung erfordert, dass der Benutzer einen booleschen Wert is_training
übergibt, um festzulegen, ob sich das Modell in der Trainings- oder Testphase befindet.Das trainierte Tensorflow-Modell wiederherstellen, den mit einem Knoten verknüpften Wert bearbeiten und speichern
Wenn das Modell trainiert wurde, is_training
als Konstante gesetzt wurde, wie unten
is_training = tf.constant(True, dtype=tf.bool, name='is_training')
ich das trainierte Modell gespeichert haben
gezeigt, enthalten die Dateien Kontrollpunkt, .meta Datei, .index-Datei und eine .data . Ich möchte das Modell wiederherstellen und daraus Inferenz ziehen. Das Modell kann nicht umgeschult werden. Daher möchte ich das vorhandene Modell wiederherstellen, den Wert is_training
auf False
setzen und dann das Modell speichern. Wie kann ich den booleschen Wert bearbeiten, der diesem Knoten zugeordnet ist, und das Modell erneut speichern?
es einfacher gewesen wäre, wenn Sie 'is_training verwendet = tf.Variable..' eher als Konstante –
Gibt es einen Grund, warum' is_training' eine tensorflow konstant sein muss? Kann es nicht ein Python Bool sein? Beachten Sie, dass das Ändern von "is_training" in ein Python-Bool beim Wiederherstellen des Modells keine Fehler verursachen sollte. – GeertH
@GeertH Es kann sein, die Frage ist, wie setze ich "is_training" auf "False" nach dem Laden des Modells, dann speichern Sie es zurück. Wenn der Knoten also wiederhergestellt wird, hat er den Wert 'False'. – dpk