From 71b1532bb0493fea4bfbe2976fe2bb9cabf04789 Mon Sep 17 00:00:00 2001 From: Disty0 Date: Thu, 15 Jun 2023 23:55:23 +0300 Subject: [PATCH] Scale loss for ipex --- modules/hypernetworks/hypernetwork.py | 2 ++ modules/textual_inversion/textual_inversion.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/modules/hypernetworks/hypernetwork.py b/modules/hypernetworks/hypernetwork.py index 6b6056b3f..9d6b18517 100644 --- a/modules/hypernetworks/hypernetwork.py +++ b/modules/hypernetworks/hypernetwork.py @@ -654,6 +654,8 @@ def train_hypernetwork(id_task, hypernetwork_name, learn_rate, batch_size, gradi loss = shared.sd_model.forward(x, c)[0] / gradient_step del x del c + if shared.cmd_opts.use_ipex and loss > (1 / gradient_step): + loss = (loss - (1 / gradient_step)) * 10 _loss_step += loss.item() scaler.scale(loss).backward() diff --git a/modules/textual_inversion/textual_inversion.py b/modules/textual_inversion/textual_inversion.py index 6115e01e7..7a859897e 100644 --- a/modules/textual_inversion/textual_inversion.py +++ b/modules/textual_inversion/textual_inversion.py @@ -486,6 +486,8 @@ def train_embedding(id_task, embedding_name, learn_rate, batch_size, gradient_st else: loss = shared.sd_model.forward(x, cond)[0] / gradient_step del x + if shared.cmd_opts.use_ipex and loss > (1 / gradient_step): + loss = (loss - (1 / gradient_step)) * 10 _loss_step += loss.item() scaler.scale(loss).backward()