Download main.py from AndrzejDD/enhanced_transfer_learning: direct link, hf CLI and curl.
- Browser
- Download file 3.15 kB
-
https://huggingface.co/AndrzejDD/enhanced_transfer_learning/resolve/main/main.py
- Command line
-
hf download hf://AndrzejDD/enhanced_transfer_learning/main.py
-
curl -L -o main.py https://huggingface.co/AndrzejDD/enhanced_transfer_learning/resolve/main/main.py
3.15 kB
| import argparse | |
| import subprocess | |
| def run_transfer_learning(dataset, epochs, batch_size, imgsz, patience, cache, pretrained, cos_lr, profile, plots, resume, augment, model, run): | |
| # Construct the command with user-provided arguments | |
| command = [ | |
| "python", "./experiment/transfer_learning_train&test.py", | |
| "--dataset", str(dataset), | |
| "--epochs", str(epochs), | |
| "--batch", str(batch_size), | |
| "--imgsz", str(imgsz), | |
| "--patience", str(patience), | |
| "--cache", cache, | |
| "--model", model, | |
| "--run", run | |
| ] | |
| # Add boolean flags only if they are True | |
| if pretrained: | |
| command.append("--pretrained") | |
| if cos_lr: | |
| command.append("--cos_lr") | |
| if profile: | |
| command.append("--profile") | |
| if plots: | |
| command.append("--plots") | |
| if resume: | |
| command.append("--resume") | |
| if augment: | |
| command.append("--augment") | |
| # Use subprocess to run the script with the arguments | |
| subprocess.run(command, check=True) | |
| if __name__ == "__main__": | |
| parser = argparse.ArgumentParser(description="Run transfer learning with YOLO model.") | |
| # Define all arguments with default values from your script | |
| parser.add_argument('--dataset', type=str, choices=["Birds-Nest", "Common-VALID", "Electric-Substation", "InsPLAD-det"], help='Dataset name to be used') | |
| parser.add_argument("--epochs", type=int, default=1000, help="Number of epochs") | |
| parser.add_argument("--batch", type=int, default=16, help="Batch size") | |
| parser.add_argument("--imgsz", type=int, default=640, help="Image size") | |
| parser.add_argument("--patience", type=int, default=30, help="Patience for early stopping") | |
| parser.add_argument("--cache", type=str, default='ram', help="Cache option") | |
| parser.add_argument("--pretrained", action="store_true", help="Use pretrained weights") | |
| parser.add_argument("--cos_lr", action="store_true", help="Use cosine learning rate") | |
| parser.add_argument("--profile", action="store_true", help="Profile the training") | |
| parser.add_argument("--plots", action="store_true", help="Generate plots") | |
| parser.add_argument("--resume", action="store_true", help="Resume run") | |
| parser.add_argument("--augment", action="store_true", help="Apply augmentation techniques during training") | |
| parser.add_argument("--model", type=str, choices=["yolov8n", "yolov8s", "yolov8m", "yolov8l", "yolov10n", "yolov10s", "yolov10m", "yolov10l"], help="Model to use") | |
| parser.add_argument("--run", type=str, choices=["From_Scratch", "Finetuning", "freeze_[P1-P3]", "freeze_Backbone", "freeze_[P1-23]"], help="Run mode") | |
| args = parser.parse_args() | |
| # Call the function to run transfer learning | |
| run_transfer_learning( | |
| dataset=args.dataset, | |
| epochs=args.epochs, | |
| batch_size=args.batch, | |
| imgsz=args.imgsz, | |
| patience=args.patience, | |
| cache=args.cache, | |
| pretrained=args.pretrained, | |
| cos_lr=args.cos_lr, | |
| profile=args.profile, | |
| plots=args.plots, | |
| resume=args.resume, | |
| augment=args.augment, | |
| model=args.model, | |
| run=args.run | |
| ) |