diff --git a/python/paddle/distributed/auto_parallel/api.py b/python/paddle/distributed/auto_parallel/api.py index f7c69e1fe64646..9a6f0af9c83ae3 100644 --- a/python/paddle/distributed/auto_parallel/api.py +++ b/python/paddle/distributed/auto_parallel/api.py @@ -1924,16 +1924,21 @@ def __convert_strategy(self, strategy): inner_strategy.gradient_merge = copy.deepcopy(strategy.gradient_merge) inner_strategy.pipeline = copy.deepcopy(strategy.pipeline) # The below are template interfaces - inner_strategy.recompute = copy.deepcopy(strategy._recompute) - inner_strategy.mp_optimization = copy.deepcopy( - strategy._mp_optimization - ) - inner_strategy.dp_optimization = copy.deepcopy( - strategy._dp_optimization - ) - inner_strategy.sp_optimization = copy.deepcopy( - strategy._sp_optimization - ) + if hasattr(strategy, "_recompute"): + inner_strategy.recompute = copy.deepcopy(strategy._recompute) + + if hasattr(strategy, "_mp_optimization"): + inner_strategy.mp_optimization = copy.deepcopy( + strategy._mp_optimization + ) + if hasattr(strategy, "_dp_optimization"): + inner_strategy.dp_optimization = copy.deepcopy( + strategy._dp_optimization + ) + if hasattr(strategy, "_sp_optimization"): + inner_strategy.sp_optimization = copy.deepcopy( + strategy._sp_optimization + ) return inner_strategy