From 0853ece372fb08a11b9299273c9dc4552324ed06 Mon Sep 17 00:00:00 2001 From: guru4elephant Date: Tue, 3 Mar 2020 16:19:31 +0800 Subject: [PATCH] add web service example for imdb --- python/examples/imdb/imdb_web_service_demo.sh | 6 +++++ python/examples/imdb/local_train.py | 2 +- python/examples/imdb/text_classify_service.py | 26 +++++++++---------- 3 files changed, 19 insertions(+), 15 deletions(-) create mode 100644 python/examples/imdb/imdb_web_service_demo.sh diff --git a/python/examples/imdb/imdb_web_service_demo.sh b/python/examples/imdb/imdb_web_service_demo.sh new file mode 100644 index 00000000..e0db60a5 --- /dev/null +++ b/python/examples/imdb/imdb_web_service_demo.sh @@ -0,0 +1,6 @@ +wget https://paddle-serving.bj.bcebos.com/imdb-demo%2Fimdb_service.tar.gz +tar -xzf imdb_service.tar.gz +wget --no-check-certificate https://fleet.bj.bcebos.com/text_classification_data.tar.gz +tar -zxvf text_classification_data.tar.gz +python text_classify_service.py serving_server_model/ workdir imdb.vocab + diff --git a/python/examples/imdb/local_train.py b/python/examples/imdb/local_train.py index d3d7c3ba..b4cad7f4 100644 --- a/python/examples/imdb/local_train.py +++ b/python/examples/imdb/local_train.py @@ -65,6 +65,6 @@ if __name__ == "__main__": 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", + serving_io.save_model("imdb_model", "imdb_client_conf", {"words": data}, {"prediction": prediction}, fluid.default_main_program()) diff --git a/python/examples/imdb/text_classify_service.py b/python/examples/imdb/text_classify_service.py index 65f7605a..55c36179 100755 --- a/python/examples/imdb/text_classify_service.py +++ b/python/examples/imdb/text_classify_service.py @@ -12,28 +12,26 @@ # See the License for the specific language governing permissions and # limitations under the License. #!flask/bin/python -from plugin_service import PluginService +from paddle_serving_server.plugin_service import WebService +from imdb_reader import IMDBDataset import sys -class IMDBService(PluginService): - def prepare_service(self, args={}): +class IMDBService(WebService): + def prepare_dict(self, args={}): if len(args) == 0: exit(-1) - self.word_dict = {} - with open(args["dict_file_path"]) as fin: - idx = 0 - for line in fin: - self.word_dict[idx] = idx - idx += 1 + self.dataset = IMDBDataset() + self.dataset.load_resource(args["dict_file_path"]) def preprocess(self, feed={}, fetch=[]): if "words" not in feed: exit(-1) res_feed = {} - res_feed["words"] = [self.word_dict[int(x)] for x in feed["words"]] - print(res_feed) + res_feed["words"] = self.dataset.get_words_and_label(feed["words"])[0] return res_feed, fetch -imdb_service = IMDBService(name="imdb", model=sys.argv[1], port=9898) -imdb_service.prepare_service({"dict_file_path":sys.argv[2]}) -imdb_service.start_service() +imdb_service = IMDBService(name="imdb") +imdb_service.load_model_config(sys.argv[1]) +imdb_service.prepare_server(workdir=sys.argv[2], port=9393, device="cpu") +imdb_service.prepare_dict({"dict_file_path":sys.argv[3]}) +imdb_service.run_server() -- GitLab