public double[] GenerateArt(int batch_size = 1, int net_size = 16, int h_size = 8, int width = 512, int height = 512, float scaling = 10.0f, bool RGB = true, int?seed = null) { int?KeyId = null; if (seed != null) { KeyId = seed; npx.random.seed(KeyId.GetValueOrDefault()); } else { KeyId = Math.Abs(DateTime.Now.GetHashCode()); npx.random.seed(KeyId.GetValueOrDefault()); } var art = new ArtGenNumSharp(); art.InitialiseCPPN(batch_size, net_size, RGB: RGB); if (RGB) { C_Dim = 3; } else { C_Dim = 1; } var imageData = art.Generate(width, height, scaling); var imgData = np.array(1 - imageData); if (C_Dim > 1) { imgData = np.array(imgData.reshape((height, width, C_Dim)) * 255.0); } else { imgData = np.array(imgData.reshape((height, width)) * 255.0); } return(imgData.ToArray <double>()); //var KeyId = 0; //if (seed != 0) //{ // KeyId = seed; // np.random.seed(seed); //} //else //{ // KeyId = Math.Abs(DateTime.Now.GetHashCode()); // np.random.seed(KeyId); //} //var z = np.random.uniform(-1.0, 1.0, new int[] { batchsize, hsize }).astype(np.float32); ////Generate Random Key to generate image //var data = CreateGrid(width, height, scaling); //X_Dat = data[0]; //Y_Dat = data[1]; //R_Dat = data[2]; //var art = BuildCPPN(width, height, X_Dat, Y_Dat, R_Dat, z); //var rgbData = np.multiply(art.flatten(), np.array(255)).ToArray<double>().ToList().ConvertAll(x => (byte)x); //return rgbData; }