====== WARNING: The Cloud is retired ====== The site is just kept for historical reasons ====== Neuron Cloud API / Enrichment Services ====== ===== tower01.picalike.corpex-kunden.de:7042/predict ===== url: http://tower01.picalike.corpex-kunden.de:7042/predict\\ url: http://dev01.picalike.corpex-kunden.de:7042/predict\\ oder LB: http://neuron-cloud.lb.int.picalike.corpex-kunden.de/predict\\ host: **tower01.picalike.corpex-kunden.de**\\ port: **7042**\\ service name: **/predict**\\ method: POST\\ Test-Service: http://pci01.picalike.corpex-kunden.de:12345 (im zookeeper, wird hin und wieder umgezogen)\\ parameters should be passed as json (requests json parameter) ===== Host ===== Right now (March 2020) the setup is as follows:\\ * Broker/Load Balancer * One instance on Sandy. All masters and workers have the IP published in their config files. No mone then one possible (unless you implement it, mach doch) * Masters * Tower01 * Dev01 - simple HTTP services that forward a workload to the LB and return the result. They ask the [[image_cloud|Image Cloud]] to download the url and send parameters and image (bytes) to LB. * Workers * tower01: everything with a gpu will work. Docker images are massiv. Take image batch and run neural network. ===== git ===== https://git.picalike.corpex-kunden.de/picalike/neuron_cloud_zmq_lb\\ https://git.picalike.corpex-kunden.de/picalike/neuron_cloud_master\\ https://git.picalike.corpex-kunden.de/picalike/neuron_cloud_worker ===== How to put a new model in live system ===== Change in “neuron_cloud_3.py” (master), in /predict endpoint → Add a the new model name in the beginning, in the “for in chuncks” and in pred_crops. For the workers: (All h5 are already in the workers) Copy the directory from some existing model and rename with the new model name. Put the h5, labels and mybe some new files (custom loss usw..) in all workers and in the new copied file. Now, we need to change the router.py, in line 60 with, the new get semi_net-name And in the line 159 a new if ===== deployment ===== Masters, Workers and Broker will start as Docker images, deployment works as allways (config.sh, build.sh, push.sh, deploy.sh) ===== parameters ===== * **json** = a dict with the following fields: ===== fiels in json: ===== * Image, as link or base64: * **url_list | myfile** = a list of img urls | image file as base64 string * Similarity-Network, one of: * **semi_net_inception_2 | semi_net_inception_3 | semi_net_inception_sk | semi_net_inception_4 | semi_net_inception_5 | semi_net_inception_6 | semi_net_inception_7 | semi_net_inception_8** = True\\ * Object-Detection-Network, one of: * **yolo | fasterrcnn | fasterrcnn_microworker | fasterrcnn_all_classes | fasterrcnn_sigmoid | fasterrcnn_sigmoid_2** = True\\ * One or both of the network interfaces should be used ===== optional fiels in json: ===== * If set, and both network interfaces are configured, boxes will be send to similarity net * **predict_crops** = *anything*\\ * If set, the fullsize image will be downloaded from the image_cloud, even if no object detection is requested. otherwise, a 250×250 thumbnail is used. * **download_image_fullsize** = *anything*\\ * If set, all categories and attributes will be returned * **force_all_tags** = *anything*\\ * Percent value to enlarge the boxes * **crop_margin_width** = float\\ * **crop_margin_height** = float\\ * Flags to supress boxes by IOU, if a box is supressed, the field 'supressed_by_iou' is set. * **max_iou** = True\\ * Score above which boxes are shown, boxes under this score are not returned * **min_score** = float (0-1)\\ ===== out ===== {{/dokuwiki/lib/images/smileys/icon_exclaim.gif|:!:}} Detailed description of the detection-net*_boxes missing! (relative coordinates? absolute?, (x1, x2) = top left? (x1, y1) = top left? { "images_without_error":{ *url1*:{ "attributes": [...], "categories": [...], "*detection-net*_boxes": [ { 'x1': ..., 'x2': ..., 'y1': ..., 'y2': ..., 'class': ..., 'score': ..., ~optional~'supressed_by_iou': True,~ ~optional~'crop_predictions':{ "attributes": [...], categories": [...], } }, ... ], "features": [...] #not if bignet is used }, *url2*:{...} }, "images_with_fatal_error":{...}, "urls_with_image_cloud_error":{...} }