private Sequential FitAndEvaluate(Sequential newModel, string bestWeightsFile) { int imgHeight = 75; int trainSamples = 31980; int testSamples = 4420; int epochs = 20; int batchSize = 26; string trainDirectory = "E:\\Projects\\MLProject1\\MLProject1\\bin\\Debug\\data\\Train"; string testDirectory = "E:\\Projects\\MLProject1\\MLProject1\\bin\\Debug\\data\\Test"; string validationDirectory = "E:\\Projects\\MLProject1\\MLProject1\\bin\\Debug\\data\\Valid"; ImageDataGenerator generator = new ImageDataGenerator(rescale: (float)(1.00 / 255.00)); //load and iterate training dataset KerasIterator trainIterator = generator.FlowFromDirectory(trainDirectory, class_mode: "categorical", target_size: new Tuple <int, int>(imgHeight, imgHeight), batch_size: batchSize); //color_mode:"grayscale"); // load and iterate testing dataset KerasIterator testIterator = generator.FlowFromDirectory(testDirectory, class_mode: "categorical", target_size: new Tuple <int, int>(imgHeight, imgHeight), batch_size: batchSize); //color_mode: "grayscale"); KerasIterator validationIterator = generator.FlowFromDirectory(validationDirectory, class_mode: "categorical", target_size: new Tuple <int, int>(imgHeight, imgHeight), batch_size: batchSize); ModelCheckpoint checkpoint = new ModelCheckpoint(filepath: bestWeightsFile, monitor: "val_accuracy", verbose: 1, save_best_only: true); newModel.FitGenerator(trainIterator, steps_per_epoch: trainSamples / batchSize, epochs: epochs, verbose: 1, validation_data: validationIterator, callbacks: new Callback[] { checkpoint }); //evaluate model double[] loss = newModel.EvaluateGenerator(testIterator, steps: testSamples / batchSize); foreach (double d in loss) { Console.Write(d + " "); } return(newModel); }