@classmethod
    def __call__(cls, *args):
        r, g, b, mode = cls._args_to_vectors(args)
        r = clip(r,1,0)
        g = clip(g,1,0)
        b = clip(b,1,0)        
        M = np.maximum(r,np.maximum(g,b))
        m = np.minimum(r,np.minimum(g,b))
        C = M - m
        h = np.zeros_like(C)
        i = M == r
        h[i] = np.mod((g[i]-b[i])/C[i],6)
        i  = M == g
        h[i] = (b[i]-r[i])/C[i] + 2 
        i = M == b
        h[i] = (r[i]-g[i])/C[i] + 4
        H = h * 60
        I = (r + g + b) / 3.
        S = np.zeros_like(C)
        i = C != 0
        S[i] = 1 - m[i] / I[i]
        return cls._vectors_to_return(H,S,I, mode)
Initializes the output space of the ConvElemwise layer by taking
dataset/ETHPy150Open yhat/ggplot/ggplot/utils/color.py/ColorHSIInverse.__call__--crossover with--dataset/ETHPy150Open lisa-lab/pylearn2/pylearn2/models/mlp.py/ConvElemwise.initialize_output_space