mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-24 10:16:09 +00:00
chore(policies): add explicit dataset dependecy to gr00t implementation
This commit is contained in:
@@ -218,6 +218,7 @@ groot = [
|
|||||||
"lerobot[transformers-dep]",
|
"lerobot[transformers-dep]",
|
||||||
"lerobot[peft-dep]",
|
"lerobot[peft-dep]",
|
||||||
"lerobot[diffusers-dep]",
|
"lerobot[diffusers-dep]",
|
||||||
|
"lerobot[dataset]", # NOTE: processor_groot builds a LeRobotDataset for relative-action training stats
|
||||||
"dm-tree>=0.1.8,<1.0.0",
|
"dm-tree>=0.1.8,<1.0.0",
|
||||||
"timm>=1.0.0,<1.1.0",
|
"timm>=1.0.0,<1.1.0",
|
||||||
"decord>=0.6.0,<1.0.0; (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
"decord>=0.6.0,<1.0.0; (platform_machine == 'AMD64' or platform_machine == 'x86_64')",
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import torchvision.transforms.v2.functional as tv_functional
|
|||||||
from einops import rearrange
|
from einops import rearrange
|
||||||
from torchvision.transforms import InterpolationMode
|
from torchvision.transforms import InterpolationMode
|
||||||
|
|
||||||
from lerobot.utils.import_utils import _transformers_available, require_package
|
from lerobot.utils.import_utils import _datasets_available, _transformers_available, require_package
|
||||||
|
|
||||||
if TYPE_CHECKING or _transformers_available:
|
if TYPE_CHECKING or _transformers_available:
|
||||||
from transformers import (
|
from transformers import (
|
||||||
@@ -44,6 +44,11 @@ else:
|
|||||||
Qwen3VLProcessor = None
|
Qwen3VLProcessor = None
|
||||||
Qwen3VLVideoProcessor = None
|
Qwen3VLVideoProcessor = None
|
||||||
|
|
||||||
|
if TYPE_CHECKING or _datasets_available:
|
||||||
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
||||||
|
else:
|
||||||
|
LeRobotDataset = None
|
||||||
|
|
||||||
from lerobot.processor import (
|
from lerobot.processor import (
|
||||||
AbsoluteActionsProcessorStep,
|
AbsoluteActionsProcessorStep,
|
||||||
AddBatchDimensionProcessorStep,
|
AddBatchDimensionProcessorStep,
|
||||||
@@ -811,7 +816,7 @@ def _make_relative_action_training_stats_from_dataset_meta(
|
|||||||
if dataset_meta is None or repo_id is None or root is None or fps is None:
|
if dataset_meta is None or repo_id is None or root is None or fps is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
require_package("datasets", extra="groot")
|
||||||
|
|
||||||
delta_timestamps = {ACTION: [index / fps for index in config.action_delta_indices]}
|
delta_timestamps = {ACTION: [index / fps for index in config.action_delta_indices]}
|
||||||
dataset = LeRobotDataset(
|
dataset = LeRobotDataset(
|
||||||
|
|||||||
@@ -129,6 +129,7 @@ _placo_available = is_package_available("placo")
|
|||||||
_hidapi_available = is_package_available("hidapi", import_name="hid")
|
_hidapi_available = is_package_available("hidapi", import_name="hid")
|
||||||
|
|
||||||
# Data / serialization
|
# Data / serialization
|
||||||
|
_datasets_available = is_package_available("datasets")
|
||||||
_pandas_available = is_package_available("pandas")
|
_pandas_available = is_package_available("pandas")
|
||||||
_faker_available = is_package_available("faker")
|
_faker_available = is_package_available("faker")
|
||||||
|
|
||||||
|
|||||||
@@ -2283,7 +2283,7 @@ def test_groot_n1_7_relative_action_processors_compute_stats_from_runtime_datase
|
|||||||
]
|
]
|
||||||
return _RelativeStatsDataset()
|
return _RelativeStatsDataset()
|
||||||
|
|
||||||
monkeypatch.setattr("lerobot.datasets.lerobot_dataset.LeRobotDataset", _fake_lerobot_dataset)
|
monkeypatch.setattr("lerobot.policies.groot.processor_groot.LeRobotDataset", _fake_lerobot_dataset)
|
||||||
config._runtime_dataset_meta = runtime_meta
|
config._runtime_dataset_meta = runtime_meta
|
||||||
|
|
||||||
preprocessor, postprocessor = make_groot_pre_post_processors(config, dataset_stats=absolute_dataset_stats)
|
preprocessor, postprocessor = make_groot_pre_post_processors(config, dataset_stats=absolute_dataset_stats)
|
||||||
|
|||||||
@@ -2957,11 +2957,17 @@ gamepad = [
|
|||||||
{ name = "pygame" },
|
{ name = "pygame" },
|
||||||
]
|
]
|
||||||
groot = [
|
groot = [
|
||||||
|
{ name = "av" },
|
||||||
|
{ name = "datasets" },
|
||||||
{ name = "decord", marker = "platform_machine == 'AMD64' or platform_machine == 'x86_64'" },
|
{ name = "decord", marker = "platform_machine == 'AMD64' or platform_machine == 'x86_64'" },
|
||||||
{ name = "diffusers" },
|
{ name = "diffusers" },
|
||||||
{ name = "dm-tree" },
|
{ name = "dm-tree" },
|
||||||
|
{ name = "jsonlines" },
|
||||||
|
{ name = "pandas" },
|
||||||
{ name = "peft" },
|
{ name = "peft" },
|
||||||
|
{ name = "pyarrow" },
|
||||||
{ name = "timm" },
|
{ name = "timm" },
|
||||||
|
{ name = "torchcodec", marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') or (platform_machine == 'AMD64' and sys_platform == 'linux') or (platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'arm64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux') or sys_platform == 'win32'" },
|
||||||
{ name = "transformers" },
|
{ name = "transformers" },
|
||||||
]
|
]
|
||||||
grpcio-dep = [
|
grpcio-dep = [
|
||||||
@@ -3240,6 +3246,7 @@ requires-dist = [
|
|||||||
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'annotations'" },
|
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'annotations'" },
|
||||||
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'core-scripts'" },
|
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'core-scripts'" },
|
||||||
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'dataset-viz'" },
|
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'dataset-viz'" },
|
||||||
|
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'groot'" },
|
||||||
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'hilserl'" },
|
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'hilserl'" },
|
||||||
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'libero'" },
|
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'libero'" },
|
||||||
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'metaworld'" },
|
{ name = "lerobot", extras = ["dataset"], marker = "extra == 'metaworld'" },
|
||||||
|
|||||||
Reference in New Issue
Block a user