def step(x0_, x1_):
    (x1_, shuffle) = utils.batch_shuffle(x1_, distributed=distributed)
    x0_ = self.backbone(x0_).flatten(start_dim=1)
    x0_ = self.projection_head(x0_)
    x1_ = self.backbone_momentum(x1_).flatten(start_dim=1)
    x1_ = self.projection_head_momentum(x1_)
    x1_ = utils.batch_unshuffle(x1_, shuffle, distributed=distributed)
    return (x0_, x1_)
def step(x0_, x1_):
    (x1_, shuffle) = utils.batch_shuffle(x1_, distributed=distributed)
    x0_ = self.backbone(x0_).flatten(start_dim=1)
    x0_ = self.projection_head(x0_)
    x1_ = self.backbone_momentum(x1_).flatten(start_dim=1)
    x1_ = self.projection_head_momentum(x1_)
    x1_ = utils.batch_unshuffle(x1_, shuffle, distributed=distributed)
    return (x0_, x1_)