Skip to content

Development Features

linnaeus includes several features specifically designed for development, debugging, and testing purposes. These features are not intended for regular use in production environments but can be extremely helpful during development.

Debug Validation Mode

The DEBUG_FORCE_VALIDATION feature allows you to test validation immediately after resuming from a checkpoint, without having to wait for a training epoch to complete.

TRAIN:
  DEBUG_FORCE_VALIDATION: True  # Force validation immediately after resuming

When enabled, this feature: 1. Forces validation to run immediately after loading a checkpoint 2. Runs all applicable validation types (standard, mask-meta, and partial-mask-meta) 3. Logs validation results before continuing with training

This is particularly useful when: - Testing changes to validation code - Debugging validation-related issues - Testing validation metrics without waiting for a full training epoch

Logging Levels

linnaeus supports multiple logging levels to control the verbosity of output:

EXPERIMENT:
  LOG_LEVEL_MAIN: 'DEBUG'  # Options: DEBUG, INFO, WARNING, ERROR
  LOG_LEVEL_H5DATA: 'INFO'  # Separate logging level for data loading

Setting LOG_LEVEL_MAIN to DEBUG provides extensive debug information, including: - Detailed information about model loading - Step-by-step training information - Checkpoint loading and saving details - Schedule resolution and configuration details

Verbose Debug Mode

For even more detailed logging, you can enable verbose debug mode:

MISC:
  VERBOSE_DEBUG: True

This flag is designed to gate extremely verbose logging that would normally clutter the output. While currently not widely used in the codebase, it's available for components to conditionally output additional debugging information when needed.

Checkpoint Schedule Preservation Control

When resuming from a checkpoint, you can control whether to preserve the schedule parameters from the checkpoint or use those from the current config:

TRAIN:
  PRESERVE_CHECKPOINT_SCHEDULE: False  # Use current config's schedule parameters instead

By default (PRESERVE_CHECKPOINT_SCHEDULE=True), all schedule parameters from the checkpoint are preserved to ensure training continuity.

Setting this to False allows you to test schedule changes without the checkpoint overriding them. This is particularly useful when: - Testing changes to validation scheduling - Testing changes to learning rate scheduling - Adjusting checkpoint intervals