2017-03-02 4 views

Antwort

4

Angenommen, Sie haben das Google-Modell von InceptionNet im Bereich InceptionV1 und möchten es mit Ausnahme der letzten Ebene im Bereich InceptionRetrained, die Sie umschulen möchten, laden.

Vorausgesetzt, dass Sie bereits damit begonnen, die letzte Schicht Umschulung und Sie erstellt last_layer.ckpt Datei von saver2.save(session, 'last_layer.ckpt'), hier ist, wie das Netz von beiden Checkpoints wiederherzustellen.

saver1 = tf.train.Saver(var_list=tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='InceptionV1')) 
saver1.restore(session, 'inception_model_from_google.ckpt') 

saver2 = tf.train.Saver(var_list=tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='InceptionRetrained')) 
saver2.restore(session, 'last_layer.ckpt') 

Wenn Sie nur die letzte Schicht Umschulung sind, vergessen Sie nicht, die Ausbreitung des Gradienten das Netzwerk (spart Zeit) bis zu deaktivieren, indem das Optimierungsprogramm mit var_list Argument aufrufen.

tf.train.Optimizer(0.0001).minimize(
      loss, var_list=tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='Inceptionretrained')) 
Verwandte Themen