diff --git a/ppcls/arch/backbone/base/theseus_layer.py b/ppcls/arch/backbone/base/theseus_layer.py index 24a212d9027201a4f0e07bd8f7e9f111551778a6..a69c0acca10952e926a022f547ed61a302394579 100644 --- a/ppcls/arch/backbone/base/theseus_layer.py +++ b/ppcls/arch/backbone/base/theseus_layer.py @@ -37,15 +37,15 @@ class TheseusLayer(nn.Layer): stop_layer_name) return after_stop - def _update_res(self, return_layers): + def _update_res(self, return_patterns): for layer_i in self._sub_layers: layer_name = self._sub_layers[layer_i].full_name() - for return_pattern in return_layers: - if return_layers is not None and re.match(return_pattern, layer_name): + for return_pattern in return_patterns: + if return_patterns is not None and re.match(return_pattern, layer_name): self._sub_layers[layer_i].register_forward_post_hook( self._save_sub_res_hook) if isinstance(self._sub_layers[layer_i], TheseusLayer): - self._sub_layers[layer_i]._update_res(return_layers) + self._sub_layers[layer_i]._update_res(return_patterns) def _save_sub_res_hook(self, layer, input, output): if self.res_dict is not None: diff --git a/ppcls/engine/trainer.py b/ppcls/engine/trainer.py index cca615342d21caecb72763612f69b2a99eb9eb38..4befdee25c8300e8017fc8593868853ab5ffedf7 100644 --- a/ppcls/engine/trainer.py +++ b/ppcls/engine/trainer.py @@ -75,6 +75,8 @@ class Trainer(object): self.is_rec = False self.model = build_model(self.config["Arch"]) + if "return_pattern" in self.config["Arch"]: + self.return_inter = True # set @to_static for benchmark, skip this by default. apply_to_static(self.config, self.model)