From 0adeee114155b851f96e9e803f5aa183fb81c2d8 Mon Sep 17 00:00:00 2001 From: Liufang Sang Date: Tue, 22 Oct 2019 17:06:09 +0800 Subject: [PATCH] [PaddleSlim] change normal program to compile program to get infer time (#3712) --- PaddleCV/PaddleDetection/slim/infer.py | 10 ++++++---- PaddleSlim/classification/infer.py | 9 +++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/PaddleCV/PaddleDetection/slim/infer.py b/PaddleCV/PaddleDetection/slim/infer.py index 96a527f2..438eb925 100644 --- a/PaddleCV/PaddleDetection/slim/infer.py +++ b/PaddleCV/PaddleDetection/slim/infer.py @@ -168,21 +168,23 @@ def main(): imid2path = reader.imid2path keys = ['bbox'] infer_time = True + compile_prog = fluid.compiler.CompiledProgram(infer_prog) + for iter_id, data in enumerate(reader()): feed_data = [[d[0], d[1]] for d in data] # for infer time if infer_time: warmup_times = 10 - repeats_time = 30 + repeats_time = 100 feed_data_dict = feeder.feed(feed_data); for i in range(warmup_times): - exe.run(infer_prog, + exe.run(compile_prog, feed=feed_data_dict, fetch_list=fetch_list, return_numpy=False) start_time = time.time() for i in range(repeats_time): - exe.run(infer_prog, + exe.run(compile_prog, feed=feed_data_dict, fetch_list=fetch_list, return_numpy=False) @@ -190,7 +192,7 @@ def main(): print("infer time: {} ms/sample".format((time.time()-start_time) * 1000 / repeats_time)) infer_time = False - outs = exe.run(infer_prog, + outs = exe.run(compile_prog, feed=feeder.feed(feed_data), fetch_list=fetch_list, return_numpy=False) diff --git a/PaddleSlim/classification/infer.py b/PaddleSlim/classification/infer.py index 9d5680f3..7cc7f967 100644 --- a/PaddleSlim/classification/infer.py +++ b/PaddleSlim/classification/infer.py @@ -50,25 +50,26 @@ def infer(args): results=[] #for infer time, if you don't need, please change infer_time to False infer_time = True + compile_prog = fluid.compiler.CompiledProgram(test_program) for batch_id, data in enumerate(test_reader()): # for infer time if infer_time: warmup_times = 10 - repeats_time = 30 + repeats_time = 100 feed_data = feeder.feed(data) for i in range(warmup_times): - exe.run(test_program, + exe.run(compile_prog, feed=feed_data, fetch_list=fetch_targets) start_time = time.time() for i in range(repeats_time): - exe.run(test_program, + exe.run(compile_prog, feed=feed_data, fetch_list=fetch_targets) print("infer time: {} ms/sample".format((time.time()-start_time) * 1000 / repeats_time)) infer_time = False # top1_acc, top5_acc - result = exe.run(test_program, + result = exe.run(compile_prog, feed=feeder.feed(data), fetch_list=fetch_targets) result = np.array(result[0]) -- GitLab