in phasic_policy_gradient/ppg.py [0:0]
def make_minibatches(segs, mbsize):
"""
Yield one epoch of minibatch over the dataset described by segs
Each minibatch mixes data between different segs
"""
nenv = tu.batch_len(segs[0])
nseg = len(segs)
envs_segs = th.tensor(list(itertools.product(range(nenv), range(nseg))))
for perminds in th.randperm(len(envs_segs)).split(mbsize):
esinds = envs_segs[perminds]
yield tu.tree_stack(
[tu.tree_slice(segs[segind], envind) for (envind, segind) in esinds]
)