Repository navigation
Conversation
Copy flat lists of builtin immutable values without recursively copying each scalar. Keep deepcopy for nested and custom values so overlapping windows and padding remain isolated before transforms. Co-Authored-By: Codex <noreply@anthropic.com> AI-Model: gpt-6 Co-Authored-By: Codex <noreply@ai-tool.com> AI-Contributed/Feature: 15/15 AI-Contributed/UT: 35/35
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
This PR remains draft: the long-window loader improvement is reproducible locally, but the target training-throughput improvement is not established.
CWD deep-copies each requested cell before applying transforms. Long action windows repeatedly recurse through the immutable scalars in numeric vectors. Copy flat lists of exact builtin immutable values directly; retain deepcopy for nested values, subclasses and custom objects so transforms and padding remain isolated.
This two-file follow-up to #10567 adds no sampler or cache configuration. The existing isolation test now checks overlapping/duplicate windows, repeated offsets, nested lists and mutable constant padding against explicit expected values.
Five alternating pairs on real RoboMIND JPEG data, after a discarded warmup round (samples/s; change is the ratio of medians):
The 128-step loader's paired gains were +2.9% to +9.4% (median +6.4%). The 32-step loader has no stable gain. CPU training results do not establish a general training speedup or the target of exceeding HDF5/LeRobot by 30%. The longer 200-step check's paired gains were -2.73% to +3.67% (median -1.67%); all short-run results are retained above.
Measurement scope: M2 Pro / 32 GiB, Python 3.13, Torch 2.10, PyArrow 19, Python reader, local files and uncontrolled OS cache. Loader: four complete episodes / 2,299 frames, three original 640x480 JPEG views, unchanged sample order and float32 tensors, batch 16, four warmup and 64 measured batches. ACT: two training episodes, batch 2, a reduced CPU model with the same 64x80 resize for all readers; 20 measured steps after four warmup updates, plus the 200-step check after ten warmup updates. These are engineering measurements, not GPU or convergence validation.
Tests