aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/api/api/Controllers/ModelController.cs3
-rw-r--r--backend/api/api/Controllers/UserController.cs11
-rw-r--r--frontend/package-lock.json166
-rw-r--r--frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts70
-rw-r--r--frontend/src/app/_elements/column-table/column-table.component.ts29
-rw-r--r--frontend/src/app/_elements/metric-view/metric-view.component.ts12
-rw-r--r--frontend/src/app/_pages/experiment/experiment.component.ts2
7 files changed, 114 insertions, 179 deletions
diff --git a/backend/api/api/Controllers/ModelController.cs b/backend/api/api/Controllers/ModelController.cs
index be30ae6f..c574de28 100644
--- a/backend/api/api/Controllers/ModelController.cs
+++ b/backend/api/api/Controllers/ModelController.cs
@@ -81,10 +81,9 @@ namespace api.Controllers
[ServiceFilter(typeof(MlApiCheckActionFilter))]
public async Task<ActionResult<string>> Epoch([FromBody] Epoch info)
{
-
var model=_modelService.GetOneModel(info.ModelId);
var user = _userService.GetUserById(model.uploaderId);
-
+ if((model.epochs>100 && info.EpochNum%Math.Round(Math.Sqrt(model.epochs))==0) || model.epochs<=100 ||model.epochs-1==info.EpochNum)
if (ChatHub.CheckUser(user._id))
foreach (var connection in ChatHub.getAllConnectionsOfUser(user._id))
await _ichat.Clients.Client(connection).SendAsync("NotifyEpoch",model.name,info.ModelId,info.Stat,model.epochs,info.EpochNum);
diff --git a/backend/api/api/Controllers/UserController.cs b/backend/api/api/Controllers/UserController.cs
index 9f736679..9796afc2 100644
--- a/backend/api/api/Controllers/UserController.cs
+++ b/backend/api/api/Controllers/UserController.cs
@@ -125,7 +125,16 @@ namespace api.Controllers
if (username == null)
return BadRequest();
- return Ok(userService.Update(username, user));
+ if (user.Username != username)
+ {
+ User user2 = userService.GetUserByUsername(user.Username);
+ if (user2 == null)
+ return Ok(userService.Update(username, user));
+ else
+ return BadRequest("Username already exists!");
+ }
+ else
+ return Ok(userService.Update(username, user));
}
// DELETE api/<UserController>/5
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 5029a126..7a0f7b3a 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -437,7 +437,6 @@
},
"node_modules/@angular/compiler-cli": {
"version": "13.2.5",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.17.2",
@@ -466,7 +465,6 @@
},
"node_modules/@angular/compiler-cli/node_modules/@ampproject/remapping": {
"version": "2.1.2",
- "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.0"
@@ -477,7 +475,6 @@
},
"node_modules/@angular/compiler-cli/node_modules/@babel/core": {
"version": "7.17.5",
- "dev": true,
"license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.1.0",
@@ -506,7 +503,6 @@
},
"node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": {
"version": "6.3.0",
- "dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -514,7 +510,6 @@
},
"node_modules/@angular/compiler-cli/node_modules/@babel/generator": {
"version": "7.17.3",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.17.0",
@@ -527,7 +522,6 @@
},
"node_modules/@angular/compiler-cli/node_modules/source-map": {
"version": "0.5.7",
- "dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -750,7 +744,6 @@
},
"node_modules/@babel/core": {
"version": "7.16.12",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.16.7",
@@ -779,7 +772,6 @@
},
"node_modules/@babel/core/node_modules/semver": {
"version": "6.3.0",
- "dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -787,7 +779,6 @@
},
"node_modules/@babel/core/node_modules/source-map": {
"version": "0.5.7",
- "dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -795,7 +786,6 @@
},
"node_modules/@babel/generator": {
"version": "7.16.8",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.16.8",
@@ -808,7 +798,6 @@
},
"node_modules/@babel/generator/node_modules/source-map": {
"version": "0.5.7",
- "dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -3271,7 +3260,6 @@
},
"node_modules/anymatch": {
"version": "3.1.2",
- "dev": true,
"license": "ISC",
"dependencies": {
"normalize-path": "^3.0.0",
@@ -3522,7 +3510,6 @@
},
"node_modules/binary-extensions": {
"version": "2.2.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -3610,7 +3597,6 @@
},
"node_modules/braces": {
"version": "3.0.2",
- "dev": true,
"license": "MIT",
"dependencies": {
"fill-range": "^7.0.1"
@@ -3788,7 +3774,6 @@
},
"node_modules/chokidar": {
"version": "3.5.3",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -4731,7 +4716,6 @@
},
"node_modules/dependency-graph": {
"version": "0.11.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.6.0"
@@ -4878,7 +4862,6 @@
},
"node_modules/encoding": {
"version": "0.1.13",
- "dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
@@ -4887,7 +4870,6 @@
},
"node_modules/encoding/node_modules/iconv-lite": {
"version": "0.6.3",
- "dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
@@ -5363,7 +5345,6 @@
},
"node_modules/fill-range": {
"version": "7.0.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -5612,7 +5593,6 @@
},
"node_modules/glob-parent": {
"version": "5.1.2",
- "dev": true,
"license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
@@ -6150,7 +6130,6 @@
},
"node_modules/is-binary-path": {
"version": "2.1.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"binary-extensions": "^2.0.0"
@@ -6200,7 +6179,6 @@
},
"node_modules/is-extglob": {
"version": "2.1.1",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -6215,7 +6193,6 @@
},
"node_modules/is-glob": {
"version": "4.0.3",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
@@ -6239,7 +6216,6 @@
},
"node_modules/is-number": {
"version": "7.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.12.0"
@@ -7033,7 +7009,6 @@
},
"node_modules/lru-cache": {
"version": "6.0.0",
- "dev": true,
"license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
@@ -7044,7 +7019,6 @@
},
"node_modules/magic-string": {
"version": "0.25.7",
- "dev": true,
"license": "MIT",
"dependencies": {
"sourcemap-codec": "^1.4.4"
@@ -7587,7 +7561,6 @@
},
"node_modules/normalize-path": {
"version": "3.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -8224,7 +8197,6 @@
},
"node_modules/picomatch": {
"version": "2.3.1",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8.6"
@@ -8975,7 +8947,6 @@
},
"node_modules/readdirp": {
"version": "3.6.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"picomatch": "^2.2.1"
@@ -9250,7 +9221,7 @@
},
"node_modules/safer-buffer": {
"version": "2.1.2",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/sass": {
@@ -9370,7 +9341,6 @@
},
"node_modules/semver": {
"version": "7.3.5",
- "dev": true,
"license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
@@ -9720,7 +9690,6 @@
},
"node_modules/sourcemap-codec": {
"version": "1.4.8",
- "dev": true,
"license": "MIT"
},
"node_modules/spdy": {
@@ -10099,7 +10068,6 @@
},
"node_modules/to-regex-range": {
"version": "5.0.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
@@ -10181,7 +10149,6 @@
},
"node_modules/typescript": {
"version": "4.5.5",
- "dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
@@ -10803,7 +10770,6 @@
},
"node_modules/yallist": {
"version": "4.0.0",
- "dev": true,
"license": "ISC"
},
"node_modules/yaml": {
@@ -11089,7 +11055,6 @@
},
"@angular/compiler-cli": {
"version": "13.2.5",
- "dev": true,
"requires": {
"@babel/core": "^7.17.2",
"chokidar": "^3.0.0",
@@ -11105,14 +11070,12 @@
"dependencies": {
"@ampproject/remapping": {
"version": "2.1.2",
- "dev": true,
"requires": {
"@jridgewell/trace-mapping": "^0.3.0"
}
},
"@babel/core": {
"version": "7.17.5",
- "dev": true,
"requires": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.16.7",
@@ -11132,14 +11095,12 @@
},
"dependencies": {
"semver": {
- "version": "6.3.0",
- "dev": true
+ "version": "6.3.0"
}
}
},
"@babel/generator": {
"version": "7.17.3",
- "dev": true,
"requires": {
"@babel/types": "^7.17.0",
"jsesc": "^2.5.1",
@@ -11147,8 +11108,7 @@
}
},
"source-map": {
- "version": "0.5.7",
- "dev": true
+ "version": "0.5.7"
}
}
},
@@ -11259,7 +11219,6 @@
},
"@babel/core": {
"version": "7.16.12",
- "dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/generator": "^7.16.8",
@@ -11279,18 +11238,15 @@
},
"dependencies": {
"semver": {
- "version": "6.3.0",
- "dev": true
+ "version": "6.3.0"
},
"source-map": {
- "version": "0.5.7",
- "dev": true
+ "version": "0.5.7"
}
}
},
"@babel/generator": {
"version": "7.16.8",
- "dev": true,
"requires": {
"@babel/types": "^7.16.8",
"jsesc": "^2.5.1",
@@ -11298,8 +11254,7 @@
},
"dependencies": {
"source-map": {
- "version": "0.5.7",
- "dev": true
+ "version": "0.5.7"
}
}
},
@@ -12232,7 +12187,8 @@
},
"dependencies": {
"ws": {
- "version": "7.5.7"
+ "version": "7.5.7",
+ "requires": {}
}
}
},
@@ -12244,7 +12200,8 @@
},
"@ngtools/webpack": {
"version": "13.2.5",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"@nodelib/fs.scandir": {
"version": "2.1.5",
@@ -12811,7 +12768,8 @@
},
"acorn-import-assertions": {
"version": "1.8.0",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"adjust-sourcemap-loader": {
"version": "4.0.0",
@@ -12909,7 +12867,6 @@
},
"anymatch": {
"version": "3.1.2",
- "dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -13061,8 +13018,7 @@
"dev": true
},
"binary-extensions": {
- "version": "2.2.0",
- "dev": true
+ "version": "2.2.0"
},
"bl": {
"version": "4.1.0",
@@ -13119,7 +13075,8 @@
"dev": true
},
"bootstrap": {
- "version": "5.1.3"
+ "version": "5.1.3",
+ "requires": {}
},
"brace-expansion": {
"version": "1.1.11",
@@ -13130,7 +13087,6 @@
},
"braces": {
"version": "3.0.2",
- "dev": true,
"requires": {
"fill-range": "^7.0.1"
}
@@ -13239,7 +13195,6 @@
},
"chokidar": {
"version": "3.5.3",
- "dev": true,
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -13261,7 +13216,8 @@
},
"circular-dependency-plugin": {
"version": "5.2.2",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"clean-stack": {
"version": "2.2.0",
@@ -13632,7 +13588,8 @@
},
"css-prefers-color-scheme": {
"version": "6.0.3",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"css-select": {
"version": "4.2.1",
@@ -13832,8 +13789,7 @@
"dev": true
},
"dependency-graph": {
- "version": "0.11.0",
- "dev": true
+ "version": "0.11.0"
},
"destroy": {
"version": "1.0.4",
@@ -13932,7 +13888,6 @@
},
"encoding": {
"version": "0.1.13",
- "dev": true,
"optional": true,
"requires": {
"iconv-lite": "^0.6.2"
@@ -13940,7 +13895,6 @@
"dependencies": {
"iconv-lite": {
"version": "0.6.3",
- "dev": true,
"optional": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
@@ -14253,7 +14207,6 @@
},
"fill-range": {
"version": "7.0.1",
- "dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
@@ -14402,7 +14355,6 @@
},
"glob-parent": {
"version": "5.1.2",
- "dev": true,
"requires": {
"is-glob": "^4.0.1"
}
@@ -14599,7 +14551,8 @@
},
"icss-utils": {
"version": "5.1.0",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"ieee754": {
"version": "1.2.1",
@@ -14746,7 +14699,6 @@
},
"is-binary-path": {
"version": "2.1.0",
- "dev": true,
"requires": {
"binary-extensions": "^2.0.0"
}
@@ -14770,15 +14722,13 @@
"dev": true
},
"is-extglob": {
- "version": "2.1.1",
- "dev": true
+ "version": "2.1.1"
},
"is-fullwidth-code-point": {
"version": "3.0.0"
},
"is-glob": {
"version": "4.0.3",
- "dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
@@ -14792,8 +14742,7 @@
"dev": true
},
"is-number": {
- "version": "7.0.0",
- "dev": true
+ "version": "7.0.0"
},
"is-path-cwd": {
"version": "2.2.0",
@@ -15117,7 +15066,8 @@
},
"karma-jasmine-html-reporter": {
"version": "1.7.0",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"karma-source-map-support": {
"version": "1.4.0",
@@ -15290,14 +15240,12 @@
},
"lru-cache": {
"version": "6.0.0",
- "dev": true,
"requires": {
"yallist": "^4.0.0"
}
},
"magic-string": {
"version": "0.25.7",
- "dev": true,
"requires": {
"sourcemap-codec": "^1.4.4"
}
@@ -15632,8 +15580,7 @@
}
},
"normalize-path": {
- "version": "3.0.0",
- "dev": true
+ "version": "3.0.0"
},
"normalize-range": {
"version": "0.1.2",
@@ -16048,8 +15995,7 @@
"version": "1.0.0"
},
"picomatch": {
- "version": "2.3.1",
- "dev": true
+ "version": "2.3.1"
},
"pify": {
"version": "2.3.0",
@@ -16139,7 +16085,8 @@
},
"postcss-custom-media": {
"version": "8.0.0",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-custom-properties": {
"version": "12.1.4",
@@ -16193,11 +16140,13 @@
},
"postcss-font-variant": {
"version": "5.0.0",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-gap-properties": {
"version": "3.0.3",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-image-set-function": {
"version": "4.0.6",
@@ -16217,7 +16166,8 @@
},
"postcss-initial": {
"version": "4.0.1",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-lab-function": {
"version": "4.1.1",
@@ -16238,15 +16188,18 @@
},
"postcss-logical": {
"version": "5.0.4",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-media-minmax": {
"version": "5.0.0",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-modules-extract-imports": {
"version": "3.0.0",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-modules-local-by-default": {
"version": "4.0.0",
@@ -16280,11 +16233,13 @@
},
"postcss-overflow-shorthand": {
"version": "3.0.3",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-page-break": {
"version": "3.0.4",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-place": {
"version": "7.0.4",
@@ -16341,7 +16296,8 @@
},
"postcss-replace-overflow-wrap": {
"version": "4.0.0",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"postcss-selector-not": {
"version": "5.0.0",
@@ -16469,7 +16425,6 @@
},
"readdirp": {
"version": "3.6.0",
- "dev": true,
"requires": {
"picomatch": "^2.2.1"
}
@@ -16641,7 +16596,7 @@
},
"safer-buffer": {
"version": "2.1.2",
- "dev": true
+ "devOptional": true
},
"sass": {
"version": "1.49.0",
@@ -16685,7 +16640,8 @@
},
"ajv-keywords": {
"version": "3.5.2",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"json-schema-traverse": {
"version": "0.4.1",
@@ -16706,7 +16662,6 @@
},
"semver": {
"version": "7.3.5",
- "dev": true,
"requires": {
"lru-cache": "^6.0.0"
}
@@ -16952,8 +16907,7 @@
}
},
"sourcemap-codec": {
- "version": "1.4.8",
- "dev": true
+ "version": "1.4.8"
},
"spdy": {
"version": "4.0.2",
@@ -17123,7 +17077,8 @@
},
"ajv-keywords": {
"version": "3.5.2",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"json-schema-traverse": {
"version": "0.4.1",
@@ -17177,7 +17132,6 @@
},
"to-regex-range": {
"version": "5.0.1",
- "dev": true,
"requires": {
"is-number": "^7.0.0"
}
@@ -17226,8 +17180,7 @@
"dev": true
},
"typescript": {
- "version": "4.5.5",
- "dev": true
+ "version": "4.5.5"
},
"ua-parser-js": {
"version": "0.7.31",
@@ -17386,7 +17339,8 @@
},
"ajv-keywords": {
"version": "3.5.2",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"json-schema-traverse": {
"version": "0.4.1",
@@ -17580,7 +17534,8 @@
},
"ws": {
"version": "8.2.3",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"xlsx": {
"version": "0.18.5",
@@ -17598,8 +17553,7 @@
"version": "5.0.8"
},
"yallist": {
- "version": "4.0.0",
- "dev": true
+ "version": "4.0.0"
},
"yaml": {
"version": "1.10.2",
diff --git a/frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts b/frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts
index 07976da3..b3d25280 100644
--- a/frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts
+++ b/frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts
@@ -16,25 +16,16 @@ Chart.register(BoxPlotController, BoxAndWiskers, LinearScale, CategoryScale);
})
export class BoxPlotComponent implements AfterViewInit {
- @Input() width?: number;
- @Input() height?: number;
- @Input() mean?: number;
- @Input() median?: number;
- @Input() min?: number;
- @Input() max?: number;
- @Input() q1?: number;
- @Input() q3?: number;
+ @Input() width!: number;
+ @Input() height!: number;
+ @Input() mean!: number;
+ @Input() median!: number;
+ @Input() min!: number;
+ @Input() max!: number;
+ @Input() q1!: number;
+ @Input() q3!: number;
- updateChart(min: number, max: number, q1: number, q3: number, median: number) {
- if (this.myChart) {
- this.boxplotData.datasets[0].data = [[min, q1, median, q3, max]]
- this.myChart?.update();
- }
- /*this.boxplotData.datasets = [{
- data: [[min, q1, median, q3, max]],
- }]*/
-
- };
+
/*
updatePieChart(uniqueValues: string[], uniqueValuesPercent: number[]){
@@ -55,27 +46,29 @@ export class BoxPlotComponent implements AfterViewInit {
//this.updateChart();
}
- boxplotData = {
- // define label tree
- //labels: ['January'/*, 'February', 'March', 'April', 'May', 'June', 'July'*/],
- datasets: [{
- label: 'Dataset 1',
- backgroundColor: '#0063AB',
- borderColor: '#dfd7d7',
- borderWidth: 1,
- outlierColor: '#999999',
- scaleFontColor: '#0063AB',
- padding: 10,
- itemRadius: 0,
- data: [
- randomValues(100, 0, 100),
- ]
- }]
- };
+
ngAfterViewInit(): void {
- this.myChart = new Chart(this.chartRef.nativeElement, {
+ const boxplotData = {
+ // define label tree
+ //labels: ['January'/*, 'February', 'March', 'April', 'May', 'June', 'July'*/],
+ labels:[""],
+ datasets: [{
+ label: 'Dataset 1',
+ backgroundColor: '#0063AB',
+ borderColor: '#dfd7d7',
+ borderWidth: 1,
+ outlierColor: '#999999',
+ scaleFontColor: '#0063AB',
+ padding: 10,
+ itemRadius: 0,
+ data: [
+ {min:this.min,q1:this.q1,q3:this.q3,median:this.median,max:this.max,mean:this.mean}
+ ]
+ }]
+ };
+ const myChart = new Chart(this.chartRef.nativeElement, {
type: "boxplot",
- data: this.boxplotData,
+ data: boxplotData,
options: {
plugins: {
legend: {
@@ -92,8 +85,6 @@ export class BoxPlotComponent implements AfterViewInit {
}
},
y: {
- min: this.min,
- max: this.max,
ticks: {
color: '#dfd7d7'
},
@@ -106,5 +97,4 @@ export class BoxPlotComponent implements AfterViewInit {
});
}
- myChart?: Chart;
}
diff --git a/frontend/src/app/_elements/column-table/column-table.component.ts b/frontend/src/app/_elements/column-table/column-table.component.ts
index e12065a3..9a8cbeee 100644
--- a/frontend/src/app/_elements/column-table/column-table.component.ts
+++ b/frontend/src/app/_elements/column-table/column-table.component.ts
@@ -78,34 +78,9 @@ export class ColumnTableComponent implements AfterViewInit {
}
- updateCharts() {
- //min: number, max: number, q1: number, q3: number, median: number
- let i = 0;
- this.boxplotComp.changes.subscribe(() => {
- const bps = this.boxplotComp.toArray();
- this.dataset?.columnInfo.forEach((colInfo, index) => {
- if (this.experiment.columnTypes[index] == ColumnType.numerical) {
- bps[i].updateChart(colInfo!.min, colInfo.max, colInfo.q1, colInfo.q3, colInfo.median);
- i++;
- }
- });
- });
- }
+
+
- updatePieChart() {
- //min: number, max: number, q1: number, q3: number, median: number
- let i = 0;
- const pieChart = this.piechartComp.toArray();
- console.log(pieChart)
- this.dataset?.columnInfo.forEach((colInfo, index) => {
- console.log(i)
- if (this.experiment.columnTypes[index] == ColumnType.categorical) {
- console.log("prosao IF")
- pieChart[i].updatePieChart(colInfo!.uniqueValues, colInfo.uniqueValuesPercent);
- i++;
- }
- });
- }
loadDataset(dataset: Dataset) {
console.log("LOADED DATASET");
diff --git a/frontend/src/app/_elements/metric-view/metric-view.component.ts b/frontend/src/app/_elements/metric-view/metric-view.component.ts
index fbca2edf..65b1ef9b 100644
--- a/frontend/src/app/_elements/metric-view/metric-view.component.ts
+++ b/frontend/src/app/_elements/metric-view/metric-view.component.ts
@@ -16,7 +16,7 @@ export class MetricViewComponent implements OnInit {
history: any[] = [];
- update(history: any[]) {
+ update(history: any[],totalEpochs:number) {
const myAcc: number[] = [];
const myMae: number[] = [];
const myMse: number[] = [];
@@ -29,7 +29,15 @@ export class MetricViewComponent implements OnInit {
const myEpochs: number[] = [];
this.history = history;
this.history.forEach((metrics, epoch) => {
- myEpochs.push(epoch + 1);
+ if(totalEpochs>100)
+ {
+ let epochEstimate=epoch*Math.round(Math.sqrt(totalEpochs))
+ if(epochEstimate>totalEpochs)
+ epochEstimate=totalEpochs;
+ myEpochs.push(epochEstimate);
+ }
+ else
+ myEpochs.push(epoch + 1);
for (let key in metrics) {
let value = metrics[key];
//console.log(key, ':::', value, epoch);
diff --git a/frontend/src/app/_pages/experiment/experiment.component.ts b/frontend/src/app/_pages/experiment/experiment.component.ts
index 7cb5e7cd..398321f2 100644
--- a/frontend/src/app/_pages/experiment/experiment.component.ts
+++ b/frontend/src/app/_pages/experiment/experiment.component.ts
@@ -91,7 +91,7 @@ export class ExperimentComponent implements AfterViewInit {
stat = stat.replace(/'/g, '"');
//console.log('JSON', this.trainingResult);
this.history.push(JSON.parse(stat));
- this.metricView.update(this.history);
+ this.metricView.update(this.history,this.modelToTrain.epochs);
}
});