Allow models to provide an additional loss
This commit is contained in:
@@ -944,6 +944,12 @@ class SDTrainer(BaseSDTrainProcess):
|
|||||||
|
|
||||||
loss = loss + additional_loss
|
loss = loss + additional_loss
|
||||||
|
|
||||||
|
if hasattr(self.sd, "get_additional_loss"):
|
||||||
|
additional_model_loss = self.sd.get_additional_loss(pred, target)
|
||||||
|
if additional_model_loss is not None:
|
||||||
|
loss = loss + additional_model_loss
|
||||||
|
self.additional_logs["additional_model_loss"] = additional_model_loss.item()
|
||||||
|
|
||||||
if self.train_config.max_loss_debug and self.train_config.max_loss is not None:
|
if self.train_config.max_loss_debug and self.train_config.max_loss is not None:
|
||||||
if loss.item() > self.train_config.max_loss:
|
if loss.item() > self.train_config.max_loss:
|
||||||
print_acc(f"Loss {loss.item()} is greater than max loss {self.train_config.max_loss}. Clipping to max loss.")
|
print_acc(f"Loss {loss.item()} is greater than max loss {self.train_config.max_loss}. Clipping to max loss.")
|
||||||
|
|||||||
Reference in New Issue
Block a user