mirror of
https://github.com/storytold/FineTrainers-Conditioning.git
synced 2026-10-18 07:33:20 +00:00
track grad norm for deepspeed
This commit is contained in:
+11
-2
@@ -694,8 +694,17 @@ class Trainer:
|
|||||||
loss = loss.mean()
|
loss = loss.mean()
|
||||||
accelerator.backward(loss)
|
accelerator.backward(loss)
|
||||||
|
|
||||||
if accelerator.sync_gradients and accelerator.distributed_type != DistributedType.DEEPSPEED:
|
if accelerator.sync_gradients:
|
||||||
grad_norm = accelerator.clip_grad_norm_(self.transformer.parameters(), self.args.max_grad_norm)
|
if accelerator.distributed_type == DistributedType.DEEPSPEED:
|
||||||
|
grad_norm = self.transformer.get_global_grad_norm()
|
||||||
|
# In some cases the grad norm may not return a float
|
||||||
|
if hasattr(grad_norm, "item"):
|
||||||
|
grad_norm = grad_norm.item()
|
||||||
|
else:
|
||||||
|
grad_norm = accelerator.clip_grad_norm_(
|
||||||
|
self.transformer.parameters(), self.args.max_grad_norm
|
||||||
|
)
|
||||||
|
|
||||||
logs["grad_norm"] = grad_norm
|
logs["grad_norm"] = grad_norm
|
||||||
|
|
||||||
self.optimizer.step()
|
self.optimizer.step()
|
||||||
|
|||||||
Reference in New Issue
Block a user