From a8cd270ec017ef7e691e4cc25f0dde447d3a4aac Mon Sep 17 00:00:00 2001 From: MRXLT Date: Fri, 21 Feb 2020 20:48:07 +0800 Subject: [PATCH] add use_mkl && fix imdb script --- python/examples/imdb/local_train.py | 27 ++++++++--------- python/examples/imdb/test_client_batch.py | 3 -- python/examples/imdb/test_gpu_server.py | 35 +++++++++++++++++++++++ python/examples/imdb/test_server.py | 1 - python/paddle_serving_server/__init__.py | 9 +++--- 5 files changed, 54 insertions(+), 21 deletions(-) create mode 100644 python/examples/imdb/test_gpu_server.py diff --git a/python/examples/imdb/local_train.py b/python/examples/imdb/local_train.py index 438fb04f..9c65dc58 100644 --- a/python/examples/imdb/local_train.py +++ b/python/examples/imdb/local_train.py @@ -21,6 +21,7 @@ logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger("fluid") logger.setLevel(logging.INFO) + def load_vocab(filename): vocab = {} with open(filename) as f: @@ -31,17 +32,19 @@ def load_vocab(filename): vocab[""] = len(vocab) return vocab + if __name__ == "__main__": vocab = load_vocab('imdb.vocab') dict_dim = len(vocab) - data = fluid.layers.data(name="words", shape=[1], dtype="int64", lod_level=1) + data = fluid.layers.data( + name="words", shape=[1], dtype="int64", lod_level=1) label = fluid.layers.data(name="label", shape=[1], dtype="int64") dataset = fluid.DatasetFactory().create_dataset() filelist = ["train_data/%s" % x for x in os.listdir("train_data")] dataset.set_use_var([data, label]) - pipe_command = "/home/users/dongdaxiang/paddle_whls/custom_op/paddle_release_home/python/bin/python imdb_reader.py" + pipe_command = "python imdb_reader.py" dataset.set_pipe_command(pipe_command) dataset.set_batch_size(4) dataset.set_filelist(filelist) @@ -59,16 +62,14 @@ if __name__ == "__main__": import paddle_serving_client.io as serving_io for i in range(epochs): - exe.train_from_dataset(program=fluid.default_main_program(), - dataset=dataset, debug=False) + exe.train_from_dataset( + program=fluid.default_main_program(), dataset=dataset, debug=False) logger.info("TRAIN --> pass: {}".format(i)) if i == 5: - serving_io.save_model("serving_server_model", - "serving_client_conf", - {"words": data, "label": label}, - {"cost": avg_cost, "acc": acc, - "prediction": prediction}, - fluid.default_main_program()) - - - + serving_io.save_model("serving_server_model", "serving_client_conf", + {"words": data, + "label": label}, { + "cost": avg_cost, + "acc": acc, + "prediction": prediction + }, fluid.default_main_program()) diff --git a/python/examples/imdb/test_client_batch.py b/python/examples/imdb/test_client_batch.py index 50867712..76de7810 100644 --- a/python/examples/imdb/test_client_batch.py +++ b/python/examples/imdb/test_client_batch.py @@ -23,7 +23,6 @@ def batch_predict(batch_size=4): client = Client() client.load_client_config(conf_file) client.connect(["127.0.0.1:9292"]) - start = time.time() fetch = ["acc", "cost", "prediction"] feed_batch = [] for line in sys.stdin: @@ -44,8 +43,6 @@ def batch_predict(batch_size=4): for i in range(len(feed_batch)): print("{} {}".format(fetch_batch[i]["prediction"][1], feed_batch[i][ "label"][0])) - cost = time.time() - start - print("total cost : {}".format(cost)) if __name__ == '__main__': diff --git a/python/examples/imdb/test_gpu_server.py b/python/examples/imdb/test_gpu_server.py new file mode 100644 index 00000000..d8b313ee --- /dev/null +++ b/python/examples/imdb/test_gpu_server.py @@ -0,0 +1,35 @@ +# Copyright (c) 2020 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. + +import os +import sys +from paddle_serving_server_gpu import OpMaker +from paddle_serving_server_gpu import OpSeqMaker +from paddle_serving_server_gpu import Server + +op_maker = OpMaker() +read_op = op_maker.create('general_reader') +general_infer_op = op_maker.create('general_infer') + +op_seq_maker = OpSeqMaker() +op_seq_maker.add_op(read_op) +op_seq_maker.add_op(general_infer_op) + +server = Server() +server.set_op_sequence(op_seq_maker.get_op_sequence()) +server.set_num_threads(12) +server.load_model_config(sys.argv[1]) +port = int(sys.argv[2]) +server.prepare_server(workdir="work_dir1", port=port, device="gpu") +server.run_server() diff --git a/python/examples/imdb/test_server.py b/python/examples/imdb/test_server.py index cc7f156a..35d38be0 100644 --- a/python/examples/imdb/test_server.py +++ b/python/examples/imdb/test_server.py @@ -29,7 +29,6 @@ op_seq_maker.add_op(general_infer_op) op_seq_maker.add_op(general_response_op) server = Server() -server.set_vlog_level(3) server.set_op_sequence(op_seq_maker.get_op_sequence()) server.set_num_threads(4) diff --git a/python/paddle_serving_server/__init__.py b/python/paddle_serving_server/__init__.py index c08d9d2c..6f85bdc5 100644 --- a/python/paddle_serving_server/__init__.py +++ b/python/paddle_serving_server/__init__.py @@ -89,6 +89,7 @@ class Server(object): self.module_path = os.path.dirname(paddle_serving_server.__file__) self.cur_path = os.getcwd() self.use_local_bin = False + self.mkl_flag = False def set_max_concurrency(self, concurrency): self.max_concurrency = concurrency @@ -172,16 +173,16 @@ class Server(object): # check config here # print config here + def use_mkl(self): + self.mkl_flag = True + def get_device_version(self): avx_flag = False - mkl_flag = False + mkl_flag = self.mkl_flag openblas_flag = False r = os.system("cat /proc/cpuinfo | grep avx > /dev/null 2>&1") if r == 0: avx_flag = True - r = os.system("which mkl") - if r == 0: - mkl_flag = True if avx_flag: if mkl_flag: device_version = "serving-cpu-avx-mkl-" -- GitLab