File size: 1,565 Bytes
1824b1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
---
library_name: openpi
tags:
- pi0.5
- pi05
- so101
- lerobot
- robotics
- lora
license: apache-2.0
---

# pi05-so101-lora-50demos

LoRA fine-tune of [pi05_base](https://huggingface.co/openpi/pi05_base) on
[jakegonz/pick-and-place-red-block-50demos](https://huggingface.co/datasets/jakegonz/pick-and-place-red-block-50demos).

| Step | Folder |
|------|--------|
| 5000 | `step_5000/`  |
| 10000 | `step_10000/` |
| 15000 | `step_15000/` |

## Training config

- Base: `gs://openpi-assets/checkpoints/pi05_base/params`
- Train config: `pi05_so101_lora` (PaliGemma 2B LoRA + Gemma 300M LoRA action expert)
- Action horizon: 10 (≈0.33 s @ 30 Hz)
- Batch size: 32
- LR schedule: cosine, peak 5e-5, warmup 500 steps, decay over 10k
- Optimizer: AdamW with grad clip 1.0

## Inference inputs (per step)

```text
observation.state              : float32 (6,)  joint pos (5 arm + 1 gripper, 0=open/100=closed)
observation.images.camera1     : uint8        wrist camera   → maps to `left_wrist_0_rgb`
observation.images.camera2     : uint8        overhead camera → maps to `base_0_rgb`
prompt                         : "Pick up the red block and place it"
```

## Loading

```python
from openpi.policies import policy_config
from openpi.training import config as _config

cfg = _config.get_config("pi05_so101_lora")
policy = policy_config.create_trained_policy(cfg, "step_15000")
```

Each step folder contains `params/`, `assets/`, and `_CHECKPOINT_METADATA` — the minimum
required by `create_trained_policy`. The `train_state/` optimizer state is not included.