Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Darknet encryption #1352

Merged
merged 2 commits into from
Aug 17, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions python/examples/pipeline/PaddleClas/DarkNet53-encryption/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Imagenet Pipeline WebService

This document will takes Imagenet service as an example to introduce how to use Pipeline WebService.

## Get model
```
sh get_model.sh
python encrypt.py
```

## Start server

```
python -m paddle_serving_server.serve --model encrypt_server/ --port 9400 --encryption_rpc_port 9401 --use_encryption_model &
python web_service.py &>log.txt &
```

## client test
```
python http_client.py
```

if you configure the api gateway, you can use `https_client.py`
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Imagenet Pipeline WebService

这里以 Imagenet 服务为例来介绍 Pipeline WebService 的使用。

## 获取模型
```
sh get_model.sh
python encrypt.py
```

## 启动服务

```
python -m paddle_serving_server.serve --model encrypt_server/ --port 9400 --encryption_rpc_port 9401 --use_encryption_model &
python web_service.py &>log.txt &
```

## 测试
```
python http_client.py
```
如果您已经配置好了api gateway, 您可以使用 `https_client.py`

~
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#worker_num, 最大并发数。当build_dag_each_worker=True时, 框架会创建worker_num个进程,每个进程内构建grpcSever和DAG
##当build_dag_each_worker=False时,框架会设置主线程grpc线程池的max_workers=worker_num
worker_num: 1

#http端口, rpc_port和http_port不允许同时为空。当rpc_port可用且http_port为空时,不自动生成http_port
http_port: 18080
rpc_port: 9993

dag:
#op资源类型, True, 为线程模型;False,为进程模型
is_thread_op: False
op:
imagenet:
#并发数,is_thread_op=True时,为线程并发;否则为进程并发
concurrency: 1
client_type: brpc
retry: 1
timeout: 3000
server_endpoints: ["127.0.0.1:9400"]
client_config: "encrypt_client"
fetch_list: ["save_infer_model/scale_0.tmp_0"]
batch_size: 1
auto_batching_timeout: 2000
use_encryption_model: True
encryption_key: "./key"
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from paddle_serving_client.io import inference_model_to_serving


def serving_encryption():
inference_model_to_serving(
dirname="./DarkNet53/ppcls_model/",
model_filename="__model__",
params_filename="./__params__",
serving_server="encrypt_server",
serving_client="encrypt_client",
encryption=True)


if __name__ == "__main__":
serving_encryption()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
wget --no-check-certificate https://paddle-serving.bj.bcebos.com/model/DarkNet53.tar
tar -xf DarkNet53.tar

wget --no-check-certificate https://paddle-serving.bj.bcebos.com/imagenet-example/image_data.tar.gz
tar -xzvf image_data.tar.gz
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import numpy as np
import requests
import json
import cv2
import base64
import os

def cv2_to_base64(image):
return base64.b64encode(image).decode('utf8')

if __name__ == "__main__":
url = "http://127.0.0.1:18080/imagenet/prediction"
with open(os.path.join(".", "daisy.jpg"), 'rb') as file:
image_data1 = file.read()
image = cv2_to_base64(image_data1)
header = {"Content-Type":"application/json", "apikey":"WeJn7tVjuujtGxBgl6cWRGpmL2VMEBdb", "X-INSTANCE-ID" : "kong_ins10"}
data = {"key": ["image"], "value": [image]}
for i in range(1):
r = requests.post(url=url, data=json.dumps(data))
print(r.json())
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import numpy as np
import requests
import json
import cv2
import base64
import os

def cv2_to_base64(image):
return base64.b64encode(image).decode('utf8')

if __name__ == "__main__":
url = "https://10.21.8.132:8443/image-clas/imagenet/prediction"
with open(os.path.join(".", "daisy.jpg"), 'rb') as file:
image_data1 = file.read()
image = cv2_to_base64(image_data1)
headers = {"Content-Type":"application/json", "apikey":"BlfvO08Z9mQpFjcMagl2dxOIA8h2UVdp", "X-INSTANCE-ID" : "kong_ins10"}
data = {"key": ["image"], "value": [image]}
for i in range(1):
r = requests.post(url=url, headers=headers, data=json.dumps(data),verify=False)
print(r.json())
Loading