Robotics
LeRobot
Safetensors
diffusion
tactile
manipulation
Dimios45's picture
final checkpoint (114.4 epochs) + model card
f6566f9 verified
|
Raw
History Blame Contribute Delete
3.16 kB
---
license: apache-2.0
library_name: lerobot
tags: [robotics, lerobot, diffusion, tactile, manipulation]
datasets: [aryankakad/tactile_charger_inserting]
---
# dp_vision_charger_50ep
**Diffusion** policy β€” **vision only** β€” trained on **50 episodes**.
Task: *grab and remove the charger from the socket and put it in the black box*
Trained with [LeFlexiTac](https://github.com/TNA001-AI/lerobot_tactile), a LeRobot fork adding
FlexiTac tactile sensing. Docs: <https://tna001-ai.github.io/LeFlexiTac/docs.html>
## Training data
| | |
|---|---|
| dataset | [`aryankakad/tactile_charger_inserting`](https://huggingface.co/datasets/aryankakad/tactile_charger_inserting) |
| episodes | 50 (all) |
| frames | 27,973 @ 30 fps |
| cameras | `observation.images.top`, `observation.images.gripper` (224Γ—224) |
| tactile | **not used** β€” vision-only baseline |
| state / action | 6-DoF SO-100 follower |
## Configuration
| | |
|---|---|
| steps | 200,000 |
| batch size | 16 |
| **epochs** | **114.4** |
| `horizon` | `16` |
| `n_obs_steps` | `2` |
| `n_action_steps` | `8` |
| `frame_stride` | `3` |
| `resize_shape` | `[144, 192]` |
| `crop_is_random` | `True` |
| `optimizer_lr` | `0.0001` |
| `use_amp` | `True` |
Every model in this series is **epoch-matched at ~114.4 epochs**, so dataset size and
sensor modality are the only variables across the set.
## Training command actually used
Run on 1Γ— AMD Instinct MI300X (ROCm 6.2.4). `HIP_VISIBLE_DEVICES` selected the GPU,
so `--policy.device=cuda` refers to that single card.
```bash
python -u -m lerobot.scripts.lerobot_train \
--dataset.repo_id=aryankakad/tactile_charger_inserting \
--policy.type=diffusion \
--policy.crop_is_random=true --policy.resize_shape='[144,192]' \
--policy.use_amp=true --policy.frame_stride=3 \
--policy.repo_id=Dimios45/dp_vision_charger_50ep \
--policy.private=true --policy.device=cuda \
--output_dir=outputs/train/D_dp_vision_50ep --job_name=D_dp_vision_50ep \
--batch_size=16 --num_workers=8 --steps=200000 --save_freq=40000 --wandb.enable=true
```
## Evaluation / rollout
Not run here β€” this machine has no robot attached. To evaluate, run on the machine with the
SO-100 and sensors, loading the policy with `--policy.path=Dimios45/dp_vision_charger_50ep`.
Reference: the `lerobot-record` eval invocations in
[`tactile_cmd.txt`](https://github.com/TNA001-AI/lerobot_tactile/blob/main/tactile_cmd.txt)
and the [project docs](https://tna001-ai.github.io/LeFlexiTac/docs.html). You will need to
supply your own robot port, camera serials.
## Notes
- Two ROCm-specific fixes were required in the fork: `persistent_workers=True` on the
dataloader (epoch boundaries otherwise stalled ~410 s each), and keeping
`cudnn.benchmark` **off** (on ROCm it triggers an exhaustive MIOpen search that can
precede step 1 by hours).
- Training loss is **not** a proxy for task success. Compare policies by rollout success
rate, especially on contact-rich phases.
- The source dataset's task string is labelled `stack cup` β€” a mislabel carried over from
an earlier session. It does not affect Diffusion, which is not language-conditioned.