2017-01-25 1 views
4

Ich benutze die Keras-Bibliothek, um ein neuronales Netzwerk in Python zu erstellen. Ich habe die Trainingsdaten (txt-Datei) geladen, das Netzwerk initiiert und die Gewichte des neuronalen Netzes "angepasst". Ich habe dann Code geschrieben, um den Ausgabetext zu generieren. Hier ist der Code:Keras Modell load_weights für Neural Net

#!/usr/bin/env python 

# load the network weights 
filename = "weights-improvement-19-2.0810.hdf5" 
model.load_weights(filename) 
model.compile(loss='categorical_crossentropy', optimizer='adam') 

Mein Problem ist: bei der Ausführung der folgenden Fehler erzeugt werden:

model.load_weights(filename) 
NameError: name 'model' is not defined 

Ich habe folgende aber der Fehler immer noch auftritt hinzugefügt:

from keras.models import Sequential 
from keras.models import load_model 

Beliebig Hilfe wäre willkommen.

Antwort

9

müssen Sie zuerst das Netzwerk-Objekt erstellen, es genannt model, kompilieren und nach nur die

Arbeitsbeispiel model.load_weights(fname) nennen:

from keras.models import Sequential 
from keras.layers import Dense, Activation 


def build_model(): 
    model = Sequential() 

    model.add(Dense(output_dim=64, input_dim=100)) 
    model.add(Activation("relu")) 
    model.add(Dense(output_dim=10)) 
    model.add(Activation("softmax")) 
    model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy']) 
    return model 


model1 = build_model() 
model1.save_weights('my_weights.model') 


model2 = build_model() 
model2.load_weights('my_weights.model') 

# do stuff with model2 (e.g. predict()) 
+2

Vielen Dank viel vey, das perfekt funktioniert. Allerdings musste ich von keras.layers den Import von Dense, Aktivierung zu: von keras.layers.core importieren. – Deadulus