User Tools

Site Tools


synapse

Synapse - Daten-Back-End für Inspeye

Stellt einen Dienst per HTTP zur Verfügung. Standard ist Port 1954/TCP, für die Entwickler-Version Port 1955/TCP. Kommunikation erfolgt per JSON (“application/json”), oder als HTML (“text/html”) im Debug-Mode. Der stabile Dienst wird mit dem Benutzer roland gestartet.

Setup

Läuft derzeit auf grapu (192.168.178.15), der DNS-Name ist grapu.fritz.box. Der Dienst wohnt derzeit in /home/roland/work/teachboard (Test), bzw. /home/timo/work/synapse (Entwicklung). Der Dienst kann -im Vordergrund- mittels python synapse.py –debug gestartet werden. Die Modelldateien werden dabei im Ordner './models' erwartet, der ein Link auf das globale Modell-Verzeichnis darstellt. Die Neural-Network-Lib (nn/*) muss im PYTHONPATH eingebunden sein.

API

Folgende APIs sind zur Zeit verfügbar:

  • desc: Liefert eine Liste von Tags für das angefragte Bild zurück.
  • classify: Liefert eine Liste von Kategorien mit den Wahrscheinlichkeiten zurück.
  • novelty: Liefert einen Wert 0=bekannt, 1=neu zurück

Hinweis: Bilder werden immer über eine eindeutig ObjectId referenziert, der Parameter lautet id. Die ID hat ein festes Format: 54b69330c40a87ae7290bebe.

Konkrete Beispiele:

Die angegebenen IDs sind rein fiktiv, bitte aus dem Brainboard aktuelle IDs auslesen

Quellcode

Sämtlicher Code für den Dienst liegt im playground-git (timo/teachboard). Der Quellcode für den Zugriff auf trainierte Modelle liegt im Zweig (timo/nn). Dort befinden sich die Modelle für die Forward-Propagation (nn/fprop/fprop_fashion.py), sowie die Werkzeuge zum Training einzelner Modelle (nn/models/fashion.py).

Training

Jedes einzelne Modell, z.B. warp zum Training der deskriptiven Tags, hat eine eigene Parameter-Datei (nn/models/parameters/WARP.params). Diese Enthält sämtliche Parameter zum Training und zur Nutzung des Modells. Die Dateien enthalten z.B. Werte für die Lernrate, wie viele Knoten, Art der Methode für das Training und wo die Daten zum eigentlichen Training liegen.

Novelty Detection

FIXME: wir brauchen ein Deploy-Mechanismus, der nicht von relativen Ordnern abhängt.

PYTHONPATH muss um …/playground/bengt/noveltyDetection/ erweitert werden. Beim Aufruf von classify wird in der json-Antwort dann ein Feld novelty ausgeliefert, welches 0.0 für „bekannte Kategorie“ und 1.0 für „unbekannte Kategorie“ enthält.

Updates

Falls Quellcode im Verzeichnis teachboard angepasst wurde, muss der Dienst -als roland(!)- einmal neu gestartet werden. D.h. alten Prozessen killen, neuen Prozess starten.

$ nohup python ./synapse.py &

Danach prüfen, dass der Dienst wirklich läuft und irgendwelche Ergebnisse liefert.

Modelle

Alle Modelldateien, vortrainierte, als auch unsere eigenen, landen ab jetzt in /var/local/data/models. Die Dateien müssen für die Gruppe nerds lesbar sein. DeCAF-Modelle sind dort ebenfalls vorhanden. Eine für alle nutzbare DeCAF-Installation liegt unter /var/local/decaf/decaf-release-master (Pfad in PYTHONPATH!).

synapse.txt · Last modified: 2024/04/11 14:23 by 127.0.0.1