2016-07-23 7 views
0

Ich habe ein LSTM Modell L1 für das Vortraining mit den Parametern trainiert: W-lstm, b-lstm, Wy, by und so weiter.Wie man Teileparameter eines LSTM Modells wiederherstellt

Und ich möchte ein neues LSTM-Modell L2 mit verschiedenen Wy und durch, unter der Annahme, Wy2 und by2.

Also, wie nur die W-lstm und b-lstm von L1 wiederherstellen, und Wy2 und by2 initiieren? Dann Training.

saver.restore()?

Danke.

+0

Willkommen bei Stack Overflow. Sie erhalten die besten Antworten, indem Sie eine minimale Version Ihres Codes veröffentlichen, mit klaren Beispielen für das, was Sie versucht haben. Sehen Sie hier für mehr: http://StackOverflow.com/Help/Mcve – Toby

Antwort

-1

Wenn Sie den Sparer erstellen, können Sie ihm eine Liste der zu speichernden Variablen übergeben. Daher können Sie einen Sparer nur für das erste LSTM erstellen. Hier ist ein Beispiel dafür, was ich meine. (Beachten Sie, dass dies nur der Code ist, den ich in den Browser eingegeben habe, um einen Tippfehler zu finden.) Erstellen Sie einfach den LSTM innerhalb eines Variablenbereichs und erstellen Sie einen Speicher, der nur die Variablen in diesem Bereich speichert.

lstm = tf.nn.rnn_cell.BasicLSTMCel(1024) 
with tf.variable_scope('L1') as scope: 
    state = INITIAL_STATE 
    for t in range(TIME_STEPS): 
     output, state = lstm(input, state) 
     scope.reuse_variables() 

... 

l1_saver = tf.train.Saver([v for v in tf.all_variables() if 'L1' in v.name]) 
+0

gut, wenn ich das L1-Modell trainiere, habe ich alle Parameter gespeichert. Also, in dieser Situation, wie kann ich einen Teil der Parameter extrahieren, die ich brauche? – user6629312

+0

Sie können eine Wiederherstellung mit dem Alles-Saver durchführen und dann den spezifischen L1-Saver verwenden, um nur das Teil zu speichern, das Sie benötigen, und dann den L1-Saver in der Zukunft verwenden. – chasep255

+0

Sie wollen also das Modell wieder trainieren? mit zwei Sparern? ein All-Saver und ein spezifischer L1-Saver? – user6629312

Verwandte Themen