| { |
| "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 |
| } |
| } |
| } |