Ich habe eine eher "einfache" Frage. Wenn ich ein Netzwerk mit dem funktionalen API erstellen:Wie kann ich ein Netzwerk nach der Initialisierung mithilfe der funktionalen API ändern?
layer2 = Dense(8, name="layer2")(layer1)
und initialisieren es dann mit
model = Model(input=..., output=...)
was kann ich tun, wenn ich danach Schichten ändern? Wenn ich eine neue Ebene .pop()
und dann .append()
, ändert sich nichts - der Ausgang bleibt gleich. Ich denke, das liegt daran, dass die Ausgabe noch vorher definiert wurde.
Das genaue Problem, das ich habe, ist das: Ich lade ein vortrainiertes AlexNet mit seinen Gewichten, aber dann würde ich gerne die letzte Dense
Schicht für eine Klassifizierungsaufgabe von 8 Klassen statt 1000 umschulen. Dafür wollte ich fallen die letzten Ebenen und fügen Sie sie erneut hinzu.
Ich habe einen Workaround (Changing pretrained AlexNet classification in Keras) gefunden, aber ich denke, es sollte einen einfacheren Weg geben. Darüber hinaus denke ich nicht, dass meine Workaround mit einer GoogLeNet arbeiten wird, so würde ich wirklich gerne wissen (oder einen Hinweis), wie man mit dieser Situation umzugehen.
Vielen Dank! Jetzt weiß ich, dass die Layer die Gewichte halten, das macht die Dinge viel einfacher! –