public SDVariable[] moments(String[] names, SDVariable input, SDVariable axes, boolean keepDims) {
    SDValidation.validateNumerical("moments", "input", input);
    SDValidation.validateNumerical("moments", "axes", axes);
    SDVariable[] out =  new org.nd4j.linalg.api.ops.impl.reduce.Moments(sd,input, axes, keepDims).outputVariables();
    return sd.updateVariableNamesAndReferences(out, names);