From 1345a456ecdd7862519a5a28f4aec8a652ee3b99 Mon Sep 17 00:00:00 2001 From: Leo Chen Date: Tue, 4 Jan 2022 19:42:45 +0800 Subject: [PATCH] [new-exec] avoid adding_feed_fetch in each run (#38672) --- python/paddle/fluid/executor.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/python/paddle/fluid/executor.py b/python/paddle/fluid/executor.py index 995fa188e25..8702c800498 100644 --- a/python/paddle/fluid/executor.py +++ b/python/paddle/fluid/executor.py @@ -1385,23 +1385,24 @@ class Executor(object): key = _get_strong_program_cache_key(inner_program, feed, fetch_list) - program = self._add_feed_fetch_ops( - program=inner_program, - feed=feed, - fetch_list=fetch_list, - feed_var_name=feed_var_name, - fetch_var_name=fetch_var_name, - use_fetch_v2=True) - # a little bit tricy here, use inner_program before _add_feed_fetch_ops to get key # while use program to geet _StandaloneExecutor if key not in self._executor_cache._cached_executors: + program = self._add_feed_fetch_ops( + program=inner_program, + feed=feed, + fetch_list=fetch_list, + feed_var_name=feed_var_name, + fetch_var_name=fetch_var_name, + use_fetch_v2=True) + new_program = program.clone() new_exe = _StandaloneExecutor(self.place, new_program, scope) - self._executor_cache._cached_executors[key] = new_exe + self._executor_cache._cached_executors[key] = (new_program, + new_exe) - new_exe = self._executor_cache._cached_executors[key] + program, new_exe = self._executor_cache._cached_executors[key] self._feed_data(program, feed, feed_var_name, scope) if hasattr(program, 'lr_sheduler'): -- GitLab