代码可以跑起来了
This commit is contained in:
@@ -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_y,x 的范围为 7000-17384,y 的范围为 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 的定义?这里是否会生效?
|
||||
Reference in New Issue
Block a user