indata: "Input data" { shape: cylinder } model_generation: Model Generation { hidden_layers_generator: Hidden Layers Model Generator hidden_layers_generator<->generator: Request/Accept Model head_generator: Head Models Generator { _.head_generator->model1: Create _.head_generator->model2: Create _.head_generator->modeln: Create model1 model2 modeln: "Model..." model1<->_.generator: Request/Accept Model model2<->_.generator: Request/Accept Model modeln<->_.generator: Request/Accept Model model1->_.head_generator: Accept Model model2->_.head_generator: Accept Model modeln->_.head_generator: Accept Model } generator: Generator { _.generator->model_search: Start model_search: Model Search { database_search: Database search autoML: Automl } model_search->model_training: Propose model model_training->model_search: Reject model and request new one model_training: Model Traning { _.model_training->node: Start Training node: Node _.model_training<-node: End Training } model_training->_.generator: Accept Model } } node_manager: Node_Manager { node1 node2 noden: "node..." node_manager->node1: Manage node_manager->node2: Manage node_manager->noden: Manage } model_generation.generator.model_training.node<->node_manager: Request/Gives node to train model_database: Model database { shape: cylinder } model_runner: Model Runner { node: Node headless: Obatin Headless Model _.model_runner->headless: Start headless<->_.model_database: Request/Get Model headless<->node: Run/Result headless->model_search: Results model_search: Model Search { } model_search<->_.model_database: Request Head Models head_model: Head Model model_search->head_model: Obtain head_model<->node: Run/Result head_model->model_search: Unsatatisfary results, request new model head_model->results_cache: Unsatatisfary results, save results results_cache: Results Cache combine: Combine head_model->combine: Satisfary Results/No more options combine<-results_cache: Cached results Results combine->_.model_runner: Results } model_runner.node<->node_manager: Request/Gives node to run model User.shape: Person User->indata: Uploads data User->model_generation: Requests Model User->model_database: Manages Models User->model_runner: Request image for classification model_runner->User: Give class of image model_generation.generator <-> indata: Requests Data model_generation->model_generation.hidden_layers_generator: Start model_generation.hidden_layers_generator->model_generation.head_generator: Strip head and give base model to Head Generator model_generation.head_generator->model_database: Save hidden layers model and heads