

def perform(self, node, ins, outs):
    '\n        .. todo::\n\n            WRITEME\n        '
    (x,) = ins
    outs[0][0] = z = x.copy()
    (B, M, N, K) = x.shape
    for level in range(1, self.n_levels):
        z0 = z[0]
        if ((z0.shape[0] <= 2) or (z0.shape[1] <= 2)):
            raise ValueError('Cannot downsample an image smaller than 3x3', z0.shape)
        logger.info('{0} {1} {2}'.format(z0.shape, z0.dtype, z0.strides))
        out0 = cv.pyrDown(z0)
        assert (out0.dtype == x.dtype)
        if (out0.ndim == 3):
            assert (out0.shape[2] == x.shape[3])
        else:
            assert (K == 1)
        out = numpy.empty((x.shape[0], out0.shape[0], out0.shape[1], K), dtype=out0.dtype)
        if (K == 1):
            out[0][:, :, 0] = out0
        else:
            out[0] = out0
        for (i, zi) in enumerate(z[1:]):
            if (K == 1):
                out[i][:, :, 0] = cv.pyrDown(z[i])
            else:
                out[i] = cv.pyrDown(z[i])
        outs[level][0] = out
        z = out

dataset/ETHPy150Open lisa-lab/pylearn2/pylearn2/packaged_dependencies/theano_linear/pyramid.py GaussianPyramid.perform/original