aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/app/_pages
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/app/_pages')
-rw-r--r--frontend/src/app/_pages/add-model/add-model.component.html59
-rw-r--r--frontend/src/app/_pages/add-model/add-model.component.ts23
2 files changed, 46 insertions, 36 deletions
diff --git a/frontend/src/app/_pages/add-model/add-model.component.html b/frontend/src/app/_pages/add-model/add-model.component.html
index 62468b2d..97b35b7a 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.html
+++ b/frontend/src/app/_pages/add-model/add-model.component.html
@@ -287,6 +287,8 @@
</div>
<div class="row p-2">
+ <!--***********************************ENKODER*********************************************-->
+
<div class="col-1">
</div>
<div class="col-3">
@@ -300,6 +302,9 @@
</option>
</select>
</div>
+
+ <!--***********************************BROJ NEURONA SKRIVENOG SLOJA*********************************************-->
+
<div class="col-1">
</div>
<div class="col-3">
@@ -310,6 +315,7 @@
[(ngModel)]="newModel.hiddenLayerNeurons">
</div>
</div>
+ <!--***********************************OPTIMIZACIJA*********************************************-->
<div class="row p-2">
<div class="col-1">
@@ -335,7 +341,6 @@
<input type="number" min="1" class="form-control" name="batchSize" [(ngModel)]="newModel.batchSize">
</div>
</div>
- <!--***********************************LOSS FUNCTION*********************************************-->
<div class="row p-2">
<div class="col-1">
</div>
@@ -344,7 +349,7 @@
</div>
<div class="col-2">
<select id=lossFunctionOptions class="form-control" name="lossFunction"
- [(ngModel)]="newModel.lossFunction">
+ [(ngModel)]="newModel.lossFunction" aria-checked="true">
<option
*ngFor="let option of Object.keys(lossFunction); let optionName of Object.values(lossFunction)"
[value]="option">
@@ -352,40 +357,14 @@
</option>
</select>
</div>
- <div class="col-1">
- </div>
-
- <!-- ************************************************************************************************** -->
+ <div class="col-1"></div>
<div class="col-3 mt-2">
<label for="type" class="form-check-label">Nasumičan redosled podataka?</label>
<input class="mx-3 form-check-input" type="checkbox" [(ngModel)]="newModel.randomOrder"
type="checkbox" value="" checked>
</div>
- <div class="col-1">
- </div>
</div>
-
- <!--<div class="row p-2">
- <div class="col-3"></div>
- <div class="col-3">
- <label for="hiddenLayerActivationFunction" class="col-form-label">Funkcija aktivacije skrivenih
- slojeva:</label>
- </div>
- <div class="col-3">
- <div *ngFor="let item of [].constructor(newModel.hiddenLayers); let i = index">
- <select [id]="'hiddenLayerActivationFunctionOption_'+i" class="form-control"
- [(ngModel)]="newModel.hiddenLayerActivationFunctions[i]">
- <option
- *ngFor="let option of Object.keys(ActivationFunction); let optionName of Object.values(ActivationFunction)"
- [value]="option">
- {{ optionName }}
- </option>
- </select>
- </div>
- </div>
- <div class="col-3"></div>
- </div>
- -->
+ <!--************************************************************************************************* -->
<div class="border m-3">
<div class="row p-2 m-2">
<div class="col-4">
@@ -465,10 +444,26 @@
</div>
</div>
-
<br><br>
+ <!--**********************************************METRIKE ZA KOMPAJLER I GRAFIKE***********************************************-->
+
+ <hr>
+ <div class="form-check form-check-inline overflow-auto " style="width: max-content;">
+ <h3>Izaberite metrike:</h3>
+ <div id="divMetricsinput">
+
+ <div *ngFor="let option of Object.keys(metrics); let optionName of Object.values(metrics) "
+ class="form-check form-check-inline">
+
+ <input name="cbmetrics" class="form-check-input" type="checkbox" value="{{option}}"
+ id="metrics_{{option}}" style="float: left;">
+ <label class="form-check-label" for="metrics_{{option}}" for="inlineCheckbox2">
+ {{optionName}}
+ </label>
+ </div>
+ </div>
+ </div>
<!--<app-annvisual [model]="newModel"></app-annvisual>-->
- <br><br>
<div class="form-group row mt-5 mb-3">
<div class="col"></div>
<button class="btn btn-lg col-4" style="background-color:#003459; color:white;"
diff --git a/frontend/src/app/_pages/add-model/add-model.component.ts b/frontend/src/app/_pages/add-model/add-model.component.ts
index ec64a3b7..b35b9fa4 100644
--- a/frontend/src/app/_pages/add-model/add-model.component.ts
+++ b/frontend/src/app/_pages/add-model/add-model.component.ts
@@ -1,6 +1,6 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import Model, { LossFunctionBinaryClassification, LossFunctionMultiClassification, LossFunctionRegression, NullValReplacer, ReplaceWith } from 'src/app/_data/Model';
-import { ProblemType, Encoding, ActivationFunction, LossFunction, Optimizer, NullValueOptions } from 'src/app/_data/Model';
+import { ProblemType, Encoding, ActivationFunction, LossFunction, Optimizer, NullValueOptions, Metrics, MetricsRegression, MetricsBinaryClassification, MetricsMultiClassification } from 'src/app/_data/Model';
import { DatasetLoadComponent } from 'src/app/_elements/dataset-load/dataset-load.component';
import { ModelsService } from 'src/app/_services/models.service';
import shared from 'src/app/Shared';
@@ -10,6 +10,7 @@ import { DatasetsService } from 'src/app/_services/datasets.service';
import { NgxCsvParser } from 'ngx-csv-parser';
import { CsvParseService } from 'src/app/_services/csv-parse.service';
+
@Component({
selector: 'app-add-model',
templateUrl: './add-model.component.html',
@@ -27,7 +28,7 @@ export class AddModelComponent implements OnInit {
ProblemType = ProblemType;
Encoding = Encoding;
ActivationFunction = ActivationFunction;
- activationFunction: any = ActivationFunction
+ metrics: any = Metrics;
LossFunction = LossFunction;
lossFunction: any = LossFunction;
Optimizer = Optimizer;
@@ -54,10 +55,10 @@ export class AddModelComponent implements OnInit {
term: string = "";
selectedProblemType: string = '';
+ selectedMetrics = [];
trainingResult: string | undefined;
-
constructor(private models: ModelsService, private datasets: DatasetsService, private csv: CsvParseService) {
this.newModel = new Model();
@@ -112,6 +113,7 @@ export class AddModelComponent implements OnInit {
this.getCheckedInputCols();
this.getCheckedOutputCol();
+ this.getMetrics();
if (this.validationInputsOutput()) {
console.log('ADD MODEL: STEP 1 - UPLOAD FILE');
@@ -159,7 +161,7 @@ export class AddModelComponent implements OnInit {
if (this.selectedDataset) { //dataset je izabran
this.getCheckedInputCols();
this.getCheckedOutputCol();
-
+ this.getMetrics();
if (this.validationInputsOutput()) {
this.newModel.datasetId = this.selectedDataset._id;
@@ -475,17 +477,30 @@ export class AddModelComponent implements OnInit {
switch (this.newModel.type) {
case 'regresioni':
this.lossFunction = LossFunctionRegression;
+ this.metrics = MetricsRegression;
break;
case 'binarni-klasifikacioni':
this.lossFunction = LossFunctionBinaryClassification;
+ this.metrics = MetricsBinaryClassification;
break;
case 'multi-klasifikacioni':
this.lossFunction = LossFunctionMultiClassification;
+ this.metrics = MetricsMultiClassification;
break;
default:
break;
}
}
+ getMetrics() {
+ this.newModel.metrics = [];
+ let cb = document.getElementsByName("cbmetrics");
+ for (let i = 0; i < cb.length; i++) {
+ let chb = <HTMLInputElement>cb[i];
+ if (chb.checked == true)
+ this.newModel.metrics.push(chb.value);
+ }
+
+ }
}