Führe die letzte Tensorflow-Ebene zurück, verwende aber weiterhin vorherige Imagine-Klassen

8

Mein Ziel ist es, den vorhandenen 1000 Imagenet-Klassen, die mit Tensorflow Inception ausgeliefert wurden, weitere Klassen hinzuzufügen. Jetzt könnte ich das Ganze einfach neu starten, indem ich mit bazel-bin/inception/imagenet_train von Grund auf neu trainiere, aber das würde jedes Mal sehr lange dauern, wenn ich eine neue Klasse hinzufügen möchte.

Ist es möglich, bazel-bin/tensorflow/examples/image_retraining/retrain --image_dir ~/flower_photos zu verwenden, aber dann zur vorhandenen Etikettenausgabedatei hinzuzufügen?

Tut mir leid, ich bin ein Neuling.

    
HP. 05.05.2017, 07:10
quelle

2 Antworten

1

Man könnte schamlos eine zweite letzte Ebene hinzufügen, die sich auch auf die vorletzte Ebene bezieht ... Natürlich ist das eine Art Hack und nicht praktisch, wenn man den Vorgang mehrmals machen möchte ...

Alternativ ersetzen Sie die Ausgabeschicht und bevor Sie das tun, speichern Sie die vorherigen Gewichtungen für diese Ebene manuell und laden dann das gesamte Netz mit etwas wie diesem neu optimistic restore und füge die alten Gewichte, die du auch separat nachladen musst, manuell in deine nun größere Gewichtsmatrix ein.

    
Xethoras 06.08.2017 07:43
quelle
0

Es gibt keine Standardlösung zum Hinzufügen neuer Klassen zu einem trainierten Klassifikatornetzwerk, und das ist keine einfache Aufgabe. Ich würde vorschlagen, Lernen ohne zu vergessen und die damit verbundene Arbeit zu lesen, um einen Überblick zu bekommen existierende Methoden und wählen Sie eine davon aus.

    
BlueSun 08.08.2017 11:35
quelle