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

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:

# 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")