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.
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.
Folgende APIs sind zur Zeit verfügbar:
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
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).
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.
: 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.
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.
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!).