ray.rllib.policy.sample_batch.SampleBatch.right_zero_pad#
- SampleBatch.right_zero_pad(max_seq_len: int, exclude_states: bool = True)[源代码]#
Right (在末尾添加零) 就地对 SampleBatch 进行零填充。
这将把
self.zero_padded
标志设置为 True,并将self.max_seq_len
设置为给定的max_seq_len
值。- 参数:
max_seq_len – 最大(总计)长度,用于填充零。
exclude_states – 如果为 False,也对所有
state_in_x
数据进行右零填充。如果为 True,则保持state_in_x
键不变。
- 返回:
这个非常(现在右零填充的)SampleBatch。
- 抛出:
ValueError – 如果 self[SampleBatch.SEQ_LENS] 为 None(未定义)。
from ray.rllib.policy.sample_batch import SampleBatch batch = SampleBatch( {"a": [1, 2, 3], "seq_lens": [1, 2]}) print(batch.right_zero_pad(max_seq_len=4)) batch = SampleBatch({"a": [1, 2, 3], "state_in_0": [1.0, 3.0], "seq_lens": [1, 2]}) print(batch.right_zero_pad(max_seq_len=5))
{"a": [1, 0, 0, 0, 2, 3, 0, 0], "seq_lens": [1, 2]} {"a": [1, 0, 0, 0, 0, 2, 3, 0, 0, 0], "state_in_0": [1.0, 3.0], # <- all state-ins remain as-is "seq_lens": [1, 2]}