              print_fn = None  # Print straight to stdout
          else:
              # print to logger
              print_fn = lambda x: logger.verbose("%s", x)  # type: ignore # noqa
          for idx, model in enumerate(get_all_sub_models(self._model)):
              if idx == 0:
                  parent = model
                  continue
              model.summary(line_length=100, print_fn=print_fn)
          parent.summary(line_length=100, print_fn=print_fn)
 
</s> remove             layer.set_weights(old_model.get_weights())
 </s> add             klayer.set_weights(old_model.get_weights()) </s> remove     yaml = None
 </s> add     _HAS_YAML = False </s> remove             layer = layer[0]
 </s> add             klayer: keras.layers.Layer = layer[0] </s> remove             name = "af_subframe_{}".format(idx)
 </s> add             name = f"af_subframe_{idx}"
        for idx, model in enumerate(get_all_sub_models(self.model)):
              print_fn = None  # Print straight to stdout
          else:
              # print to logger
              print_fn = lambda x: logger.verbose("%s", x)  # type: ignore # noqa
        for idx, model in enumerate(get_all_sub_models(self.model)):
              if idx == 0:
                  parent = model
                  continue
              model.summary(line_length=100, print_fn=print_fn)
          parent.summary(line_length=100, print_fn=print_fn)
keep keep keep keep replace keep keep keep keep keep
 Core updates
   - Change loss loading mechanism
   - Autosize tooltips based on content size
   - Random linting + code modernisation 
plugins/train/model/_base/model.py