Instructions to use Dexmal/DM05-Lerobot-MEM with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use Dexmal/DM05-Lerobot-MEM with LeRobot:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
DM05-MEM for LeRobot
This is a LeRobot-format conversion of the public
Dexmal/DM05-MEM
base weights, adapted for LeRobot datasets, processors, training, and inference.
The BF16 weights are unchanged. Load the complete checkpoint with
--policy.path or DM05Policy.from_pretrained(); no checkpoint conversion is required.
Requirements
Use Python 3.12 or later and a LeRobot checkout with DM05-MEM support. From the LeRobot repository root, install the training dependencies:
pip install -e '.[training,dataset,dm05]'
Fine-tuning
Prepare a standard LeRobot dataset containing images, observation.state,
action, and task descriptions, then fine-tune directly:
lerobot-train \
--policy.path=Dexmal/DM05-Lerobot-MEM \
--dataset.repo_id=your_org/your_dataset \
--policy.use_memory=true \
--policy.memory_image_key=observation.images.cam_high \
--policy.memory_frames=20 --policy.memory_stride=25 \
--policy.chunk_size=25 --policy.n_action_steps=25 \
--policy.push_to_hub=false \
--policy.device=cuda \
--batch_size=1 \
--steps=1000 \
--output_dir=outputs/train/dm05-mem
For a local copy, replace the Hub identifier with the checkpoint directory.
Training uses the target dataset's normalization statistics. Match its camera
names to the checkpoint with --rename_map, for example:
--rename_map='{"observation.images.top":"observation.images.cam_high","observation.images.left_wrist":"observation.images.cam_left_wrist","observation.images.right_wrist":"observation.images.cam_right_wrist"}'
Use policy.image_keys to set camera order and policy.memory_image_key to select
the history camera. Adjust the history stride to the dataset frame rate;
memory_stride=25 samples one past frame per second for 25 FPS data.
Set policy.robot_type for the target robot prompt and use state/action statistics
appropriate to the target dataset and action representation. Fresh fine-tuning
uses the target dataset's feature dimensions and statistics; inference uses those
saved with the fine-tuned checkpoint.
Default Configuration
The checkpoint includes the following configurable LeRobot defaults:
| Setting | Value |
|---|---|
| State and output action | 14-dimensional absolute joint values |
| Cameras, in order | cam_high, cam_left_wrist, cam_right_wrist |
| Image feature prefix | observation.images. |
| Main memory camera | observation.images.cam_high |
| Past frames / stride | 20 / 25 dataset or captured control frames |
| Input capture rate for this profile | 25 FPS |
| Prediction / execution chunk | 25 / 25 |
| Robot prompt | Aloha |
| Normalization | Per-dimension quantiles; clipping disabled |
These are adapter defaults, not restrictions on the fine-tuning task. The saved joint-space processor profile differs from the source release's native EEF inference profile. Use target-dataset statistics for fine-tuning rather than reusing the bundled statistics for a different robot or action representation.
Loading and History
from lerobot.policies.dm05.modeling_dm05 import DM05Policy
from lerobot.policies.factory import make_pre_post_processors
checkpoint = "Dexmal/DM05-Lerobot-MEM"
policy = DM05Policy.from_pretrained(checkpoint)
preprocessor, postprocessor = make_pre_post_processors(
policy.config, pretrained_path=checkpoint,
)
Feed every control-frame observation through the saved preprocessor and
select_action(), then use the saved postprocessor. Reset the policy and processors
between episodes. Direct predict_action_chunk() calls require an explicit
history sequence and padding masks, not one current image per action chunk.
Checkpoint Format
The directory contains config.json with nested core_config, BF16
model.safetensors, pre/postprocessor configurations and normalization tensors,
and the tokenizer/image-processor assets in dm05_processor/.
conversion.json records the conversion provenance and saved processor profile.
The redundant tied input-embedding alias is omitted from the saved state dict;
its values are reconstructed from the tied output embedding on load.
Resources
License
The source model is distributed under the Gemma license. This conversion retains that license and its applicable terms; it does not grant additional rights. See the source model card.
- Downloads last month
- -