UNPKG

ppljs-ppl-core

Version:

ppljs network inference framework core module

50 lines (37 loc) 1.47 kB
import { backend_config} from './interface/interface'; import Graph from './graph'; export default abstract class Runtime{ // protected modelConfig_:backend_config = <any>{}; protected graph_:Graph = null as unknown as Graph; constructor(){}; abstract createGraph(config:backend_config); //we keep all the init work in this function except forward abstract prepare():Promise<number>; abstract forward(ifGetOutput?:boolean): any|Promise<ArrayBuffer[]>; //release all the resources abstract release(); //give one or more arrayBuffer to initialize input of network setInputByArrayBuffer(data : ArrayBuffer[]):number{ return (this.graph_).setInputFromArrayBuffer(data); } //give one arrayBuffer to initialize input of network getArrayBufferOutput():Promise<ArrayBuffer[]>{ return (this.graph_).getArrayBufferOutput(); } getInputShapeByIndex(idx:number):any{ return (this.graph_).getInputTensorShape(idx); } getOutputShapeByIndex(idx:number):any{ return (this.graph_).getOutputTensorShape(idx); } getInputCount():number{ return (this.graph_).getInputTensorCount(); } getOutputCount():number{ return (this.graph_).getOutputTensorCount(); } //can be used for synchronization finishWork():Promise<undefined[]>{ return (this.graph_).finish(); } }