# Configuration Management The configuration management module provides classes and utilities for managing RAPiD feature extraction settings. ## RAPiDConfig The main configuration class that holds all parameters for RAPiD computation. ### Parameters - `k_mid`: Number of neighbors for mid-range processing (default: 8) - `device`: Processing device ("cpu", "cuda", or "auto") - `batch_size`: Batch size for processing (default: 32) - `precision`: Floating point precision ("float16", "float32") ### Example ```python from rapid_seg.config import RAPiDConfig # Create custom configuration config = RAPiDConfig( k_mid=12, device="cuda", batch_size=64, precision="float32" ) print(f"K neighbors: {config.k_mid}") print(f"Device: {config.device}") ``` ## Predefined Configurations Use the `create_config` function to get predefined configurations: ```python from rapid_seg.config import create_config # Balanced configuration (default) balanced_config = create_config("balanced") # Fast processing configuration fast_config = create_config("fast") # High accuracy configuration accurate_config = create_config("accurate") ``` ### Configuration Presets | Preset | k_mid | Batch Size | Description | |--------|-------|------------|-------------| | `fast` | 4 | 64 | Optimized for speed | | `balanced` | 8 | 32 | Balanced performance | | `accurate` | 16 | 16 | High accuracy mode | ## Dynamic Configuration The configuration system supports dynamic parameter adjustment: ```python # Get k value for standard RAPiD k = config.get_k_for_standard_rapid() # Get k values for range-aware processing k_close, k_mid, k_far = config.get_k_for_range_aware_rapid() # Adjust batch size based on available memory config.optimize_batch_size(available_memory_gb=8.0) ``` ## Device Management Automatic device selection based on system capabilities: ```python # Auto-detect best available device config = RAPiDConfig(device="auto") # Force specific device config = RAPiDConfig(device="cuda:0") # Check device availability if config.is_cuda_available(): print("CUDA is available") ```