代码可以跑起来了

This commit is contained in:
2026-02-19 15:32:28 +08:00
parent b701d939c2
commit 88d14221ae
11 changed files with 503 additions and 89 deletions

View File

@@ -268,10 +268,30 @@
## 8. 你接下来只需提供的最小信息(进入代码改造前)
1. 2 个电机各自的物理含义与取值范围(单位、上下限)
2. 你当前数据中 `qpos``action` 的实际定义(是否相同)。
3. text instruction 是每个 episode 一条,还是每个 timestep 一条。
4. 相机数量、分辨率、帧率
5. 是否在训练时冻结 DistilBERT`freeze_text_encoder=True/False`)。
1. 2 个电机各自的物理含义与取值范围(单位、上下限):电机分别为 motor_x 和 motor_yx 的范围为 7000-17384y 的范围为 8000-18884。对应的 action_x 和 action_y 都为 0~65535 之间
2. 你当前数据中 `qpos``action` 的实际定义(是否相同)action 和 qpos 定义接近,只不过是将 0~65535 分别映射到电机磁编码器数值上
3. text instruction 是每个 episode 一条,还是每个 timestep 一条text instruction 是每个 timestep 一条。
4. 相机数量、分辨率、帧率:相机数量为 1分辨率为 224*224帧率为 30Hz对应的电机控制频率也为 30Hz
5. 是否在训练时冻结 DistilBERT`freeze_text_encoder=True/False`DistilBERT 完全冻结。构建训练集时,先将每一个 frame 的 text instruction 用 DistilBERT 编码以后再保存。这样训练过程中不需要调用 DistilBERT
> 有了这 5 项,即可进入下一步代码改造。
> 有了这 5 项,即可进入下一步代码改造。
text_input_ids、text_attention_mask 什么意思;'instruction_mode': 'episode-level'没有用到;
```python
instruction = ''
if self.use_text_instruction:
if '/instruction_timestep' in root:
instruction = self._decode_instruction(root['/instruction_timestep'][start_ts])
elif '/instruction' in root:
instruction_node = root['/instruction']
if getattr(instruction_node, 'shape', ()) == ():
instruction = self._decode_instruction(instruction_node[()])
else:
if len(instruction_node.shape) == 1 and instruction_node.shape[0] == episode_len:
instruction = self._decode_instruction(instruction_node[start_ts])
else:
instruction = self._decode_instruction(instruction_node[0])
```
为什么修改了 Transformer 的定义?这里是否会生效?