提交 5c8a6679 编写于 作者: Z zhangxuefei

Merge branch 'develop' of https://github.com/PaddlePaddle/PaddleHub into develop

...@@ -20,7 +20,6 @@ import time ...@@ -20,7 +20,6 @@ import time
import os import os
import base64 import base64
import logging import logging
import cv2
import multiprocessing as mp import multiprocessing as mp
from multiprocessing.managers import BaseManager from multiprocessing.managers import BaseManager
import random import random
...@@ -93,7 +92,6 @@ def predict_cv(input_data, module_name, batch_size=1): ...@@ -93,7 +92,6 @@ def predict_cv(input_data, module_name, batch_size=1):
filename_list = [] filename_list = []
for index in range(len(input_data)): for index in range(len(input_data)):
filename_list.append(input_data[index][3]) filename_list.append(input_data[index][3])
cv2.imread(input_data[index][3])
input_images = {"image": filename_list} input_images = {"image": filename_list}
module = ImageModelService.get_module(module_name) module = ImageModelService.get_module(module_name)
method_name = module.desc.attr.map.data['default_signature'].s method_name = module.desc.attr.map.data['default_signature'].s
...@@ -130,19 +128,21 @@ def predict_cv(input_data, module_name, batch_size=1): ...@@ -130,19 +128,21 @@ def predict_cv(input_data, module_name, batch_size=1):
def worker(): def worker():
global batch_size_list, name_list, queue_name_list, cv_module global batch_size_list, name_list, queue_name_list, cv_module
latest_num = random.randrange(0, len(queue_name_list)) latest_num = random.randrange(0, len(queue_name_list))
try:
while True: while True:
time.sleep(0.01) time.sleep(0.01)
for index in range(len(queue_name_list)): for index in range(len(queue_name_list)):
while queues_dict[queue_name_list[latest_num]].empty() is not True: while queues_dict[
queue_name_list[latest_num]].empty() is not True:
input_data = [] input_data = []
lock.acquire() lock.acquire()
try: try:
batch = queues_dict[ batch = queues_dict[
queue_name_list[latest_num]].get_attribute("maxsize") queue_name_list[latest_num]].get_attribute(
"maxsize")
for index2 in range(batch): for index2 in range(batch):
if queues_dict[ if queues_dict[queue_name_list[latest_num]].empty(
queue_name_list[latest_num]].empty() is True: ) is True:
break break
input_data.append( input_data.append(
queues_dict[queue_name_list[latest_num]].get()) queues_dict[queue_name_list[latest_num]].get())
...@@ -155,6 +155,8 @@ def worker(): ...@@ -155,6 +155,8 @@ def worker():
else: else:
pass pass
latest_num = (latest_num + 1) % len(queue_name_list) latest_num = (latest_num + 1) % len(queue_name_list)
except KeyboardInterrupt:
print("Process %s is end." % (os.getpid()))
def init_pool(l): def init_pool(l):
...@@ -168,7 +170,7 @@ def create_app(): ...@@ -168,7 +170,7 @@ def create_app():
gunicorn_logger = logging.getLogger('gunicorn.error') gunicorn_logger = logging.getLogger('gunicorn.error')
app_instance.logger.handlers = gunicorn_logger.handlers app_instance.logger.handlers = gunicorn_logger.handlers
app_instance.logger.setLevel(gunicorn_logger.level) app_instance.logger.setLevel(gunicorn_logger.level)
global queues_dict global queues_dict, pool
lock = mp.Lock() lock = mp.Lock()
pool = mp.Pool( pool = mp.Pool(
processes=(mp.cpu_count() - 1), processes=(mp.cpu_count() - 1),
...@@ -310,6 +312,9 @@ def run(is_use_gpu=False, configs=None, port=8888): ...@@ -310,6 +312,9 @@ def run(is_use_gpu=False, configs=None, port=8888):
return return
my_app = create_app() my_app = create_app()
my_app.run(host="0.0.0.0", port=port, debug=False) my_app.run(host="0.0.0.0", port=port, debug=False)
pool.close()
pool.join()
print("PaddleHub-Serving has been stopped.")
if __name__ == "__main__": if __name__ == "__main__":
......
# coding: utf-8
# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
...@@ -52,6 +52,13 @@ setup( ...@@ -52,6 +52,13 @@ setup(
author_email='paddle-dev@baidu.com', author_email='paddle-dev@baidu.com',
install_requires=REQUIRED_PACKAGES, install_requires=REQUIRED_PACKAGES,
packages=find_packages(), packages=find_packages(),
package_data={
'paddlehub/serving/templates': [
'paddlehub/serving/templates/serving_config.json',
'paddlehub/serving/templates/main.html'
]
},
include_package_data=True,
# PyPI package information. # PyPI package information.
classifiers=[ classifiers=[
'Development Status :: 4 - Beta', 'Development Status :: 4 - Beta',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册