diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..df7d2d5bc --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.memmap filter=lfs diff=lfs merge=lfs -text diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e5e73f1f5..f99c964b6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,6 +17,7 @@ jobs: runs-on: ubuntu-latest env: POETRY_VERSION: 1.8.1 + DATA_DIR: tests/data steps: #---------------------------------------------- # check-out repo and set-up python diff --git a/.gitignore b/.gitignore index ff3ad574d..e2d4c0ec3 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,7 @@ pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports +!tests/data htmlcov/ .tox/ .nox/ diff --git a/lerobot/common/datasets/pusht.py b/lerobot/common/datasets/pusht.py index 5d2f5e38e..33355c702 100644 --- a/lerobot/common/datasets/pusht.py +++ b/lerobot/common/datasets/pusht.py @@ -125,6 +125,9 @@ class PushtExperienceReplay(AbstractExperienceReplay): episode_ids = torch.from_numpy(dataset_dict.get_episode_idxs()) num_episodes = dataset_dict.meta["episode_ends"].shape[0] total_frames = dataset_dict["action"].shape[0] + # to create test artifact + # num_episodes = 1 + # total_frames = 50 assert len( {dataset_dict[key].shape[0] for key in dataset_dict.keys()} # noqa: SIM118 ), "Some data type dont have the same number of total frames." @@ -142,6 +145,8 @@ class PushtExperienceReplay(AbstractExperienceReplay): idxtd = 0 for episode_id in tqdm.tqdm(range(num_episodes)): idx1 = dataset_dict.meta["episode_ends"][episode_id] + # to create test artifact + # idx1 = 51 num_frames = idx1 - idx0 diff --git a/tests/data/action.memmap b/tests/data/action.memmap new file mode 100644 index 000000000..f4127fb1c --- /dev/null +++ b/tests/data/action.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba17d8e5c30151ea5f7f6fc31f19e12a68ce2113774b74c8aca0c7ef962a75f4 +size 400 diff --git a/tests/data/episode.memmap b/tests/data/episode.memmap new file mode 100644 index 000000000..af9fb07fd --- /dev/null +++ b/tests/data/episode.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a12e561363385e9dfeeab326368731c030ed4b374e7f5897ac819159d2884c5 +size 400 diff --git a/tests/data/frame_id.memmap b/tests/data/frame_id.memmap new file mode 100644 index 000000000..dc2f585cf --- /dev/null +++ b/tests/data/frame_id.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c202d9cfc7858fd49d522047e16948359bbbb2eda2d3825d552e45a78d5f8585 +size 400 diff --git a/tests/data/meta.json b/tests/data/meta.json new file mode 100644 index 000000000..6f7c42184 --- /dev/null +++ b/tests/data/meta.json @@ -0,0 +1 @@ +{"action": {"device": "cpu", "shape": [50, 2], "dtype": "torch.float32"}, "episode": {"device": "cpu", "shape": [50], "dtype": "torch.int64"}, "frame_id": {"device": "cpu", "shape": [50], "dtype": "torch.int64"}, "shape": [50], "device": "cpu", "_type": ""} \ No newline at end of file diff --git a/tests/data/next/done.memmap b/tests/data/next/done.memmap new file mode 100644 index 000000000..3c77d33bb --- /dev/null +++ b/tests/data/next/done.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1a8f20ab8c1dead0f61b7b38de300b0ebd0df1d870babfbbe03ce9d2b81e36a +size 50 diff --git a/tests/data/next/meta.json b/tests/data/next/meta.json new file mode 100644 index 000000000..b29a9ff74 --- /dev/null +++ b/tests/data/next/meta.json @@ -0,0 +1 @@ +{"reward": {"device": "cpu", "shape": [50, 1], "dtype": "torch.float32"}, "done": {"device": "cpu", "shape": [50, 1], "dtype": "torch.bool"}, "success": {"device": "cpu", "shape": [50, 1], "dtype": "torch.bool"}, "shape": [50], "device": "cpu", "_type": ""} \ No newline at end of file diff --git a/tests/data/next/observation/image.memmap b/tests/data/next/observation/image.memmap new file mode 100644 index 000000000..686343788 --- /dev/null +++ b/tests/data/next/observation/image.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff6a3748c8223a82e54c61442df7b8baf478a20497ee2353645a1e9ccd765162 +size 5529600 diff --git a/tests/data/next/observation/meta.json b/tests/data/next/observation/meta.json new file mode 100644 index 000000000..57e0edea7 --- /dev/null +++ b/tests/data/next/observation/meta.json @@ -0,0 +1 @@ +{"image": {"device": "cpu", "shape": [50, 3, 96, 96], "dtype": "torch.float32"}, "state": {"device": "cpu", "shape": [50, 2], "dtype": "torch.float32"}, "shape": [50], "device": "cpu", "_type": ""} \ No newline at end of file diff --git a/tests/data/next/observation/state.memmap b/tests/data/next/observation/state.memmap new file mode 100644 index 000000000..8dd28f2af --- /dev/null +++ b/tests/data/next/observation/state.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fad4ece6d5fd66bbafa34f6ff383c483410082b8d7d4f4616808c3c458ce1d43 +size 400 diff --git a/tests/data/next/reward.memmap b/tests/data/next/reward.memmap new file mode 100644 index 000000000..109ed5ad5 --- /dev/null +++ b/tests/data/next/reward.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d9c54dee5660c46886f32d80e57e9dd0ffa57ee0cd2a762b036d9c8e0c3a33a +size 200 diff --git a/tests/data/next/success.memmap b/tests/data/next/success.memmap new file mode 100644 index 000000000..44fd709f9 --- /dev/null +++ b/tests/data/next/success.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc2786e1f9910a9d811400edcddaf7075195f7a16b216dcbefba3bc7c4f2ae51 +size 50 diff --git a/tests/data/observation/image.memmap b/tests/data/observation/image.memmap new file mode 100644 index 000000000..42c86ef0f --- /dev/null +++ b/tests/data/observation/image.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bbde5cfd8cff9fd9fc6c9a57177f6fd31c8a03cf853b7d2234312f38380b0ba +size 5529600 diff --git a/tests/data/observation/meta.json b/tests/data/observation/meta.json new file mode 100644 index 000000000..57e0edea7 --- /dev/null +++ b/tests/data/observation/meta.json @@ -0,0 +1 @@ +{"image": {"device": "cpu", "shape": [50, 3, 96, 96], "dtype": "torch.float32"}, "state": {"device": "cpu", "shape": [50, 2], "dtype": "torch.float32"}, "shape": [50], "device": "cpu", "_type": ""} \ No newline at end of file diff --git a/tests/data/observation/state.memmap b/tests/data/observation/state.memmap new file mode 100644 index 000000000..3ac8e4ab7 --- /dev/null +++ b/tests/data/observation/state.memmap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67c7e39090a16546fb1eade833d704f26464d574d7e431415f828159a154d2bf +size 400 diff --git a/tests/data/stats.pth b/tests/data/stats.pth new file mode 100644 index 000000000..329cb35f7 Binary files /dev/null and b/tests/data/stats.pth differ