@@ -427,14 +427,38 @@ def save_state(self, epoch: int, output_dir: Path) -> dict[str, Path]:
427427 create_symlink (weight_path , final_model_path )
428428
429429 save_optimizer (self .optimizer , optimizer_path )
430+ # 保存したoptimizer_path以外のoptimizerファイルを削除
431+ optimizer_dir = Path (output_dir ) / "optimizers"
432+ for optimizer_file in optimizer_dir .glob ("optimizer_epoch_*.pth" ):
433+ if (
434+ str (optimizer_file ) != optimizer_path
435+ and str (optimizer_file ) != final_optimizer_path
436+ ):
437+ optimizer_file .unlink ()
430438 create_symlink (optimizer_path , final_optimizer_path )
431439
432440 if self .epoch_lr_scheduler :
433441 save_lr_scheduler (self .epoch_lr_scheduler , epoch_scheduler_path )
442+ # 保存したschedulerファイル以外のschedulerファイルを削除
443+ scheduler_dir = Path (output_dir ) / "schedulers"
444+ for scheduler_file in scheduler_dir .glob ("epoch_scheduler_epoch_*.pth" ):
445+ if (
446+ str (scheduler_file ) != epoch_scheduler_path
447+ and str (scheduler_file ) != final_epoch_scheduler_path
448+ ):
449+ scheduler_file .unlink ()
434450 create_symlink (epoch_scheduler_path , final_epoch_scheduler_path )
435451
436452 if self .iter_lr_scheduler :
437453 save_lr_scheduler (self .iter_lr_scheduler , iter_scheduler_path )
454+ # 保存したschedulerファイル以外のschedulerファイルを削除
455+ scheduler_dir = Path (output_dir ) / "schedulers"
456+ for scheduler_file in scheduler_dir .glob ("iter_scheduler_epoch_*.pth" ):
457+ if (
458+ str (scheduler_file ) != iter_scheduler_path
459+ and str (scheduler_file ) != final_iter_scheduler_path
460+ ):
461+ scheduler_file .unlink ()
438462 create_symlink (iter_scheduler_path , final_iter_scheduler_path )
439463
440464 def load_state (
0 commit comments