diff --git a/demo/serving/Classification_vgg11_imagenet/README.md b/demo/serving/Classification_vgg11_imagenet/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ace0b1a0e58ebe4147f45a04b39606a83e0bb301 --- /dev/null +++ b/demo/serving/Classification_vgg11_imagenet/README.md @@ -0,0 +1,21 @@ +## 数据格式 +input: {files: {"image": [file_1, file_2, ...]}} +output: {"results":[result_1, result_2, ...]} + +## Serving快速启动命令 +```shell +$ hub serving start -m vgg11_imagenet +``` + +## python脚本 +```shell +$ python vgg11_imagenet_serving_demo.py +``` + +## 结果示例 +```python +{ + "results": "[[{'Egyptian cat': 0.540287435054779}], [{'daisy': 0.9976677298545837}]]" +} +``` +结果含有生成图片的base64编码,可提取生成图片,示例python脚本生成图片位置为当前目录下的output文件夹下。 diff --git a/demo/serving/Classification_vgg11_imagenet/vgg11_imagenet_serving_demo.py b/demo/serving/Classification_vgg11_imagenet/vgg11_imagenet_serving_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..2a97ce5a89f0cd2ad74f654d040ffffc605fffe8 --- /dev/null +++ b/demo/serving/Classification_vgg11_imagenet/vgg11_imagenet_serving_demo.py @@ -0,0 +1,11 @@ +# coding: utf8 +import requests +import json + +if __name__ == "__main__": + file_list = ["cat.jpg", "flower.jpg"] + files = [("image", (open(item, "rb"))) for item in file_list] + url = "http://127.0.0.1:8866/predict/image/vgg11_imagenet" + r = requests.post(url=url, files=files) + + print(json.dumps(r.json(), indent=4, ensure_ascii=False)) diff --git a/demo/serving/GAN_stgan_celeba/README.md b/demo/serving/GAN_stgan_celeba/README.md new file mode 100644 index 0000000000000000000000000000000000000000..411e86ad47202cc36644d6f4e8a5a1b80e2405e6 --- /dev/null +++ b/demo/serving/GAN_stgan_celeba/README.md @@ -0,0 +1,47 @@ +## 数据格式 +#### 模型所需参数可通过嵌套字典形式传递 +input: {files: {"image": [file_1, file_2, ...]}, data: {...}} +output: {"results":[result_1, result_2, ...]} + +## Serving快速启动命令 +```shell +$ hub serving start -m stgan_celeba +``` + +## python脚本 +```shell +$ python yolov3_coco2017_serving_demo.py +``` + +## 结果示例 +```python +[ + { + "path": "cat.jpg", + "data": [ + { + "left": 322.2323, + "right": 1420.4119, + "top": 208.81363, + "bottom": 996.04395, + "label": "cat", + "confidence": 0.9289875 + } + ] + }, + { + "path": "dog.jpg", + "data": [ + { + "left": 204.74722, + "right": 746.02637, + "top": 122.793274, + "bottom": 566.6292, + "label": "dog", + "confidence": 0.86698055 + } + ] + } +] +``` +结果含有生成图片的base64编码,可提取生成图片,示例python脚本生成图片位置为当前目录下的output文件夹下。 diff --git a/demo/serving/GAN_stgan_celeba/stgan_celeba_serving_demo.py b/demo/serving/GAN_stgan_celeba/stgan_celeba_serving_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..581de64072132e3b75d799ce8e443f2447510562 --- /dev/null +++ b/demo/serving/GAN_stgan_celeba/stgan_celeba_serving_demo.py @@ -0,0 +1,23 @@ +# coding: utf8 +import requests +import json +import base64 +import os + +if __name__ == "__main__": + file_list = ["../img/woman.png"] + files = [("image", (open(item, "rb"))) for item in file_list] + url = "http://127.0.0.1:8866/predict/image/stgan_celeba" + + data = {"info": ["Female,Brown_Hair"], "style": ["Aged"]} + r = requests.post(url=url, data=data, files=files) + + results = eval(r.json()["results"]) + if not os.path.exists("output"): + os.mkdir("output") + for item in results: + output_path = os.path.join("output", item["path"].split("/")[-1]) + with open(output_path, "wb") as fp: + fp.write(base64.b64decode(item["base64"].split(',')[-1])) + item.pop("base64") + print(json.dumps(results, indent=4, ensure_ascii=False)) diff --git a/demo/serving/Language_Model_lm_lstm/README.md b/demo/serving/Language_Model_lm_lstm/README.md new file mode 100644 index 0000000000000000000000000000000000000000..c8a4fc1acada6bfeead62211c7dafb085e7284b3 --- /dev/null +++ b/demo/serving/Language_Model_lm_lstm/README.md @@ -0,0 +1,29 @@ +## 数据格式 +input: {"text": [text_1, text_2, ...]} +output: {"results":[result_1, result_2, ...]} + +## Serving快速启动命令 +```shell +$ hub serving start -m lm_lstm +``` + +## python脚本 +```shell +$ python lm_lstm_serving_demo.py +``` + +## 结果示例 +```python +{ + "results": [ + { + "perplexity": 4.584166451916099, + "text": "the plant which is owned by & co. was under contract with to make the cigarette filter" + }, + { + "perplexity": 6.038358983397484, + "text": "more common fibers are and are more easily rejected by the body dr. explained" + } + ] +} +``` diff --git a/demo/serving/Language_Model_lm_lstm/lm_lstm_serving_demo.py b/demo/serving/Language_Model_lm_lstm/lm_lstm_serving_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..207b8ae464da2870e44bc62ab404de8717d86545 --- /dev/null +++ b/demo/serving/Language_Model_lm_lstm/lm_lstm_serving_demo.py @@ -0,0 +1,14 @@ +# coding: utf8 +import requests +import json + +if __name__ == "__main__": + text_list = [ + "the plant which is owned by & co. was under contract with to make the cigarette filter", + "more common fibers are and are more easily rejected by the body dr. explained" + ] + text = {"text": text_list} + url = "http://127.0.0.1:8866/predict/text/lm_lstm" + r = requests.post(url=url, data=text) + + print(json.dumps(r.json(), indent=4, ensure_ascii=False)) diff --git a/demo/serving/Lexical_Analysis_lac/README.md b/demo/serving/Lexical_Analysis_lac/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e1eaf4553ece353c9ffebd952c6ed47f4864c5f9 --- /dev/null +++ b/demo/serving/Lexical_Analysis_lac/README.md @@ -0,0 +1,57 @@ +## 数据格式 +input: {"text": [text_1, text_2, ...]} +output: {"results":[result_1, result_2, ...]} + +## Serving快速启动命令 +```shell +$ hub serving start -m lac +``` + +## python脚本 +#### 不携带用户自定义词典 +```shell +$ python lac_no_dict_serving_demo.py +``` + +#### 携带用户自定义词典 +```shell +$ python lac_with_dict_serving_demo.py +``` + +## 结果示例 +```python +{ + "results": [ + { + "tag": [ + "TIME", + "v", + "q", + "n" + ], + "word": [ + "今天", + "是", + "个", + "好日子" + ] + }, + { + "tag": [ + "n", + "v", + "TIME", + "v", + "v" + ], + "word": [ + "天气预报", + "说", + "今天", + "要", + "下雨" + ] + } + ] +} +``` diff --git a/demo/serving/Lexical_Analysis_lac/dict.txt b/demo/serving/Lexical_Analysis_lac/dict.txt new file mode 100644 index 0000000000000000000000000000000000000000..7593ac5da72075ffdd6928d01142b413b4ae46b4 --- /dev/null +++ b/demo/serving/Lexical_Analysis_lac/dict.txt @@ -0,0 +1,3 @@ +天气 n 400000 +经 v 1000 +常 d 1000 diff --git a/demo/serving/Lexical_Analysis_lac/lac_serving_demo.py b/demo/serving/Lexical_Analysis_lac/lac_serving_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..6001cd8036d540439f5d508b97a9ea6997ac5f6f --- /dev/null +++ b/demo/serving/Lexical_Analysis_lac/lac_serving_demo.py @@ -0,0 +1,11 @@ +# coding: utf8 +import requests +import json + +if __name__ == "__main__": + text_list = ["今天是个好日子", "天气预报说今天要下雨"] + text = {"text": text_list} + url = "http://127.0.0.1:8866/predict/text/lac" + r = requests.post(url=url, data=text) + + print(json.dumps(r.json(), indent=4, ensure_ascii=False)) diff --git a/demo/serving/Lexical_Analysis_lac/lac_with_dict_serving_demo.py b/demo/serving/Lexical_Analysis_lac/lac_with_dict_serving_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..1d034c02a71bcae6b32d555136ea96a511775e52 --- /dev/null +++ b/demo/serving/Lexical_Analysis_lac/lac_with_dict_serving_demo.py @@ -0,0 +1,14 @@ +# coding: utf8 +import requests +import json + +if __name__ == "__main__": + text_list = ["今天是个好日子", "天气预报说今天要下雨"] + text = {"text": text_list} + # 将用户自定义词典文件发送到预测接口即可 + with open("dict.txt", "rb") as fp: + file = {"user_dict": fp.read()} + url = "http://127.0.0.1:8866/predict/text/lac" + r = requests.post(url=url, files=file, data=text) + + print(json.dumps(r.json(), indent=4, ensure_ascii=False)) diff --git a/demo/serving/Object_Detection_yolov3_coco2017/README.md b/demo/serving/Object_Detection_yolov3_coco2017/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5bf78622719204b88a44e9b8064b88110350db38 --- /dev/null +++ b/demo/serving/Object_Detection_yolov3_coco2017/README.md @@ -0,0 +1,46 @@ +## 数据格式 +input: {files: {"image": [file_1, file_2, ...]}} +output: {"results":[result_1, result_2, ...]} + +## Serving快速启动命令 +```shell +$ hub serving start -m yolov3_coco2017 +``` + +## python脚本 +```shell +$ python yolov3_coco2017_serving_demo.py +``` + +## 结果示例 +```python +[ + { + "path": "cat.jpg", + "data": [ + { + "left": 322.2323, + "right": 1420.4119, + "top": 208.81363, + "bottom": 996.04395, + "label": "cat", + "confidence": 0.9289875 + } + ] + }, + { + "path": "dog.jpg", + "data": [ + { + "left": 204.74722, + "right": 746.02637, + "top": 122.793274, + "bottom": 566.6292, + "label": "dog", + "confidence": 0.86698055 + } + ] + } +] +``` +结果含有生成图片的base64编码,可提取生成图片,示例python脚本生成图片位置为当前目录下的output文件夹下。 diff --git a/demo/serving/Object_Detection_yolov3_coco2017/yolov3_coco2017_serving_demo.py b/demo/serving/Object_Detection_yolov3_coco2017/yolov3_coco2017_serving_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..bea6d28b0519724a9c825e9dbe466e57d0ac764a --- /dev/null +++ b/demo/serving/Object_Detection_yolov3_coco2017/yolov3_coco2017_serving_demo.py @@ -0,0 +1,21 @@ +# coding: utf8 +import requests +import json +import base64 +import os + +if __name__ == "__main__": + file_list = ["../img/cat.jpg", "../img/dog.jpg"] + files = [("image", (open(item, "rb"))) for item in file_list] + url = "http://127.0.0.1:8866/predict/image/yolov3_coco2017" + r = requests.post(url=url, files=files) + + results = eval(r.json()["results"]) + + if not os.path.exists("output"): + os.mkdir("output") + for item in results: + with open(os.path.join("output", item["path"]), "wb") as fp: + fp.write(base64.b64decode(item["base64"].split(',')[-1])) + item.pop("base64") + print(json.dumps(results, indent=4, ensure_ascii=False)) diff --git a/demo/serving/Semantic_Model_simnet_bow/README.md b/demo/serving/Semantic_Model_simnet_bow/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7a85028bbb3a00ef726ccd996476eb5c2552f83c --- /dev/null +++ b/demo/serving/Semantic_Model_simnet_bow/README.md @@ -0,0 +1,36 @@ +## 数据格式 +input: {"text1": [text_a1, text_a2, ...], "text2": [text_b1, text_b2, ...]} +output: {"results":[result_1, result_2, ...]} + +## Serving快速启动命令 +```shell +$ hub serving start -m simnet_bow +``` + +## python脚本 +```shell +$ python simnet_bow_serving_demo.py +``` + +## 结果示例 +```python +{ + "results": [ + { + "similarity": 0.8445, + "text_1": "这道题太难了", + "text_2": "这道题是上一年的考题" + }, + { + "similarity": 0.9275, + "text_1": "这道题太难了", + "text_2": "这道题不简单" + }, + { + "similarity": 0.9083, + "text_1": "这道题太难了", + "text_2": "这道题很有意思" + } + ] +} +``` diff --git a/demo/serving/Semantic_Model_simnet_bow/simnet_bow_serving_demo.py b/demo/serving/Semantic_Model_simnet_bow/simnet_bow_serving_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..82a509e7efc78b618dea0b019b3a85ac0d566fae --- /dev/null +++ b/demo/serving/Semantic_Model_simnet_bow/simnet_bow_serving_demo.py @@ -0,0 +1,13 @@ +# coding: utf8 +import requests +import json + +if __name__ == "__main__": + text = { + "text_1": ["这道题太难了", "这道题太难了", "这道题太难了"], + "text_2": ["这道题是上一年的考题", "这道题不简单", "这道题很有意思"] + } + url = "http://127.0.0.1:8866/predict/text/simnet_bow" + r = requests.post(url=url, data=text) + + print(json.dumps(r.json(), indent=4, ensure_ascii=False)) diff --git a/demo/serving/Semantic_Segmentation_deeplabv3p_xception65_humanseg/README.md b/demo/serving/Semantic_Segmentation_deeplabv3p_xception65_humanseg/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5f5ad302366e09acd52847606f576e5cba3dcad0 --- /dev/null +++ b/demo/serving/Semantic_Segmentation_deeplabv3p_xception65_humanseg/README.md @@ -0,0 +1,24 @@ +## 数据格式 +input: {files: {"image": [file_1, file_2, ...]}} +output: {"results":[result_1, result_2, ...]} + +## Serving快速启动命令 +```shell +$ hub serving start -m deeplabv3p_xception65_humanseg +``` + +## python脚本 +```shell +$ python deeplabv3p_xception65_humanseg_serving_demo.py +``` + +## 结果示例 +```python +[ + { + "origin": "girl.jpg", + "processed": "humanseg_output/girl_2.png" + } +] +``` +结果含有生成图片的base64编码,可提取生成图片,示例python脚本生成图片位置为当前目录下的output文件夹中。 diff --git a/demo/serving/Semantic_Segmentation_deeplabv3p_xception65_humanseg/deeplabv3p_xception65_humanseg_serving_demo.py b/demo/serving/Semantic_Segmentation_deeplabv3p_xception65_humanseg/deeplabv3p_xception65_humanseg_serving_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..f2227a429367b497a50126b789e5b582219ea8bb --- /dev/null +++ b/demo/serving/Semantic_Segmentation_deeplabv3p_xception65_humanseg/deeplabv3p_xception65_humanseg_serving_demo.py @@ -0,0 +1,23 @@ +# coding: utf8 +import requests +import json +import base64 +import os + +if __name__ == "__main__": + file_list = ["../img/girl.jpg"] + files = [("image", (open(item, "rb"))) for item in file_list] + url = "http://127.0.0.1:8866/predict/image/deeplabv3p_xception65_humanseg" + r = requests.post(url=url, files=files) + + results = eval(r.json()["results"]) + + if not os.path.exists("output"): + os.mkdir("output") + for item in results: + with open( + os.path.join("output", item["processed"].split("/")[-1]), + "wb") as fp: + fp.write(base64.b64decode(item["base64"].split(',')[-1])) + item.pop("base64") + print(json.dumps(results, indent=4, ensure_ascii=False)) diff --git a/demo/serving/Sentiment_Analysis_senta_lstm/README.md b/demo/serving/Sentiment_Analysis_senta_lstm/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6eadf2f2c3827bc4dfd042b8977f7590a898c275 --- /dev/null +++ b/demo/serving/Sentiment_Analysis_senta_lstm/README.md @@ -0,0 +1,35 @@ +## 数据格式 +input: {"text": [text_1, text_2, ...]} +output: {"results":[result_1, result_2, ...]} + +## Serving快速启动命令 +```shell +$ hub serving start -m senta_lstm +``` + +## python脚本 +``` shell +$ python senta_lstm_serving_demo.py +``` + +## 结果示例 +```python +{ + "results": [ + { + "negative_probs": 0.7079, + "positive_probs": 0.2921, + "sentiment_key": "negative", + "sentiment_label": 0, + "text": "我不爱吃甜食" + }, + { + "negative_probs": 0.0149, + "positive_probs": 0.9851, + "sentiment_key": "positive", + "sentiment_label": 1, + "text": "我喜欢躺在床上看电影" + } + ] +} +``` diff --git a/demo/serving/Sentiment_Analysis_senta_lstm/senta_lstm_serving_demo.py b/demo/serving/Sentiment_Analysis_senta_lstm/senta_lstm_serving_demo.py new file mode 100644 index 0000000000000000000000000000000000000000..fe18c9354054f5565de64ef300496a68b68e5c8c --- /dev/null +++ b/demo/serving/Sentiment_Analysis_senta_lstm/senta_lstm_serving_demo.py @@ -0,0 +1,11 @@ +# coding: utf8 +import requests +import json + +if __name__ == "__main__": + text_list = ["我不爱吃甜食", "我喜欢躺在床上看电影"] + text = {"text": text_list} + url = "http://127.0.0.1:8866/predict/text/senta_lstm" + r = requests.post(url=url, data=text) + + print(json.dumps(r.json(), indent=4, ensure_ascii=False)) diff --git a/demo/serving/img/cat.jpg b/demo/serving/img/cat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a05f54cdc88398d6ff6d6c4b7ba8efdf75452a0a Binary files /dev/null and b/demo/serving/img/cat.jpg differ diff --git a/demo/serving/img/dog.jpg b/demo/serving/img/dog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f18fa2dae9d3a0d9593c4298e6da368cdf526b81 Binary files /dev/null and b/demo/serving/img/dog.jpg differ diff --git a/demo/serving/img/flower.jpg b/demo/serving/img/flower.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06eb250fb48869a331d2c19b9aebb6d0d1117257 Binary files /dev/null and b/demo/serving/img/flower.jpg differ diff --git a/demo/serving/img/girl.jpg b/demo/serving/img/girl.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd3c8a7890dfdae79917b9983e15ddda67f2a765 Binary files /dev/null and b/demo/serving/img/girl.jpg differ diff --git a/demo/serving/img/woman.png b/demo/serving/img/woman.png new file mode 100644 index 0000000000000000000000000000000000000000..1b427dcfb7c0eba8fffafd5b3b5304010d6b69a1 Binary files /dev/null and b/demo/serving/img/woman.png differ