{ "model_type": "CNN", "input_shape": [150, 150, 3], "num_classes": 4, "layers": [ { "type": "Conv2D", "filters": 32, "kernel_size": [3, 3], "activation": "relu" }, { "type": "Conv2D", "filters": 64, "kernel_size": [3, 3], "activation": "relu" }, { "type": "MaxPooling2D", "pool_size": [2, 2] }, { "type": "Dropout", "rate": 0.25 }, { "type": "Flatten" }, { "type": "Dense", "units": 128, "activation": "relu" }, { "type": "Dropout", "rate": 0.5 }, { "type": "Dense", "units": 4, "activation": "softmax" } ], "compile": { "loss": "categorical_crossentropy", "optimizer": "adam", "metrics": ["accuracy"] }, "training": { "batch_size": 64, "epochs": 10, "early_stopping": { "monitor": "val_loss", "patience": 5, "restore_best_weights": true } } }