11import { EventsManager } from "../../src/system/events-manager.js" ;
2- import { WebNNProgram } from "../../src/modules/ webnn/webnn- program.js" ;
2+ import { Program } from "../../src/webnn/program.js" ;
33
44export default class WebNNView extends HTMLElement {
55 static tag = "webnn-view" ;
66
77 #eventsManager = new EventsManager ( ) ;
8- #program = new WebNNProgram ( ) ;
8+ #program = new Program ( ) ;
99
1010 constructor ( ) {
1111 super ( ) ;
@@ -25,30 +25,35 @@ export default class WebNNView extends HTMLElement {
2525 await this . #program. init ( ) ;
2626
2727 // 2. build graph
28- const descriptor = { dataType : 'float32' , shape : [ 1 ] } ;
29- const A = this . #program. addToGraph ( "input" , "A" , descriptor ) ;
30- const B = this . #program. addToGraph ( "input" , "B" , descriptor ) ;
31- const C = this . #program. addToGraph ( "add" , A , B ) ;
32- this . #program. build ( { C} ) ;
28+ const features = this . #program. addToGraph ( "input" , "features" , { dataType : 'float32' , shape : [ 1 , 2 ] } ) ;
29+ const weights = this . #program. addConstant ( { dataType : 'float32' , shape : [ 2 , 1 ] } , [ 0.7 , 0.3 ] ) ;
30+ const bias = this . #program. addConstant ( { dataType : 'float32' , shape : [ 1 ] } , [ - 0.5 ] ) ;
31+
32+ const weightedSum = this . #program. addToGraph ( "matmul" , features , weights ) ;
33+ const output = this . #program. addToGraph ( "add" , weightedSum , bias ) ;
34+
35+ await this . #program. build ( { output} ) ;
3336
3437 // 3. add input and output tensors
35- await this . #program. addInputTensor ( "A" , A ) ;
36- await this . #program. addInputTensor ( "B" , B ) ;
37- await this . #program. addOutputTensor ( "C" , C ) ;
38+ await this . #program. addInputTensor ( "features" , features ) ;
39+ await this . #program. addOutputTensor ( "output" , output ) ;
3840 } )
3941 }
4042
4143 async disconnectedCallback ( ) {
4244 this . #eventsManager = this . #eventsManager. dispose ( ) ;
45+ this . #program = this . #program. dispose ( ) ;
4346 }
4447
45- async #submit ( event ) {
46- const value1 = this . shadowRoot . querySelector ( "#value1" ) . value ;
47- const value2 = this . shadowRoot . querySelector ( "#value2" ) . value ;
48+ async disconnectedCallback ( ) {
49+ this . #eventsManager = this . #eventsManager . dispose ( ) ;
50+ }
4851
49- await this . #program. set ( "A" , [ value1 ] ) ;
50- await this . #program. set ( "B" , [ value2 ] ) ;
52+ async #submit( event ) {
53+ const cloudiness = this . shadowRoot . querySelector ( "#cloudiness" ) . value ;
54+ const humidity = this . shadowRoot . querySelector ( "#humidity" ) . value ;
5155
56+ await this . #program. set ( "features" , [ cloudiness , humidity ] ) ;
5257 this . shadowRoot . querySelector ( "#result" ) . textContent = await this . #program. run ( ) ;
5358 }
5459}
0 commit comments