diff options
author | Danijel Anđelković <adanijel99@gmail.com> | 2022-05-04 22:33:10 +0200 |
---|---|---|
committer | Danijel Anđelković <adanijel99@gmail.com> | 2022-05-04 22:33:10 +0200 |
commit | 75f0fca5f9e7e74979f63d73741512ea2e58e9e6 (patch) | |
tree | 7bacdd630cefdd9d3d01ccd256e25fd62b4eb984 /frontend/src/app/_pages/experiment | |
parent | 2841a9307387eca7f1bf58f52bd406251d6e6b29 (diff) |
Promenio nazive ulaza na ML u za treniranje modela.
Diffstat (limited to 'frontend/src/app/_pages/experiment')
-rw-r--r-- | frontend/src/app/_pages/experiment/experiment.component.html | 4 | ||||
-rw-r--r-- | frontend/src/app/_pages/experiment/experiment.component.ts | 36 |
2 files changed, 34 insertions, 6 deletions
diff --git a/frontend/src/app/_pages/experiment/experiment.component.html b/frontend/src/app/_pages/experiment/experiment.component.html index 83c45405..2b32db81 100644 --- a/frontend/src/app/_pages/experiment/experiment.component.html +++ b/frontend/src/app/_pages/experiment/experiment.component.html @@ -37,12 +37,12 @@ </div> <div #steps id="step_3" class="step-content"> <div class="step-content-inside"> - <app-folder #folderModel [type]="FolderType.Model" [forExperiment]="experiment" [startingTab]="TabType.NewFile" [tabsToShow]="[TabType.MyModels]" (okPressed)="goToPage(3)"></app-folder> + <app-folder #folderModel [type]="FolderType.Model" [forExperiment]="experiment" [startingTab]="TabType.NewFile" [tabsToShow]="[TabType.MyModels]" (okPressed)="goToPage(3); trainModel();" (selectedFileChanged)="setModel($event)"></app-folder> </div> </div> <div #steps id="step_4" class="step-content"> <div class="step-content-inside"> - <app-metric-view></app-metric-view> + <app-metric-view #metricView></app-metric-view> </div> </div> </div> diff --git a/frontend/src/app/_pages/experiment/experiment.component.ts b/frontend/src/app/_pages/experiment/experiment.component.ts index 3c8d8651..c4d6063c 100644 --- a/frontend/src/app/_pages/experiment/experiment.component.ts +++ b/frontend/src/app/_pages/experiment/experiment.component.ts @@ -10,6 +10,8 @@ import { ModelsService } from 'src/app/_services/models.service'; import Model from 'src/app/_data/Model'; import Dataset from 'src/app/_data/Dataset'; import { ColumnTableComponent } from 'src/app/_elements/column-table/column-table.component'; +import { SignalRService } from 'src/app/_services/signal-r.service'; +import { MetricViewComponent } from 'src/app/_elements/metric-view/metric-view.component'; @Component({ selector: 'app-experiment', @@ -26,11 +28,11 @@ export class ExperimentComponent implements AfterViewInit { experiment: Experiment; dataset?: Dataset; @ViewChild("folderDataset") folderDataset!: FolderComponent; - @ViewChild("folderModel") folderModel!: FolderComponent; @ViewChild(ColumnTableComponent) columnTable!: ColumnTableComponent; + @ViewChild("folderModel") folderModel!: FolderComponent; + @ViewChild("metricView") metricView!: MetricViewComponent; - - constructor(private experimentsService: ExperimentsService, private modelsService: ModelsService) { + constructor(private experimentsService: ExperimentsService, private modelsService: ModelsService, private signalRService: SignalRService) { this.experiment = new Experiment("exp1"); } @@ -43,7 +45,11 @@ export class ExperimentComponent implements AfterViewInit { } trainModel() { - this.modelsService.trainModel((<Model>this.folderModel.selectedFile)._id, this.experiment._id).subscribe(() => { console.log("pocelo treniranje") }) + if (!this.modelToTrain) { + Shared.openDialog('Greška', 'Morate odabrati konfiguraciju neuronske mreže'); + } else { + this.modelsService.trainModel(this.modelToTrain._id, this.experiment._id).subscribe(() => { console.log("pocelo treniranje") }); + } } stepHeight = this.calcStepHeight(); @@ -65,8 +71,23 @@ export class ExperimentComponent implements AfterViewInit { this.stepsContainer.nativeElement.addEventListener('scroll', (event: Event) => { Shared.emitBGScrollEvent(this.stepsContainer.nativeElement.scrollTop); }); + + if (this.signalRService.hubConnection) { + this.signalRService.hubConnection.on("NotifyEpoch", (mName: string, mId: string, stat: string, totalEpochs: number, currentEpoch: number) => { + console.log(this.modelToTrain?._id, mId); + if (this.modelToTrain?._id == mId) { + stat = stat.replace(/'/g, '"'); + //console.log('JSON', this.trainingResult); + this.history.push(JSON.parse(stat)); + this.metricView.update(this.history); + } + }); + + } } + history: any[] = []; + updatePageIfScrolled() { if (this.scrolling) return; const currentPage = Math.round(this.stepsContainer.nativeElement.scrollTop / this.stepHeight) @@ -130,4 +151,11 @@ export class ExperimentComponent implements AfterViewInit { this.columnTable.loadDataset(this.dataset); } + + modelToTrain?: Model; + + setModel(model: FolderFile) { + const m = <Model>model; + this.modelToTrain = m; + } } |