@@ -1890,10 +1890,9 @@ def remove_model(old_ckpt_name):
18901890
18911891 # training loop
18921892 if initial_step > 0 : # only if skip_until_initial_step is specified
1893- for skip_epoch in range (epoch_to_start ): # skip epochs
1894- logger .info (f"skipping epoch { skip_epoch + 1 } because initial_step (multiplied) is { initial_step } " )
1895- initial_step -= len (train_dataloader )
18961893 global_step = initial_step
1894+ logger .info (f"skipping epoch { epoch_to_start } because initial_step (multiplied) is { initial_step } " )
1895+ initial_step -= epoch_to_start * len (train_dataloader )
18971896
18981897 # log device and dtype for each model
18991898 logger .info (f"unet dtype: { unet_weight_dtype } , device: { unet .device } " )
@@ -1955,16 +1954,13 @@ def remove_model(old_ckpt_name):
19551954
19561955 skipped_dataloader = None
19571956 if initial_step > 0 :
1958- skipped_dataloader = accelerator .skip_first_batches (train_dataloader , initial_step - 1 )
1959- initial_step = 1
1957+ skipped_dataloader = accelerator .skip_first_batches (train_dataloader , initial_step )
1958+ initial_step = 0
19601959
19611960 for step , batch in enumerate (skipped_dataloader or train_dataloader ):
19621961 current_step .value = global_step
19631962 current_batch_size = len (batch ['network_multipliers' ])
19641963 effective_batch_size += current_batch_size
1965- if initial_step > 0 :
1966- initial_step -= 1
1967- continue
19681964
19691965 # Determine whether we should synchronize gradients
19701966 sync_gradients = (accumulation_counter + 1 ) % iter_size == 0 or (step + 1 == len (skipped_dataloader or train_dataloader ))
@@ -2476,16 +2472,13 @@ def loss_fn(noise_pred: torch.Tensor, target: torch.Tensor, scale: float = 1.0):
24762472
24772473 skipped_dataloader = None
24782474 if initial_step > 0 :
2479- skipped_dataloader = accelerator .skip_first_batches (train_dataloader , initial_step - 1 )
2480- initial_step = 1
2475+ skipped_dataloader = accelerator .skip_first_batches (train_dataloader , initial_step )
2476+ initial_step = 0
24812477
24822478 for step , batch in enumerate (skipped_dataloader or train_dataloader ):
24832479 current_step .value = global_step
24842480 current_batch_size = len (batch ['network_multipliers' ])
24852481 effective_batch_size += current_batch_size
2486- if initial_step > 0 :
2487- initial_step -= 1
2488- continue
24892482
24902483 with accelerator .accumulate (training_model , lossweightMLP ) if args .edm2_loss_weighting else accelerator .accumulate (training_model ):
24912484 on_step_start_for_network (text_encoder , unet )
@@ -2495,8 +2488,6 @@ def loss_fn(noise_pred: torch.Tensor, target: torch.Tensor, scale: float = 1.0):
24952488 # temporary, for batch processing
24962489 self .on_step_start (args , accelerator , network , text_encoders , unet , batch , weight_dtype )
24972490
2498-
2499-
25002491 if "latents" in batch and batch ["latents" ] is not None :
25012492 latents = batch ["latents" ].to (device = accelerator .device )
25022493 else :
0 commit comments