diff --git a/lerobot/common/policies/smolvla/configuration_smolvla.py b/lerobot/common/policies/smolvla/configuration_smolvla.py index a5de72644..5996cf2e7 100644 --- a/lerobot/common/policies/smolvla/configuration_smolvla.py +++ b/lerobot/common/policies/smolvla/configuration_smolvla.py @@ -98,9 +98,9 @@ class SmolVLAConfig(PreTrainedConfig): self_attn_every_n_layers: int = 2 # Interleave SA layers each self_attn_every_n_layers expert_width_multiplier: float = 0.75 # The action expert hidden size (wrt to the VLM) - min_period: float = 4e-3 # sensitivity range for the timestep used in sine-cosine positional encoding - max_period: float = 4.0 - + min_period: float = 4e-3 # sensitivity range for the timestep used in sine-cosine positional encoding + max_period: float = 4.0 + def __post_init__(self): super().__post_init__() diff --git a/lerobot/common/policies/smolvla/modeling_smolvla.py b/lerobot/common/policies/smolvla/modeling_smolvla.py index 23042d5b3..65f03cd20 100644 --- a/lerobot/common/policies/smolvla/modeling_smolvla.py +++ b/lerobot/common/policies/smolvla/modeling_smolvla.py @@ -656,8 +656,8 @@ class VLAFlowMatching(nn.Module): dtype = action_emb.dtype # Embed timestep using sine-cosine positional encoding with sensitivity in the range [0, 1] time_emb = create_sinusoidal_pos_embedding( - timestep, self.vlm_with_expert.expert_hidden_size, self.config.min_period, self.config.max_period, device=device - ) + timestep, self.vlm_with_expert.expert_hidden_size, self.config.min_period, self.config.max_period, device=device) + time_emb = time_emb.type(dtype=dtype) time_emb = time_emb[:, None, :].expand_as(action_emb) diff --git a/tests/test_available.py b/tests/test_available.py index f4f9d4de6..c6477050d 100644 --- a/tests/test_available.py +++ b/tests/test_available.py @@ -21,6 +21,7 @@ import pytest import lerobot from lerobot.common.policies.act.modeling_act import ACTPolicy from lerobot.common.policies.diffusion.modeling_diffusion import DiffusionPolicy +from lerobot.common.policies.smolvla.modeling_smolvla import SmolVLAPolicy from lerobot.common.policies.tdmpc.modeling_tdmpc import TDMPCPolicy from lerobot.common.policies.vqbet.modeling_vqbet import VQBeTPolicy from tests.utils import require_env @@ -45,12 +46,7 @@ def test_available_policies(): This test verifies that the class attribute `name` for all policies is consistent with those listed in `lerobot/__init__.py`. """ - policy_classes = [ - ACTPolicy, - DiffusionPolicy, - TDMPCPolicy, - VQBeTPolicy, - ] + policy_classes = [ACTPolicy, DiffusionPolicy, TDMPCPolicy, VQBeTPolicy, SmolVLAPolicy] policies = [pol_cls.name for pol_cls in policy_classes] assert set(policies) == set(lerobot.available_policies), policies