This document explains the project structure and component relationships. We use a modular architecture following PyTorch Lightning conventions.
graph TD
CLI[CLI Interface] --> Data[Data Module]
CLI --> Models[Model Registry]
CLI --> Lightning[Lightning Module]
Data -->|Provides| Lightning
Models -->|Provides| Lightning
Lightning -->|Generates| Metrics[Metrics & Reports]
Metrics -->|Updates| README[README.md]
- Purpose: Entry point for benchmark execution
- Key Features:
- Argument parsing for model selection, data paths, and hyperparameters
- Coordinates data loading, model initialization, and training workflow
- Handles output generation and logging
- Implementation Choices:
- Uses Click library for robust CLI handling
- Separates configuration from core logic for flexibility
- Responsibility: LoveDA dataset handling
- Key Functions:
load_data(): TorchGeo dataset integrationget_transform(): Image preprocessing pipelineget_dataloader(): Batch data loading
- Design Notes:
- Custom transforms for satellite imagery
- Automatic dataset validation checks
- Purpose: Model initialization and configuration
- Contents:
- Pretrained segmentation model definitions
- Backbone selection logic
- Custom head implementations
- Supported Models:
- DeepLabV3
- FCN-ResNet50
- (Extensible to new architectures)
- Core Logic: Training/validation workflow
- Key Aspects:
- Metric tracking (mIoU, accuracy, inference speed)
- Memory usage monitoring
- Checkpoint management
- Automated README updates
- Integration:
- Connects data loaders and models
- Implements benchmark protocols
- Purpose: Package configuration
- Handles:
- Dependency management
- CLI command registration
- Python package metadata
- Note: Auto-generated package metadata (do not edit manually)
- Contains:
- Installed files list
- Dependency information
- Entry points configuration
- User runs CLI command with parameters
- System loads data through TorchGeo integration
- Initializes selected model architecture
- Executes Lightning training/validation loop
- Records metrics and updates documentation
- Generates final benchmark report