2016-05-15 7 views
0

Ich trainiere neuronale Netze. Ich möchte sie in einer Code-unabhängigen Weise speichern, so dass sie von jemandem geladen werden können, der andere Software verwendet.System/Konvention für Code-unabhängige Serialisierung

Das einfache Beizen meiner Objekte ist nicht gut, weil die Gurke bricht, wenn sie in eine Umgebung geladen wird, in der der Code geändert oder verschoben wurde (was immer der Fall ist).

Also habe ich meine Objekte in dicts von primitiven Typen konvertiert und diese gebeizt. Ich pflege ein Modul, das diese Dicts wieder in Objekte konvertieren kann (der Typ des Objekts wird durch eine "Klassen" -Taste des Diktats definiert). Meine derzeitige Lösung fühlt sich chaotisch an.

Also ich frage mich, ob es ein Paket oder ein Design-Muster ist, die diese Art von „Code unabhängige Serialisierung“

+1

Sie müssen das Speicherformat vom Laufzeitformat trennen (eine Art von Stärkeverringerung vielleicht bis hinunter zu einem json-Dialekt - oder ein binäres Format, wenn die Größe zählt). Dann müssen Sie den Serialisierungscode trennen, um eine stabile API zu erhalten. Die api muss versioniert werden, und wenn Sie eine neue Version erstellen (a), muss die alte Version erhalten bleiben, so dass Sie alte Dateien lesen können, und (b) Sie eine Funktion benötigen, um Version x auf Version x + 1 zu aktualisieren Dateien, schreibe neue Dateien). – thebjorn

Antwort

0

Wenn Sie numpy/scipy für Ihr Projekt zu handhaben gemacht hat verwenden, können Sie Ihr Gewicht Matrizes retten könnte in matlab format.

+0

Nun ja, ich kann sie auch beizen ... Mein Problem besteht eher darin, wie man eine komplexere Struktur (zB ein Faltungsnetzwerk) speichern kann, damit es aus der Datei geladen werden kann, aber immer noch unabhängig vom Code. – Peter