@@ -45,49 +45,6 @@ class Utils {
45
45
this . initialized = true ;
46
46
}
47
47
48
- async iterateLayers ( configs ) {
49
- if ( ! this . initialized ) return ;
50
-
51
- let iterators = [ ] ;
52
- for ( let config of configs ) {
53
- let model = await new TFliteModelImporter ( {
54
- rawModel : this . tfModel ,
55
- backend : config . backend ,
56
- prefer : config . prefer || null ,
57
- } ) ;
58
- iterators . push ( model . layerIterator ( [ this . inputTensor ] ) ) ;
59
- }
60
-
61
- while ( true ) {
62
-
63
- let layerOutputs = [ ] ;
64
- for ( let it of iterators ) {
65
- layerOutputs . push ( await it . next ( ) ) ;
66
- }
67
-
68
- let baselineOutput = layerOutputs [ 0 ] ;
69
- if ( baselineOutput . done ) {
70
- break ;
71
- }
72
-
73
- console . debug ( `\n\n\nLayer ${ baselineOutput . value . outputName } ` ) ;
74
-
75
- for ( let i = 0 ; i < configs . length ; ++ i ) {
76
- console . debug ( `\n${ configs [ i ] . backend } :` ) ;
77
- console . debug ( `\n${ layerOutputs [ i ] . value . tensor } ` ) ;
78
-
79
- if ( i > 0 ) {
80
- let sum = 0 ;
81
- for ( let j = 0 ; j < baselineOutput . value . tensor . length ; j ++ ) {
82
- sum += Math . pow ( layerOutputs [ i ] . value . tensor [ j ] - baselineOutput . value . tensor [ j ] , 2 ) ;
83
- }
84
- let variance = sum / baselineOutput . value . tensor . length ;
85
- console . debug ( `var with ${ configs [ 0 ] . backend } : ${ variance } ` ) ;
86
- }
87
- }
88
- }
89
- }
90
-
91
48
async predict ( ) {
92
49
if ( ! this . initialized ) return ;
93
50
let start = performance . now ( ) ;
@@ -199,4 +156,48 @@ class Utils {
199
156
this . outputTensor = new Float32Array ( newModel . outputSize . reduce ( ( x , y ) => x * y ) ) ;
200
157
this . tfModel = null ;
201
158
}
159
+
160
+ // for debugging
161
+ async iterateLayers ( configs ) {
162
+ if ( ! this . initialized ) return ;
163
+
164
+ let iterators = [ ] ;
165
+ for ( let config of configs ) {
166
+ let model = await new TFliteModelImporter ( {
167
+ rawModel : this . tfModel ,
168
+ backend : config . backend ,
169
+ prefer : config . prefer || null ,
170
+ } ) ;
171
+ iterators . push ( model . layerIterator ( [ this . inputTensor ] ) ) ;
172
+ }
173
+
174
+ while ( true ) {
175
+
176
+ let layerOutputs = [ ] ;
177
+ for ( let it of iterators ) {
178
+ layerOutputs . push ( await it . next ( ) ) ;
179
+ }
180
+
181
+ let baselineOutput = layerOutputs [ 0 ] ;
182
+ if ( baselineOutput . done ) {
183
+ break ;
184
+ }
185
+
186
+ console . debug ( `\n\n\nLayer ${ baselineOutput . value . outputName } ` ) ;
187
+
188
+ for ( let i = 0 ; i < configs . length ; ++ i ) {
189
+ console . debug ( `\n${ configs [ i ] . backend } :` ) ;
190
+ console . debug ( `\n${ layerOutputs [ i ] . value . tensor } ` ) ;
191
+
192
+ if ( i > 0 ) {
193
+ let sum = 0 ;
194
+ for ( let j = 0 ; j < baselineOutput . value . tensor . length ; j ++ ) {
195
+ sum += Math . pow ( layerOutputs [ i ] . value . tensor [ j ] - baselineOutput . value . tensor [ j ] , 2 ) ;
196
+ }
197
+ let variance = sum / baselineOutput . value . tensor . length ;
198
+ console . debug ( `var with ${ configs [ 0 ] . backend } : ${ variance } ` ) ;
199
+ }
200
+ }
201
+ }
202
+ }
202
203
}
0 commit comments