Flattened observations disagree with explicitly declared task specifications
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 74/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- numpy, python
調査の方向性
Start at control.Environment.observation_spec and compare the explicit-spec path with the existing fallback flattening path used when no specification is declared. Check that flat_observation preserves shapes and NumPy dtype promotion without materializing observations or calling get_observation, while leaving the caller's spec and mapping type unchanged. Run the regression against reset and step behavior to confirm the declared and inferred paths agree.
索引モデルが issue の本文から書いたものです。
説明
Reproduction
On current main, an environment using flat_observation=True flattens the values returned by reset and step, but returns an unflattened specification when the task implements observation_spec.
For example, a task declaring a float32 position array of shape (2,) and an int32 scalar mode produces one float64 observations array of shape (3,). Environment.observation_spec() instead returns the original two specifications.
The fallback path for tasks without an explicit specification already flattens correctly. Agents that allocate or validate observations from the environment specification therefore behave differently depending on whether the task supplies its own spec.
Expected behavior
Flatten the declared shapes and apply NumPy's concatenation dtype promotion when flattening is enabled, without materializing observation arrays or calling get_observation. Preserve the caller's spec, mapping type, normal unflattened behavior, and the existing inference path.
Reproduced with actual control.Environment calls and a small native MuJoCo task. The new regression fails on current main at a04e3e4cf56c12117d2294bb090f9acec21e5c67; no renderer, trained policies or external service is required.
- 主要言語
- Python
- スター
- 4.7k
- フォーク
- 765
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
google-deepmind/dm_control のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
google-deepmind/dm_control#559 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 75/100
google-deepmind/dm_control#560 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
google-deepmind/dm_control#552 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
google-deepmind/dm_control#540 · コメント 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
google-deepmind/dm_control#537 · コメント 1 件 ·
google-deepmind/dm_control の issue をすべて見る
似ている issue
-
customer-reported
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Azure/azure-cli#34150 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
community-request
難易度 1/5 1時間未満 初心者へのやさしさ 95/100
NVIDIA-NeMo/Curator#2464 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
WeblateOrg/translation-finder#1099 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
trezor/trezor-firmware#7997 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信