16
16
*/
17
17
18
18
import io from 'socket.io-client' ;
19
- const evalTestButton = document . getElementById ( 'eval-test-button' ) ;
19
+ const predictContainer = document . getElementById ( 'predictContainer' ) ;
20
+ const predictButton = document . getElementById ( 'predict-button' ) ;
20
21
21
22
const socket =
22
- io ( 'http://localhost:8001' ,
23
- { reconnectionDelay : 300 , reconnectionDelayMax : 300 } ) ;
23
+ io ( 'http://localhost:8001' ,
24
+ { reconnectionDelay : 300 , reconnectionDelayMax : 300 } ) ;
24
25
25
26
const BAR_WIDTH_PX = 300 ;
26
27
27
- evalTestButton . onclick = ( ) => {
28
- evalTestButton . textContent = 'Loading...' ;
29
- socket . emit ( 'test_data' , 'true' ) ;
28
+ const testSample = [ 2.668 , - 114.333 , - 1.908 , 4.786 , 25.707 , - 45.21 , 78 , 0 ] ;
29
+
30
+ predictButton . onclick = ( ) => {
31
+ predictButton . disabled = true ;
32
+ socket . emit ( 'predictSample' , testSample ) ;
30
33
} ;
31
34
35
+ // functions to handle socket events
32
36
socket . on ( 'connect' , ( ) => {
33
- evalTestButton . style . display = 'block' ;
34
- evalTestButton . textContent = 'Eval Test' ;
37
+ document . getElementById ( 'trainingStatus' ) . innerHTML = 'Training in Progress' ;
35
38
} ) ;
36
39
37
40
socket . on ( 'accuracyPerClass' , ( accPerClass ) => {
38
41
plotAccuracyPerClass ( accPerClass ) ;
39
42
} ) ;
40
43
44
+ socket . on ( 'trainingComplete' , ( ) => {
45
+ document . getElementById ( 'trainingStatus' ) . innerHTML = 'Training Complete' ;
46
+ document . getElementById ( 'predictSample' ) . innerHTML = '[' + testSample . join ( ', ' ) + ']' ;
47
+ predictContainer . style . display = 'block' ;
48
+ } ) ;
49
+
50
+ socket . on ( 'predictResult' , ( result ) => {
51
+ plotPredictResult ( result ) ;
52
+ } ) ;
53
+
41
54
socket . on ( 'disconnect' , ( ) => {
42
- evalTestButton . style . display = 'block' ;
55
+ document . getElementById ( 'trainingStatus' ) . innerHTML = '' ;
56
+ predictContainer . style . display = 'none' ;
43
57
document . getElementById ( 'waiting-msg' ) . style . display = 'block' ;
44
58
document . getElementById ( 'table' ) . style . display = 'none' ;
45
59
} ) ;
46
60
61
+ // functions to update display
47
62
function plotAccuracyPerClass ( accPerClass ) {
48
- console . log ( accPerClass ) ;
49
63
document . getElementById ( 'table' ) . style . display = 'block' ;
50
64
document . getElementById ( 'waiting-msg' ) . style . display = 'none' ;
51
65
@@ -75,7 +89,6 @@ function plotAccuracyPerClass(accPerClass) {
75
89
76
90
plotScoreBar ( scores . training , scoreContainer ) ;
77
91
if ( scores . validation ) {
78
- document . getElementById ( 'eval-test-button' ) . style . display = 'none' ;
79
92
plotScoreBar ( scores . validation , scoreContainer , 'validation' ) ;
80
93
}
81
94
} ) ;
@@ -88,3 +101,10 @@ function plotScoreBar(score, container, className = '') {
88
101
scoreDiv . innerHTML = ( score * 100 ) . toFixed ( 1 ) ;
89
102
container . appendChild ( scoreDiv ) ;
90
103
}
104
+
105
+ function plotPredictResult ( result ) {
106
+ predictButton . textContent = 'Predict Pitch' ;
107
+ predictButton . disabled = false ;
108
+ document . getElementById ( 'predictResult' ) . innerHTML = result ;
109
+ console . log ( result ) ;
110
+ }
0 commit comments