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
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:
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 |
|---|---|---|---|
|
4 |
64 |
Optimized for speed |
|
8 |
32 |
Balanced performance |
|
16 |
16 |
High accuracy mode |
Dynamic Configuration
The configuration system supports dynamic parameter adjustment:
# 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:
# 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")