Skip to content

Commit 394fee8

Browse files
eliphatfsorpatashnik
authored andcommitted
Multiply lr scheduler steps by num_processes. (huggingface#3983)
* Multiply lr scheduler steps by `num_processes`. * Stop multiplying steps by gradient accumulation.
1 parent 276f1b1 commit 394fee8

File tree

17 files changed

+35
-35
lines changed

17 files changed

+35
-35
lines changed

examples/controlnet/train_controlnet.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -897,8 +897,8 @@ def load_model_hook(models, input_dir):
897897
lr_scheduler = get_scheduler(
898898
args.lr_scheduler,
899899
optimizer=optimizer,
900-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
901-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
900+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
901+
num_training_steps=args.max_train_steps * accelerator.num_processes,
902902
num_cycles=args.lr_num_cycles,
903903
power=args.lr_power,
904904
)

examples/custom_diffusion/train_custom_diffusion.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,8 +1007,8 @@ def main(args):
10071007
lr_scheduler = get_scheduler(
10081008
args.lr_scheduler,
10091009
optimizer=optimizer,
1010-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
1011-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
1010+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
1011+
num_training_steps=args.max_train_steps * accelerator.num_processes,
10121012
)
10131013

10141014
# Prepare everything with our `accelerator`.

examples/dreambooth/train_dreambooth.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,8 +1075,8 @@ def compute_text_embeddings(prompt):
10751075
lr_scheduler = get_scheduler(
10761076
args.lr_scheduler,
10771077
optimizer=optimizer,
1078-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
1079-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
1078+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
1079+
num_training_steps=args.max_train_steps * accelerator.num_processes,
10801080
num_cycles=args.lr_num_cycles,
10811081
power=args.lr_power,
10821082
)

examples/dreambooth/train_dreambooth_lora.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,8 +1039,8 @@ def compute_text_embeddings(prompt):
10391039
lr_scheduler = get_scheduler(
10401040
args.lr_scheduler,
10411041
optimizer=optimizer,
1042-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
1043-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
1042+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
1043+
num_training_steps=args.max_train_steps * accelerator.num_processes,
10441044
num_cycles=args.lr_num_cycles,
10451045
power=args.lr_power,
10461046
)

examples/instruct_pix2pix/train_instruct_pix2pix.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -690,8 +690,8 @@ def collate_fn(examples):
690690
lr_scheduler = get_scheduler(
691691
args.lr_scheduler,
692692
optimizer=optimizer,
693-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
694-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
693+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
694+
num_training_steps=args.max_train_steps * accelerator.num_processes,
695695
)
696696

697697
# Prepare everything with our `accelerator`.

examples/research_projects/dreambooth_inpaint/train_dreambooth_inpaint.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -600,8 +600,8 @@ def collate_fn(examples):
600600
lr_scheduler = get_scheduler(
601601
args.lr_scheduler,
602602
optimizer=optimizer,
603-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
604-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
603+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
604+
num_training_steps=args.max_train_steps * accelerator.num_processes,
605605
)
606606

607607
if args.train_text_encoder:

examples/research_projects/dreambooth_inpaint/train_dreambooth_inpaint_lora.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -644,8 +644,8 @@ def collate_fn(examples):
644644
lr_scheduler = get_scheduler(
645645
args.lr_scheduler,
646646
optimizer=optimizer,
647-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
648-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
647+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
648+
num_training_steps=args.max_train_steps * accelerator.num_processes,
649649
)
650650

651651
# Prepare everything with our `accelerator`.

examples/research_projects/intel_opts/textual_inversion/textual_inversion_bf16.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,8 +481,8 @@ def main():
481481
lr_scheduler = get_scheduler(
482482
args.lr_scheduler,
483483
optimizer=optimizer,
484-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
485-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
484+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
485+
num_training_steps=args.max_train_steps * accelerator.num_processes,
486486
)
487487

488488
text_encoder, optimizer, train_dataloader, lr_scheduler = accelerator.prepare(

examples/research_projects/intel_opts/textual_inversion_dfq/textual_inversion.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -588,8 +588,8 @@ def main():
588588
lr_scheduler = get_scheduler(
589589
args.lr_scheduler,
590590
optimizer=optimizer,
591-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
592-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
591+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
592+
num_training_steps=args.max_train_steps * accelerator.num_processes,
593593
)
594594

595595
if not train_unet:

examples/research_projects/lora/train_text_to_image_lora.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -701,8 +701,8 @@ def collate_fn(examples):
701701
lr_scheduler = get_scheduler(
702702
args.lr_scheduler,
703703
optimizer=optimizer,
704-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
705-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
704+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
705+
num_training_steps=args.max_train_steps * accelerator.num_processes,
706706
)
707707

708708
# Prepare everything with our `accelerator`.

examples/research_projects/mulit_token_textual_inversion/textual_inversion.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -690,8 +690,8 @@ def main():
690690
lr_scheduler = get_scheduler(
691691
args.lr_scheduler,
692692
optimizer=optimizer,
693-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
694-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
693+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
694+
num_training_steps=args.max_train_steps * accelerator.num_processes,
695695
)
696696

697697
# Prepare everything with our `accelerator`.

examples/research_projects/multi_subject_dreambooth/train_multi_subject_dreambooth.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -970,8 +970,8 @@ def main(args):
970970
lr_scheduler = get_scheduler(
971971
args.lr_scheduler,
972972
optimizer=optimizer,
973-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
974-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
973+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
974+
num_training_steps=args.max_train_steps * accelerator.num_processes,
975975
num_cycles=args.lr_num_cycles,
976976
power=args.lr_power,
977977
)

examples/research_projects/onnxruntime/text_to_image/train_text_to_image.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -732,8 +732,8 @@ def collate_fn(examples):
732732
lr_scheduler = get_scheduler(
733733
args.lr_scheduler,
734734
optimizer=optimizer,
735-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
736-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
735+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
736+
num_training_steps=args.max_train_steps * accelerator.num_processes,
737737
)
738738

739739
# Prepare everything with our `accelerator`.

examples/research_projects/onnxruntime/textual_inversion/textual_inversion.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -741,8 +741,8 @@ def main():
741741
lr_scheduler = get_scheduler(
742742
args.lr_scheduler,
743743
optimizer=optimizer,
744-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
745-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
744+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
745+
num_training_steps=args.max_train_steps * accelerator.num_processes,
746746
)
747747

748748
# Prepare everything with our `accelerator`.

examples/text_to_image/train_text_to_image.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -819,8 +819,8 @@ def collate_fn(examples):
819819
lr_scheduler = get_scheduler(
820820
args.lr_scheduler,
821821
optimizer=optimizer,
822-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
823-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
822+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
823+
num_training_steps=args.max_train_steps * accelerator.num_processes,
824824
)
825825

826826
# Prepare everything with our `accelerator`.

examples/text_to_image/train_text_to_image_lora.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,8 @@ def collate_fn(examples):
662662
lr_scheduler = get_scheduler(
663663
args.lr_scheduler,
664664
optimizer=optimizer,
665-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
666-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
665+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
666+
num_training_steps=args.max_train_steps * accelerator.num_processes,
667667
)
668668

669669
# Prepare everything with our `accelerator`.

examples/textual_inversion/textual_inversion.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -737,9 +737,9 @@ def main():
737737
lr_scheduler = get_scheduler(
738738
args.lr_scheduler,
739739
optimizer=optimizer,
740-
num_warmup_steps=args.lr_warmup_steps * args.gradient_accumulation_steps,
741-
num_training_steps=args.max_train_steps * args.gradient_accumulation_steps,
742-
num_cycles=args.lr_num_cycles * args.gradient_accumulation_steps,
740+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
741+
num_training_steps=args.max_train_steps * accelerator.num_processes,
742+
num_cycles=args.lr_num_cycles,
743743
)
744744

745745
# Prepare everything with our `accelerator`.

0 commit comments

Comments
 (0)