UNPKG

ppljs-ppl-core

Version:

ppljs network inference framework core module

386 lines (371 loc) 11.4 kB
declare abstract class Buffer { constructor(size: number, offset: number); setSize(s: number): void; setOffset(o: number): void; getSize(): number; getOffset(): number; size_: number; offset_: number; } interface OpNode { props: OpProps; attrs: OpAttrs; inputs: OpEdge[]; outputs: OpEdge[]; hostDataOffset: number; data: OpData; } interface OpEdge { name: string; tensorInfo: tensorInfo; } interface OpAttrs { [key: string]: any; } interface OpProps { type: string; name: string; } interface OpData { [key: string]: opDataInfo; } interface tensorInfo { name: string; shape: number[]; precision: number; hostData?: number[] | Float32Array; deviceData?: Buffer; } interface opDataInfo { size: number; precision: number; hostData?: number[] | Float32Array; deviceData?: Buffer; } interface Model { ops: OpNode[]; } interface ModelConfig { modelPath: string; modelName?: string; binaryDataName?: string; } declare enum backend { Backend_WebGPU = 0 } interface backend_config { backend_: backend; precision_: number; modelData_: Model; debug?: boolean; } type _interface_OpNode = OpNode; type _interface_OpEdge = OpEdge; type _interface_OpAttrs = OpAttrs; type _interface_OpProps = OpProps; type _interface_OpData = OpData; type _interface_tensorInfo = tensorInfo; type _interface_opDataInfo = opDataInfo; type _interface_Model = Model; type _interface_ModelConfig = ModelConfig; type _interface_backend = backend; declare const _interface_backend: typeof backend; type _interface_backend_config = backend_config; declare namespace _interface { export { _interface_OpNode as OpNode, _interface_OpEdge as OpEdge, _interface_OpAttrs as OpAttrs, _interface_OpProps as OpProps, _interface_OpData as OpData, _interface_tensorInfo as tensorInfo, _interface_opDataInfo as opDataInfo, _interface_Model as Model, _interface_ModelConfig as ModelConfig, _interface_backend as backend, _interface_backend_config as backend_config, }; } declare class Executer { protected modeConfig_: backend_config; ret: number; constructor(config: backend_config); prepare(): Promise<any>; forward(ifGetOutput?: boolean): any | Promise<ArrayBuffer[]>; release(): void; setInputByArrayBuffer(data: ArrayBuffer[]): number; setInputByArray(data: any[] | Array<any>): number; setInputByPath(firstName: string, ...restName: string[]): number; getArrayBufferOutput(): Promise<ArrayBuffer[]>; getInputShapeByIndex(idx: number): any; getOutputShapeByIndex(idx: number): any; getInputCount(): number; getOutputCount(): number; finishWork(): Promise<undefined[]>; } declare function get_row(): number; declare function numToString(data: number[]): string; declare function ppl_res_check(res: number, info: string): void; declare function ppl_debug(ifDebug: boolean, ...optionalParams: any[]): void; declare function check_if_undefined(obj: any, info: string): number; declare function ppl_diff(src: ArrayBuffer, dst: ArrayBuffer, shape: number[]): boolean; declare const log_get_row: typeof get_row; declare const log_numToString: typeof numToString; declare const log_ppl_res_check: typeof ppl_res_check; declare const log_ppl_debug: typeof ppl_debug; declare const log_check_if_undefined: typeof check_if_undefined; declare const log_ppl_diff: typeof ppl_diff; declare namespace log { export { log_get_row as get_row, log_numToString as numToString, log_ppl_res_check as ppl_res_check, log_ppl_debug as ppl_debug, log_check_if_undefined as check_if_undefined, log_ppl_diff as ppl_diff, }; } declare function registerBackend(backend: string, backendInstance: any): void; declare abstract class Tensor { private tensorInfo_; private producerCount_; private consumerCount_; constructor(t: tensorInfo); dimCount(): number; dim(index: number): number; shape(): number[]; byteLength(): number; abstract mallocTensorBuffer(): number; abstract releaseTensorBuffer(): number; abstract data(): any; precision(): number; get name(): string; set name(name_: string); get buffer(): Buffer; set buffer(buffer_: Buffer); getname(): string; setname(name_: string): void; getbuffer(): Buffer; setbuffer(buffer_: Buffer): void; producerCount(): number; consumerCount(): number; incProducerCount(): void; incConsumerCount(): void; } declare abstract class Kernel { protected name_: string; protected type_: string; data_: OpData; protected param_: OpAttrs; protected inTensors_: Tensor[]; protected outTensors_: Tensor[]; protected tmpTensor_: Tensor; protected inShape_: number[][]; protected outShape_: number[][]; constructor(opNode: OpNode); abstract releaseKernelResource(): number; abstract initKernelParam(): number; abstract forward(): number; abstract tempBufferSize(): number; setTmpTensor(data: Tensor): number; set name(name: string); set kernelType(kernelType: string); get name(): string; get kernelType(): string; addInTensor(t: Tensor): number; addInShape(t: number[]): number; addOutTensor(t: Tensor): number; addOutShape(t: number[]): number; getInTensorCount(): number; getOutTensorCount(): number; getInTensor(index: number): Tensor; getInShape(index: number): number[]; getOutTensor(index: number): Tensor; getOutShape(index: number): number[]; } declare abstract class Graph { protected totalOpNode_: OpNode[]; protected totalKernel_: Kernel[]; protected inputTensor_: Tensor[]; protected outputTensor_: Tensor[]; protected tmpBufferTensor_: Tensor; protected inputData: ArrayBuffer[]; protected ifDebug: boolean; protected inputChanged_: boolean; constructor(model: Model); abstract buildGraph(): number; abstract prepareGraph(): number; abstract runGraph(): number; abstract finish(): Promise<undefined[]>; abstract getArrayBufferOutput(): Promise<ArrayBuffer[]>; setIfDebug(ifDebug: boolean): void; getIfDebug(): boolean; abstract createTensor(info: tensorInfo, isInput: boolean, isOutput: boolean): any; assignTensorToKernel(): number; assignMemoryToTensor(): number; setInputFromArrayBuffer(inData: ArrayBuffer[]): number; getInputTensorCount(): number; getInputTensor(i: number): Tensor; getOutputTensorCount(): number; getOutputTensor(i: number): Tensor; getKernelCount(): number; getKernel(i: number): Kernel; getInputTensorShape(idx: number): any; getOutputTensorShape(idx: number): any; releaseResources(): number; } declare abstract class Runtime { protected graph_: Graph; constructor(); abstract createGraph(config: backend_config): any; abstract prepare(): Promise<number>; abstract forward(ifGetOutput?: boolean): any | Promise<ArrayBuffer[]>; abstract release(): any; setInputByArrayBuffer(data: ArrayBuffer[]): number; getArrayBufferOutput(): Promise<ArrayBuffer[]>; getInputShapeByIndex(idx: number): any; getOutputShapeByIndex(idx: number): any; getInputCount(): number; getOutputCount(): number; finishWork(): Promise<undefined[]>; } declare class ModelLoader { modelConfig_: ModelConfig; isLocalPath: boolean; constructor(modelConfig: ModelConfig); LoadModel(): Promise<Model>; readData(modelPath: string): Promise<unknown>; ParseJsonModel(): Promise<Model>; ReadModelData(): Promise<Float32Array>; AssignData(opModel_: Model, dataArray: Float32Array): void; } interface BatchnormParam { use_global: boolean; moving_average_fraction: number; eps: number; } interface ConvolutionParam { bias_term: boolean; dilations: number[]; kernel_shape: number[]; pads: number[]; strides: number[]; group: number; reluFuseType: number; } interface ScaleParam { axis: number; num_axis: number; bias: boolean; } interface SoftmaxParam { axis: number; } interface ElewiseParam { coeff: number[]; mode: number; } interface PoolingParam { window: number[]; pads: number[]; stride: number[]; global_pooling: boolean; pooling_mode: number; ceil_mode: boolean; } interface FcParam { num_output: number; axis: number; bias_term: boolean; } interface ChannelShuffleParam { group: number; } interface SliceParam { slice_point: number[]; axis: number; } interface ConcatParam { axis: number; concat_dim: number; } interface PReLUParam { channel_shared: boolean; } interface SubpixelUpParam { upsample: number; backend: number; } interface SubpixelDownParam { downsample: number; backend: number; } interface TileParam { axis: number; tiles: number; } interface ReflectionPadParam { pad_h: number; pad_w: number; } interface InterpParam { interp_width: number; interp_height: number; zoom_factor: number; shrink_factor: number; pad_beg: number; pad_end: number; align_corners: number; mode: number; backend: number; } interface LogParam { base: number; scale: number; shift: number; } interface ClipParam { max: number; min: number; } type opParam_BatchnormParam = BatchnormParam; type opParam_ConvolutionParam = ConvolutionParam; type opParam_ScaleParam = ScaleParam; type opParam_SoftmaxParam = SoftmaxParam; type opParam_ElewiseParam = ElewiseParam; type opParam_PoolingParam = PoolingParam; type opParam_FcParam = FcParam; type opParam_ChannelShuffleParam = ChannelShuffleParam; type opParam_SliceParam = SliceParam; type opParam_ConcatParam = ConcatParam; type opParam_PReLUParam = PReLUParam; type opParam_SubpixelUpParam = SubpixelUpParam; type opParam_SubpixelDownParam = SubpixelDownParam; type opParam_TileParam = TileParam; type opParam_ReflectionPadParam = ReflectionPadParam; type opParam_InterpParam = InterpParam; type opParam_LogParam = LogParam; type opParam_ClipParam = ClipParam; declare namespace opParam { export { opParam_BatchnormParam as BatchnormParam, opParam_ConvolutionParam as ConvolutionParam, opParam_ScaleParam as ScaleParam, opParam_SoftmaxParam as SoftmaxParam, opParam_ElewiseParam as ElewiseParam, opParam_PoolingParam as PoolingParam, opParam_FcParam as FcParam, opParam_ChannelShuffleParam as ChannelShuffleParam, opParam_SliceParam as SliceParam, opParam_ConcatParam as ConcatParam, opParam_PReLUParam as PReLUParam, opParam_SubpixelUpParam as SubpixelUpParam, opParam_SubpixelDownParam as SubpixelDownParam, opParam_TileParam as TileParam, opParam_ReflectionPadParam as ReflectionPadParam, opParam_InterpParam as InterpParam, opParam_LogParam as LogParam, opParam_ClipParam as ClipParam, }; } export { Buffer, Executer, Graph, Kernel, ModelLoader, Runtime, Tensor, _interface as interfaces, log, opParam as opParams, registerBackend };