====== Tegra-Dienste ====== Ziel ist es, auf einzelnen Boards identische Dienste zu haben, die per Lastverteilung angesprochen werden können. API muss noch formalisiert werden. Momentan wird ein einfacher TCP-Socket verwendet, auf dem zeilenweise URLs + newline “\n” übertragen werden. Jeder Service hat einen separaten TCP-Port. Die Rückgabe ist für alle Dienste momentan [(url, last_layer, last_fully_layer), …]. Zum Transport werden die Daten serialisiert, mittels marshal. Sowohl json als auch pickle waren in den Tests zu langsam. ====== Alex-Net ====== Erhält eine Liste von URLs, gibt für jede angefragte URL ein JSON-Objekt (url, softmax, fc7) zurück. Dass heißt, für jedes Bild wird eine Klassifikation durchgeführt und die Werte es Softmax-Layers + Fully Connected werden zurückgegeben. Bei mehreren URLs ist es eine Liste [(url1, sm1, fc1), …, (url_n, sm_n, fc_n)]. Der Dienst ist für die Outlier-Detection, der die Softmax-Werte verwendet. Da es mit den wenigen Kategorien nicht klappt, brauchen wir hierfür Alex! Der Dienst kann aber generell verwendet werden, um große Features für Bilder zu extrahieren. ====== Ernst-Net ====== Interface identisch, gibt allerdings (url, softmax, fc7_feat) zurück. Das Netz ist AlexNet + finetune und Modekategorien. ====== Bemerkungen ====== Der Speicher auf den Boards ist recht knapp, deshalb werden alle Bilder per Proxy geladen und nicht zwischengespeichert. In Normalfall ist der Proxy ein Image-Proxy, der extra runterskalierte, also kleine Bilder zurückgibt, da die CPU dann keine große Bilddaten runterrechnen muss. Es ist auch darauf zu achten, dass nur begrenzt viele Bilder auf einmal berechnet werden können, da sowohl Bilddaten, als auch Netzdaten und Resultate im Speicher gehalten werden müssen.