def uncoalesce_projection()

in automl21/scs_neural/utils/utils.py [0:0]


    def uncoalesce_projection(y, cones, nbatch):
        """Uncoalesce vector y into a batched vector"""
        y_batch = [[] for _ in range(nbatch)]
        start = 0

        # assume cones are identical
        boundaries = ConeUtils.get_cone_boundaries(cones[0], combined=False) 
        for szs in boundaries:
            for sz in szs:
                for i in range(nbatch):
                    y_batch[i].append(y[start:start+sz])
                    start += sz

        y_batch = [torch.cat(yi) for yi in y_batch]
        y_stack = torch.stack(y_batch)
        return y_stack