Spaces:
Sleeping
Sleeping
| """ | |
| Configuration file for model training. | |
| Contains all hyperparameters and settings. | |
| """ | |
| # Model Configuration | |
| MODEL_CONFIG = { | |
| 'architecture': 'mobilenet_v2', # Options: mobilenet_v2, resnet18, efficientnet_b0 | |
| 'num_classes': 6, | |
| 'pretrained': True, # Use ImageNet pretrained weights | |
| 'dropout': 0.2, | |
| } | |
| # Training Configuration | |
| TRAIN_CONFIG = { | |
| 'batch_size': 32, | |
| 'num_epochs': 20, | |
| 'learning_rate': 0.001, | |
| 'weight_decay': 0.0001, | |
| 'optimizer': 'adam', # Options: adam, sgd, adamw | |
| 'momentum': 0.9, # For SGD only | |
| } | |
| # Learning Rate Scheduler | |
| SCHEDULER_CONFIG = { | |
| 'type': 'step', # Options: step, cosine, reduce_on_plateau | |
| 'step_size': 7, # For StepLR | |
| 'gamma': 0.1, # For StepLR | |
| 'patience': 3, # For ReduceLROnPlateau | |
| 'min_lr': 1e-6, # Minimum learning rate | |
| } | |
| # Data Configuration | |
| DATA_CONFIG = { | |
| 'image_size': 224, | |
| 'num_workers': 2, # Number of data loading workers (reduce if causing issues) | |
| 'pin_memory': False, # Set to True if using GPU | |
| 'train_dir': 'dataset/processed/train', | |
| 'val_dir': 'dataset/processed/val', | |
| 'test_dir': 'dataset/processed/test', | |
| } | |
| # Checkpoint Configuration | |
| CHECKPOINT_CONFIG = { | |
| 'save_dir': 'model/checkpoints', | |
| 'save_every': 5, # Save checkpoint every N epochs | |
| 'save_best_only': True, # Only save the best model | |
| 'metric': 'val_acc', # Metric to determine best model: val_acc or val_loss | |
| } | |
| # Early Stopping | |
| EARLY_STOPPING_CONFIG = { | |
| 'enabled': True, | |
| 'patience': 7, # Stop if no improvement for N epochs | |
| 'min_delta': 0.001, # Minimum change to qualify as improvement | |
| } | |
| # Class Names (in order) | |
| CLASS_NAMES = [ | |
| 'glass', | |
| 'metal', | |
| 'non-recyclable', | |
| 'organic', | |
| 'paper', | |
| 'plastic' | |
| ] | |
| # Class weights (for imbalanced datasets, set to None for equal weights) | |
| CLASS_WEIGHTS = None # Will be calculated automatically if None | |
| # Device Configuration | |
| DEVICE_CONFIG = { | |
| 'use_gpu': True, # Automatically fall back to CPU if GPU not available | |
| 'gpu_id': 0, # GPU device ID | |
| } | |
| # Logging Configuration | |
| LOGGING_CONFIG = { | |
| 'log_file': 'model/training.log', | |
| 'print_frequency': 10, # Print every N batches | |
| 'save_plots': True, | |
| } | |
| # Paths | |
| PATHS = { | |
| 'train_dir': DATA_CONFIG['train_dir'], | |
| 'val_dir': DATA_CONFIG['val_dir'], | |
| 'test_dir': DATA_CONFIG['test_dir'], | |
| 'checkpoint_dir': CHECKPOINT_CONFIG['save_dir'], | |
| 'results_dir': 'model/results', | |
| } | |