diff --git a/python/paddle/fluid/executor.py b/python/paddle/fluid/executor.py index 98f28938fe655cb0dbc494c01b7841a32b0b6e68..ceff04286c6ac3f51f4eb6bad0b840770686c98a 100644 --- a/python/paddle/fluid/executor.py +++ b/python/paddle/fluid/executor.py @@ -260,14 +260,17 @@ class Executor(object): scope = global_scope() program_cache = None - program_cache_key = None + + feed_var_names = feed.keys() + fetch_var_names = [var.desc.name() for var in fetch_list] + program_cache_key = str(feed_var_names + fetch_var_names) + if use_program_cache: # find program cache by cache_key - feed_var_names = feed.keys() - fetch_var_names = [var.desc.name() for var in fetch_list] - program_cache_key = str(feed_var_names + fetch_var_names) program_cache = self.program_caches.get(program_cache_key, None) # TODO(qiao): Should check program_cache and program are exactly the same. + else: + self.program_caches.pop(program_cache_key, None) if program_cache is None: program_cache = program.clone()