Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Facebookresearch Habitat lab InfoDict Utils

From Leeroopedia
Revision as of 12:35, 16 February 2026 by Admin (talk | contribs) (Auto-imported from implementations/Facebookresearch_Habitat_lab_InfoDict_Utils.md)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Sources
Domains Embodied_AI, Utility
Last Updated 2026-02-15 00:00 GMT

Overview

The InfoDict Utils module provides utility functions for extracting scalar metrics from Gym environment info dictionaries, filtering out non-scalar values like top-down maps and collision flags.

Description

This module contains two functions:

extract_scalars_from_info takes a single Gym environment info dictionary and returns a flattened dictionary of string keys to float values. It recursively traverses nested dictionaries (using dot-separated keys), filters out non-scalar values (strings, arrays with size > 1), and excludes entries from the NON_SCALAR_METRICS set (which includes "top_down_map" and "collisions.is_collision") as well as any user-specified ignore_keys.

extract_scalars_from_infos applies extract_scalars_from_info to a list of info dictionaries (one per environment) and aggregates the results into a dictionary mapping metric names to lists of float values, using a defaultdict(list).

Usage

Use these functions during training or evaluation to extract loggable scalar metrics from environment info dictionaries for TensorBoard logging or metric aggregation.

Code Reference

Source Location

Signature

NON_SCALAR_METRICS = {"top_down_map", "collisions.is_collision"}

def extract_scalars_from_info(
    info: Dict[str, Any], ignore_keys: Optional[Set[str]] = None
) -> Dict[str, float]:

def extract_scalars_from_infos(
    infos: List[Dict[str, Any]],
    ignore_keys: Optional[Set[str]] = None,
) -> Dict[str, List[float]]:

Import

from habitat_baselines.utils.info_dict import extract_scalars_from_info, extract_scalars_from_infos

I/O Contract

Inputs (extract_scalars_from_info)

Name Type Required Description
info Dict[str, Any] Yes A single Gym environment info dictionary
ignore_keys Optional[Set[str]] No Set of key names to exclude from the result (default: None)

Outputs (extract_scalars_from_info)

Name Type Description
scalars Dict[str, float] Flattened dictionary of scalar metric names to float values

Inputs (extract_scalars_from_infos)

Name Type Required Description
infos List[Dict[str, Any]] Yes List of Gym environment info dictionaries (one per environment)
ignore_keys Optional[Set[str]] No Set of key names to exclude from results (default: None)

Outputs (extract_scalars_from_infos)

Name Type Description
scalars Dict[str, List[float]] Dictionary mapping metric names to lists of float values (one per environment)

Usage Examples

Basic Usage

from habitat_baselines.utils.info_dict import (
    extract_scalars_from_info,
    extract_scalars_from_infos,
)

# Single environment info
info = {
    "distance_to_goal": 1.5,
    "success": 1.0,
    "spl": 0.85,
    "top_down_map": {"map": large_array},  # Filtered out
    "collisions": {"is_collision": True, "count": 3},
}

scalars = extract_scalars_from_info(info)
# Result: {"distance_to_goal": 1.5, "success": 1.0, "spl": 0.85, "collisions.count": 3.0}

# Multiple environments
infos = [info_env0, info_env1, info_env2]
aggregated = extract_scalars_from_infos(infos)
# Result: {"distance_to_goal": [1.5, 2.0, 0.8], "success": [1.0, 0.0, 1.0], ...}

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment