Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Built-in observation aggregators drop bounds-preserving specifications

Abierto
#560 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
75/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Start by locating base.AGGREGATORS and Updater.observation_spec(), then reproduce the AttributeError and the bounded Generic observable case described in the issue. Check that min, max, mean and median retain scalar or per-element bounds while sum remains unbounded, without changing value, shape/dtype, custom-aggregator or unbounded-input behavior.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Reproduction

Built-in observation aggregators declare a bounds_reserving attribute, while Updater.observation_spec() reads preserves_bounds. Consequently, even min, max, mean and median are treated as having unknown bound behavior: the updater logs a warning and returns an unbounded Array instead of retaining a BoundedArray specification.

The problem is visible directly:

from dm_control.composer.observation.observable import base
assert base.AGGREGATORS['mean'].preserves_bounds is True
# AttributeError: functools.partial has no attribute preserves_bounds

A bounded Generic observable reduced with the built-in mean loses its limits through the actual Updater. Returned values remain in bounds, but the resulting specification no longer rejects out-of-bounds inputs.

Expected behavior

Use the attribute name already documented and consumed by Updater. The four bounds-preserving reducers should retain scalar or per-element limits, while sum must remain unbounded. Preserve reduced values, shape/dtype inference, custom-aggregator behavior and unbounded inputs.

Reproduced on main at a04e3e4cf56c12117d2294bb090f9acec21e5c67, including a native MuJoCo observation sequence. No renderer, external services or model inference is needed.

Lenguaje dominante
Python
Estrellas
4.7k
Forks
765
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de google-deepmind/dm_control

Todos los issues de google-deepmind/dm_control

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.