diff options
5 files changed, 47 insertions, 25 deletions
diff --git a/frontend/src/app/_data/Model.ts b/frontend/src/app/_data/Model.ts index a891c10c..a038325e 100644 --- a/frontend/src/app/_data/Model.ts +++ b/frontend/src/app/_data/Model.ts @@ -12,7 +12,7 @@ export default class Model { public columnToPredict: string = '', public randomOrder: boolean = true, public randomTestSet: boolean = true, - public randomTestSetDistribution: number = 0.10, //0.1-0.9 (10% - 90%) + public randomTestSetDistribution: number = 10, //0.1-0.9 (10% - 90%) JESTE OVDE ZAKUCANO 10, AL POSLATO JE KAO 0.1 BACK-U // Neural net training settings public type: ANNType = ANNType.FullyConnected, diff --git a/frontend/src/app/_elements/dataset-load/dataset-load.component.html b/frontend/src/app/_elements/dataset-load/dataset-load.component.html index fcec6ec3..76fc40e2 100644 --- a/frontend/src/app/_elements/dataset-load/dataset-load.component.html +++ b/frontend/src/app/_elements/dataset-load/dataset-load.component.html @@ -30,7 +30,7 @@ </div> </div> - <div class="table-responsive"> + <div class="table-responsive" *ngIf="hasInput"> <table *ngIf="csvRecords.length > 0 && hasHeader" class="table table-bordered table-light mt-4"> <thead> <tr> @@ -53,7 +53,7 @@ </table> </div> - <div *ngIf="csvRecords.length > 0" id="info"> + <div *ngIf="csvRecords.length > 0 && hasInput" id="info"> . . . <br> {{rowsNumber}} x {{colsNumber}} </div> diff --git a/frontend/src/app/_elements/dataset-load/dataset-load.component.ts b/frontend/src/app/_elements/dataset-load/dataset-load.component.ts index 913592eb..bccf13b7 100644 --- a/frontend/src/app/_elements/dataset-load/dataset-load.component.ts +++ b/frontend/src/app/_elements/dataset-load/dataset-load.component.ts @@ -16,7 +16,7 @@ export class DatasetLoadComponent { hasHeader: boolean = true; - slice: string = ""; + hasInput: boolean = false; csvRecords: any[] = []; files: File[] = []; @@ -33,6 +33,15 @@ export class DatasetLoadComponent { changeListener($event: any): void { this.files = $event.srcElement.files; + if (this.files.length == 0 || this.files[0] == null) { + //console.log("NEMA FAJLA"); + //this.loaded.emit("not loaded"); + this.hasInput = false; + return; + } + else + this.hasInput = true; + console.log(this.files); this.update(); } 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 c6f21f1e..98cd204b 100644 --- a/frontend/src/app/_pages/add-model/add-model.component.html +++ b/frontend/src/app/_pages/add-model/add-model.component.html @@ -38,10 +38,8 @@ <div id="divInputs" class="form-check mt-2"> <br> <div *ngFor="let item of datasetLoadComponent.dataset.header; let i = index"> - <input *ngIf="i == 0" class="form-check-input" type="checkbox" value="{{item}}" - id="cb_{{item}}" name="cbs" checked> - <input *ngIf="i != 0" class="form-check-input" type="checkbox" value="{{item}}" - id="cb_{{item}}" name="cbs"> + <input class="form-check-input" type="checkbox" value="{{item}}" + id="cb_{{item}}" name="cbs" checked [disabled]="this.selectedOutputColumnVal == item"> <label class="form-check-label" for="cb_{{item}}"> {{item}} </label> @@ -53,10 +51,8 @@ <div id="divOutputs" class="form-check mt-2"> <br> <div *ngFor="let item of datasetLoadComponent.dataset.header; let i = index"> - <input *ngIf="i == 0" class="form-check-input" type="radio" value="{{item}}" - id="rb_{{item}}" name="rbs" checked> - <input *ngIf="i != 0" class="form-check-input" type="radio" value="{{item}}" - id="rb_{{item}}" name="rbs"> + <input class="form-check-input" type="radio" value="{{item}}" + id="rb_{{item}}" name="rbs" (change)="this.selectedOutputColumnVal = item"> <label class="form-check-label" for="rb_{{item}}"> {{item}} </label> @@ -193,15 +189,10 @@ <div class="col-1"> </div> <div class="col-5"> - <label for="type" class="form-check-label">Podela test skupa: - <input class="form-check-input" type="checkbox" [checked]="newModel.randomTestSet" + <label for="splitYesNo" class="form-check-label">Podela test skupa: + <input id="splitYesNo" class="form-check-input" type="checkbox" [checked]="newModel.randomTestSet" (change)="newModel.randomTestSet = !newModel.randomTestSet"> - </label> - test - <mat-slider min="0.1" max="0.9" step="0.1" value="0.2" name="randomTestSetDistribution" thumbLabel - [disabled]="!newModel.randomTestSet" [(ngModel)]="newModel.randomTestSetDistribution"> - </mat-slider> - trening + </label> </div> <div class="col"> </div> @@ -224,9 +215,14 @@ </option> </select> </div> - <div class="col"> + <div class="col-1"> </div> - <div class="col"> + <div class="col-2"> + <label for="percentage" class="form-label">Procenat podataka koji se uzima za trening skup:</label> + </div> + <div class="col-1"> + <input id="percentage" type="number" class="form-control" min="10" max="90" step="10" value="10" [(ngModel)]="newModel.randomTestSetDistribution" + [disabled] = "!newModel.randomTestSet"> </div> </div> @@ -247,7 +243,14 @@ </option> </select> </div> + <div class="col-1"> + </div> <div class="col"> + trening + <mat-slider min="10" max="90" step="10" value="10" name="randomTestSetDistribution" thumbLabel + [disabled]="!newModel.randomTestSet" [(ngModel)]="newModel.randomTestSetDistribution"> + </mat-slider> + test </div> <div class="col"> </div> 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 a4cabb82..6e9c95ca 100644 --- a/frontend/src/app/_pages/add-model/add-model.component.ts +++ b/frontend/src/app/_pages/add-model/add-model.component.ts @@ -1,5 +1,4 @@ import { Component, OnInit, ViewChild } from '@angular/core'; -import { Observable, of } from 'rxjs'; import Model from 'src/app/_data/Model'; import { ANNType, Encoding, ActivationFunction, LossFunction, Optimizer } from 'src/app/_data/Model'; import { DatasetLoadComponent } from 'src/app/_elements/dataset-load/dataset-load.component'; @@ -27,6 +26,8 @@ export class AddModelComponent implements OnInit { Object = Object; shared = shared; + selectedOutputColumnVal: string = ''; + constructor(private models: ModelsService) { this.newModel = new Model(); } @@ -59,6 +60,7 @@ export class AddModelComponent implements OnInit { this.models.addDataset(this.datasetLoadComponent.dataset).subscribe((dataset) => { console.log('ADD MODEL: STEP 3 - ADD MODEL WITH DATASET ID ', dataset._id); this.newModel.datasetId = dataset._id; + this.newModel.randomTestSetDistribution = 1 - Math.round(this.newModel.randomTestSetDistribution / 100 * 10) / 10; this.newModel.username = shared.username; this.models.addModel(this.newModel).subscribe((response) => { console.log('ADD MODEL: DONE! REPLY:\n', response); @@ -76,7 +78,7 @@ export class AddModelComponent implements OnInit { for (let i = 0; i < checkboxes.length; i++) { let thatCb = <HTMLInputElement>checkboxes[i]; - if (thatCb.checked) + if (thatCb.checked == true && thatCb.disabled == false) this.newModel.inputColumns.push(thatCb.value); } //console.log(this.checkedInputCols); @@ -95,10 +97,18 @@ export class AddModelComponent implements OnInit { //console.log(this.checkedOutputCol); } validationInputsOutput(): boolean { - if (this.newModel.inputColumns.length == 0) { + if (this.newModel.inputColumns.length == 0 && this.newModel.columnToPredict == '') { + alert("Molimo Vas da izaberete ulazne i izlazne kolone za mrežu.") + return false; + } + else if (this.newModel.inputColumns.length == 0) { alert("Molimo Vas da izaberete ulaznu kolonu/kolone za mrežu.") return false; } + else if (this.newModel.columnToPredict == '') { + alert("Molimo Vas da izaberete izlaznu kolonu za mrežu.") + return false; + } for (let i = 0; i < this.newModel.inputColumns.length; i++) { if (this.newModel.inputColumns[i] == this.newModel.columnToPredict) { let colName = this.newModel.columnToPredict; |