Initial observation padding changes when source arrays are reused
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 85/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- numpy, python
- Ambito
- machine-learning
Direzione di ricerca
Inizia da dm_control/composer/observation/obs_buffer.py e dal percorso di padding di Buffer; esegui prima la riproduzione NumPy dell'issue. Controlla la gestione esistente delle osservazioni inserite normalmente e il percorso dell'updater descritto nel report, quindi verifica che il padding iniziale rimanga invariato dopo la modifica dell'array sorgente o dello stato della simulazione, mentre l'ordine, il zero padding, le dimensioni e le osservazioni successive rimangano intatti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Python
- Stelle
- 4.7k
- Fork
- 765
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di google-deepmind/dm_control
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 75/100
google-deepmind/dm_control#560 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 74/100
google-deepmind/dm_control#557 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
google-deepmind/dm_control#552 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
google-deepmind/dm_control#540 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
google-deepmind/dm_control#537 · 1 commento ·
Tutte le issue di google-deepmind/dm_control
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
https://search.utilibre.orgApertainstance instance add
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
searxng/searx-instances#941 · 1 commento ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
FluidNumerics/fluid-walk-blocker#89 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno