Initial observation padding changes when source arrays are reused
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 85/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- numpy, python
- Domaine
- machine-learning
Piste de recherche
Commencez par dm_control/composer/observation/obs_buffer.py et le chemin de padding de Buffer ; exécutez d’abord la reproduction NumPy de l’issue. Vérifiez la gestion existante des observations insérées normalement ainsi que le chemin de l’updater décrit dans le rapport, puis vérifiez que le padding initial reste inchangé après la modification du tableau source ou de l’état de la simulation, tandis que l’ordre, le zero padding, les tailles et les observations ultérieures restent intacts.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Reproduction
Initial-value observation padding retains a reference to the caller's array. Reusing that array changes the apparent initial observations, although normally inserted observations are copied.
import numpy as np
from dm_control.composer.observation.obs_buffer import Buffer
source = np.array([3., 7.])
buffer = Buffer(3, source.shape, source.dtype, pad_with_initial_value=True)
buffer.insert(timestamp=0, delay=0, value=source)
source[:] = -1
print(buffer.read(0))
# [[-1., -1.], [-1., -1.], [3., 7.]]
# Expected three copies of [3., 7.].
With a delayed first sample, all padding entries can change before that sample arrives. The same behavior occurs through the actual observation Updater when a Generic observable exposes physics.data.qpos: advancing MuJoCo rewrites padding intended to represent the initial state, including when mean aggregation is used.
Expected behavior
Snapshot the initial value before using it to fill the padding entries, consistently with regular inserted observations. Preserve arrival ordering, zero padding, buffer sizes, source data and subsequent observations.
Reproduced on main at a04e3e4cf56c12117d2294bb090f9acec21e5c67. The regression uses real buffer/updater code and a minimal native MuJoCo simulation, without rendering or trained agents.
- Langage dominant
- Python
- Étoiles
- 4.7k
- Forks
- 771
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de google-deepmind/dm_control
-
Small quaternion rotations are lost in axis-angle conversionPeut-être pris @sylvesterkaczmarek l’a pris il y a 13 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
google-deepmind/dm_control#563 ·
-
Built-in observation aggregators drop bounds-preserving specificationsPeut-être pris @sylvesterkaczmarek l’a pris il y a 17 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 75/100
google-deepmind/dm_control#560 ·
-
Flattened observations disagree with explicitly declared task specificationsPeut-être pris @sylvesterkaczmarek l’a pris il y a 18 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 74/100
google-deepmind/dm_control#557 ·
-
Schema regeneration in 985d0940 dropped three declarations MuJoCo 3.12 accepts (contact sensor, jointinparent references, custom numeric arrays)Peut-être pris @shoemoney l’a pris il y a 53 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 76/100
google-deepmind/dm_control#552 ·
-
DeprecationWarning: Setting the shape on a NumPy array has been deprecated in NumPy 2.5.Peut-être pris @Trenza1ore l’a pris il y a 98 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
google-deepmind/dm_control#540 · 1 commentaire ·
Toutes les issues de google-deepmind/dm_control
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
UKGovernmentBEIS/control-arena#917 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
debpalash/VoiceStudio#2937 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
aws-samples/sample-per-model-bedrock#261 ·
Les mainteneurs répondent en général sous 1 jour