161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 461847f8eSopenharmony_ci * you may not use this file except in compliance with the License. 561847f8eSopenharmony_ci * You may obtain a copy of the License at 661847f8eSopenharmony_ci * 761847f8eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 861847f8eSopenharmony_ci * 961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and 1361847f8eSopenharmony_ci * limitations under the License. 1461847f8eSopenharmony_ci */ 1561847f8eSopenharmony_ci 1661847f8eSopenharmony_ci/** 1761847f8eSopenharmony_ci * @file 1861847f8eSopenharmony_ci * @kit MindSporeLiteKit 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ciimport { Callback } from './@ohos.base'; 2261847f8eSopenharmony_ci 2361847f8eSopenharmony_ci/** 2461847f8eSopenharmony_ci * @namespace mindSporeLite 2561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 2661847f8eSopenharmony_ci * @stagemodelonly 2761847f8eSopenharmony_ci * @since 10 2861847f8eSopenharmony_ci */ 2961847f8eSopenharmony_cideclare namespace mindSporeLite { 3061847f8eSopenharmony_ci /** 3161847f8eSopenharmony_ci * Create a Model instance from file path 3261847f8eSopenharmony_ci * @param { string } model - model indicates model path to be loaded 3361847f8eSopenharmony_ci * @param { Context } context - context indicates model context information 3461847f8eSopenharmony_ci * @returns { Promise<Model> } the promise returned by the function. 3561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 3661847f8eSopenharmony_ci * @stagemodelonly 3761847f8eSopenharmony_ci * @since 10 3861847f8eSopenharmony_ci */ 3961847f8eSopenharmony_ci function loadModelFromFile( 4061847f8eSopenharmony_ci model: string, 4161847f8eSopenharmony_ci context?: Context): Promise<Model>; 4261847f8eSopenharmony_ci 4361847f8eSopenharmony_ci /** 4461847f8eSopenharmony_ci * Create a Model instance from file path. 4561847f8eSopenharmony_ci * @param { string } model - model indicates model path to be loaded 4661847f8eSopenharmony_ci * @param { Callback<Model> } callback - the callback of model 4761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 4861847f8eSopenharmony_ci * @stagemodelonly 4961847f8eSopenharmony_ci * @since 10 5061847f8eSopenharmony_ci */ 5161847f8eSopenharmony_ci function loadModelFromFile( 5261847f8eSopenharmony_ci model: string, callback: Callback<Model>): void; 5361847f8eSopenharmony_ci 5461847f8eSopenharmony_ci /** 5561847f8eSopenharmony_ci * Create a Model instance from file path. 5661847f8eSopenharmony_ci * @param { string } model - model indicates model path to be loaded 5761847f8eSopenharmony_ci * @param { Context } context - context indicates model context information 5861847f8eSopenharmony_ci * @param { Callback<Model> } callback - the callback of model 5961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 6061847f8eSopenharmony_ci * @stagemodelonly 6161847f8eSopenharmony_ci * @since 10 6261847f8eSopenharmony_ci */ 6361847f8eSopenharmony_ci function loadModelFromFile( 6461847f8eSopenharmony_ci model: string, 6561847f8eSopenharmony_ci context: Context, callback: Callback<Model>): void; 6661847f8eSopenharmony_ci 6761847f8eSopenharmony_ci /** 6861847f8eSopenharmony_ci * Create a Model instance from buffer 6961847f8eSopenharmony_ci * @param { ArrayBuffer } model - model indicates model buffer to be loaded 7061847f8eSopenharmony_ci * @param { Context } [context] - context indicates model context information 7161847f8eSopenharmony_ci * @returns { Promise<Model> } the promise returned by the function. 7261847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 7361847f8eSopenharmony_ci * @stagemodelonly 7461847f8eSopenharmony_ci * @since 10 7561847f8eSopenharmony_ci */ 7661847f8eSopenharmony_ci function loadModelFromBuffer( 7761847f8eSopenharmony_ci model: ArrayBuffer, 7861847f8eSopenharmony_ci context?: Context): Promise<Model>; 7961847f8eSopenharmony_ci 8061847f8eSopenharmony_ci /** 8161847f8eSopenharmony_ci * Create a Model instance from buffer 8261847f8eSopenharmony_ci * @param { ArrayBuffer } model - model indicates model buffer to be loaded 8361847f8eSopenharmony_ci * @param { Callback<Model> } callback - the callback of model 8461847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 8561847f8eSopenharmony_ci * @stagemodelonly 8661847f8eSopenharmony_ci * @since 10 8761847f8eSopenharmony_ci */ 8861847f8eSopenharmony_ci function loadModelFromBuffer( 8961847f8eSopenharmony_ci model: ArrayBuffer, callback: Callback<Model>): void; 9061847f8eSopenharmony_ci 9161847f8eSopenharmony_ci /** 9261847f8eSopenharmony_ci * Create a Model instance from buffer 9361847f8eSopenharmony_ci * @param { ArrayBuffer } model - model indicates model buffer to be loaded 9461847f8eSopenharmony_ci * @param { Context } context - context indicates model context information 9561847f8eSopenharmony_ci * @param { Callback<Model> } callback - the callback of model 9661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 9761847f8eSopenharmony_ci * @stagemodelonly 9861847f8eSopenharmony_ci * @since 10 9961847f8eSopenharmony_ci */ 10061847f8eSopenharmony_ci function loadModelFromBuffer( 10161847f8eSopenharmony_ci model: ArrayBuffer, 10261847f8eSopenharmony_ci context: Context, callback: Callback<Model>): void; 10361847f8eSopenharmony_ci 10461847f8eSopenharmony_ci /** 10561847f8eSopenharmony_ci * Creates a Model instance file description 10661847f8eSopenharmony_ci * @param { number } model - model indicates model file description to be loaded 10761847f8eSopenharmony_ci * @param { Context } [context] - context indicates model context information 10861847f8eSopenharmony_ci * @returns { Promise<Model> } the promise returned by the function. 10961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 11061847f8eSopenharmony_ci * @stagemodelonly 11161847f8eSopenharmony_ci * @since 10 11261847f8eSopenharmony_ci */ 11361847f8eSopenharmony_ci function loadModelFromFd( 11461847f8eSopenharmony_ci model: number, 11561847f8eSopenharmony_ci context?: Context): Promise<Model>; 11661847f8eSopenharmony_ci 11761847f8eSopenharmony_ci /** 11861847f8eSopenharmony_ci * Create a Model instance from file description 11961847f8eSopenharmony_ci * @param { number } model - model indicates model file description to be loaded 12061847f8eSopenharmony_ci * @param { Callback<Model> } callback - the callback of model 12161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 12261847f8eSopenharmony_ci * @stagemodelonly 12361847f8eSopenharmony_ci * @since 10 12461847f8eSopenharmony_ci */ 12561847f8eSopenharmony_ci function loadModelFromFd( 12661847f8eSopenharmony_ci model: number, callback: Callback<Model>): void; 12761847f8eSopenharmony_ci 12861847f8eSopenharmony_ci /** 12961847f8eSopenharmony_ci * Create a Model instance from file description 13061847f8eSopenharmony_ci * @param { number } model - model indicates model file description to be loaded 13161847f8eSopenharmony_ci * @param { Context } context - context indicates model context information 13261847f8eSopenharmony_ci * @param { Callback<Model> } callback - the callback of model 13361847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 13461847f8eSopenharmony_ci * @stagemodelonly 13561847f8eSopenharmony_ci * @since 10 13661847f8eSopenharmony_ci */ 13761847f8eSopenharmony_ci function loadModelFromFd( 13861847f8eSopenharmony_ci model: number, 13961847f8eSopenharmony_ci context: Context, callback: Callback<Model>): void; 14061847f8eSopenharmony_ci 14161847f8eSopenharmony_ci /** 14261847f8eSopenharmony_ci * Load train model from file 14361847f8eSopenharmony_ci * @param { string } model - model file path 14461847f8eSopenharmony_ci * @param { TrainCfg } [trainCfg] - model train configuration 14561847f8eSopenharmony_ci * @param { Context } [context] - model build context 14661847f8eSopenharmony_ci * @returns { Promise<Model> } the promise of the built model 14761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 14861847f8eSopenharmony_ci * @stagemodelonly 14961847f8eSopenharmony_ci * @since 12 15061847f8eSopenharmony_ci */ 15161847f8eSopenharmony_ci function loadTrainModelFromFile( 15261847f8eSopenharmony_ci model: string, 15361847f8eSopenharmony_ci trainCfg?: TrainCfg, 15461847f8eSopenharmony_ci context?: Context): Promise<Model>; 15561847f8eSopenharmony_ci 15661847f8eSopenharmony_ci /** 15761847f8eSopenharmony_ci * Load train model from buffer 15861847f8eSopenharmony_ci * @param { ArrayBuffer } model - model buffer 15961847f8eSopenharmony_ci * @param { TrainCfg } [trainCfg] - model train configuration 16061847f8eSopenharmony_ci * @param { Context } [context] - model build context 16161847f8eSopenharmony_ci * @returns { Promise<Model> } the promise of the built model 16261847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 16361847f8eSopenharmony_ci * @stagemodelonly 16461847f8eSopenharmony_ci * @since 12 16561847f8eSopenharmony_ci */ 16661847f8eSopenharmony_ci function loadTrainModelFromBuffer( 16761847f8eSopenharmony_ci model: ArrayBuffer, 16861847f8eSopenharmony_ci trainCfg?: TrainCfg, 16961847f8eSopenharmony_ci context?: Context): Promise<Model>; 17061847f8eSopenharmony_ci 17161847f8eSopenharmony_ci /** 17261847f8eSopenharmony_ci * Load train model from file description 17361847f8eSopenharmony_ci * @param { number } model - model file description 17461847f8eSopenharmony_ci * @param { TrainCfg } [trainCfg] - model train configuration 17561847f8eSopenharmony_ci * @param { Context } [context] - model build context 17661847f8eSopenharmony_ci * @returns { Promise<Model> } the promise of the built model 17761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 17861847f8eSopenharmony_ci * @stagemodelonly 17961847f8eSopenharmony_ci * @since 12 18061847f8eSopenharmony_ci */ 18161847f8eSopenharmony_ci function loadTrainModelFromFd( 18261847f8eSopenharmony_ci model: number, 18361847f8eSopenharmony_ci trainCfg?: TrainCfg, 18461847f8eSopenharmony_ci context?: Context): Promise<Model>; 18561847f8eSopenharmony_ci 18661847f8eSopenharmony_ci /** 18761847f8eSopenharmony_ci * Provides manages model function. Including get inputs, predict ,resize. 18861847f8eSopenharmony_ci * @typedef Model 18961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 19061847f8eSopenharmony_ci * @stagemodelonly 19161847f8eSopenharmony_ci * @since 10 19261847f8eSopenharmony_ci */ 19361847f8eSopenharmony_ci interface Model { 19461847f8eSopenharmony_ci /** 19561847f8eSopenharmony_ci * The learning rate of the training model 19661847f8eSopenharmony_ci * @type {?number} 19761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 19861847f8eSopenharmony_ci * @stagemodelonly 19961847f8eSopenharmony_ci * @since 12 20061847f8eSopenharmony_ci */ 20161847f8eSopenharmony_ci learningRate?: number; 20261847f8eSopenharmony_ci 20361847f8eSopenharmony_ci /** 20461847f8eSopenharmony_ci * The running mode of the model 20561847f8eSopenharmony_ci * @type {?boolean} 20661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 20761847f8eSopenharmony_ci * @stagemodelonly 20861847f8eSopenharmony_ci * @since 12 20961847f8eSopenharmony_ci */ 21061847f8eSopenharmony_ci trainMode?: boolean; 21161847f8eSopenharmony_ci 21261847f8eSopenharmony_ci /** 21361847f8eSopenharmony_ci * Get model input tensors. 21461847f8eSopenharmony_ci * @returns { MSTensor[] } the MSTensor array of the inputs. 21561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 21661847f8eSopenharmony_ci * @stagemodelonly 21761847f8eSopenharmony_ci * @since 10 21861847f8eSopenharmony_ci */ 21961847f8eSopenharmony_ci getInputs(): MSTensor[]; 22061847f8eSopenharmony_ci 22161847f8eSopenharmony_ci /** 22261847f8eSopenharmony_ci * Infer model 22361847f8eSopenharmony_ci * @param { MSTensor[] } inputs - indicates the MSTensor array of the inputs. 22461847f8eSopenharmony_ci * @param { Callback<MSTensor[]> } callback - the callback of MSTensor array. 22561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 22661847f8eSopenharmony_ci * @stagemodelonly 22761847f8eSopenharmony_ci * @since 10 22861847f8eSopenharmony_ci */ 22961847f8eSopenharmony_ci predict(inputs: MSTensor[], callback: Callback<MSTensor[]>): void; 23061847f8eSopenharmony_ci 23161847f8eSopenharmony_ci /** 23261847f8eSopenharmony_ci * Infer model 23361847f8eSopenharmony_ci * @param { MSTensor[] } inputs - indicates the MSTensor array of the inputs. 23461847f8eSopenharmony_ci * @returns { Promise<MSTensor[]> } the promise returned by the function. 23561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 23661847f8eSopenharmony_ci * @stagemodelonly 23761847f8eSopenharmony_ci * @since 10 23861847f8eSopenharmony_ci */ 23961847f8eSopenharmony_ci predict(inputs: MSTensor[]): Promise<MSTensor[]>; 24061847f8eSopenharmony_ci 24161847f8eSopenharmony_ci /** 24261847f8eSopenharmony_ci * resize model input 24361847f8eSopenharmony_ci * @param { MSTensor[] } inputs - indicates the MSTensor array of the inputs. 24461847f8eSopenharmony_ci * @param { Array<Array<number>> } dims - indicates the target new shape array 24561847f8eSopenharmony_ci * @returns { boolean } the boolean result if the resize operation is successful 24661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 24761847f8eSopenharmony_ci * @stagemodelonly 24861847f8eSopenharmony_ci * @since 10 24961847f8eSopenharmony_ci */ 25061847f8eSopenharmony_ci resize(inputs: MSTensor[], dims: Array<Array<number>>): boolean; 25161847f8eSopenharmony_ci 25261847f8eSopenharmony_ci /** 25361847f8eSopenharmony_ci * Train model by step 25461847f8eSopenharmony_ci * @param { MSTensor[] } inputs - indicates the MSTensor array of the inputs. 25561847f8eSopenharmony_ci * @returns { boolean } the boolean result if the runStep operation is successful 25661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 25761847f8eSopenharmony_ci * @stagemodelonly 25861847f8eSopenharmony_ci * @since 12 25961847f8eSopenharmony_ci */ 26061847f8eSopenharmony_ci runStep(inputs: MSTensor[]): boolean; 26161847f8eSopenharmony_ci 26261847f8eSopenharmony_ci /** 26361847f8eSopenharmony_ci * Obtain all weights of the model 26461847f8eSopenharmony_ci * @returns { MSTensor[] } the weight tensors of the model 26561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 26661847f8eSopenharmony_ci * @stagemodelonly 26761847f8eSopenharmony_ci * @since 12 26861847f8eSopenharmony_ci */ 26961847f8eSopenharmony_ci getWeights(): MSTensor[]; 27061847f8eSopenharmony_ci 27161847f8eSopenharmony_ci /** 27261847f8eSopenharmony_ci * Update weights of the model 27361847f8eSopenharmony_ci * @param { MSTensor[] } weights - indicates the MSTensor array of the inputs 27461847f8eSopenharmony_ci * @returns { boolean } the boolean result if updating weights operation is successful 27561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 27661847f8eSopenharmony_ci * @stagemodelonly 27761847f8eSopenharmony_ci * @since 12 27861847f8eSopenharmony_ci */ 27961847f8eSopenharmony_ci updateWeights(weights: MSTensor[]): boolean; 28061847f8eSopenharmony_ci 28161847f8eSopenharmony_ci /** 28261847f8eSopenharmony_ci * Setup training with virtual batches 28361847f8eSopenharmony_ci * @param { number } virtualBatchMultiplier - virtual batch multiplier, use any number < 1 to disable 28461847f8eSopenharmony_ci * @param { number } lr - learning rate to use for virtual batch, -1 for internal configuration 28561847f8eSopenharmony_ci * @param { number } momentum - batch norm momentum to use for virtual batch, -1 for internal configuration 28661847f8eSopenharmony_ci * @returns { boolean } the boolean result if the operation is successful 28761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 28861847f8eSopenharmony_ci * @stagemodelonly 28961847f8eSopenharmony_ci * @since 12 29061847f8eSopenharmony_ci */ 29161847f8eSopenharmony_ci setupVirtualBatch(virtualBatchMultiplier: number, lr: number, momentum: number): boolean; 29261847f8eSopenharmony_ci 29361847f8eSopenharmony_ci /** 29461847f8eSopenharmony_ci * Export train model to file 29561847f8eSopenharmony_ci * @param { string } modelFile - model file path. 29661847f8eSopenharmony_ci * @param { QuantizationType } [quantizationType] - the quantization type, default NO_QUANT. 29761847f8eSopenharmony_ci * @param { boolean } [exportInferenceOnly] - whether to export a inference only model, default true. 29861847f8eSopenharmony_ci * @param { string[] } [outputTensorName] - the set of name of output tensor the exported inference model, 29961847f8eSopenharmony_ci * @returns { boolean } - the boolean result if the operation is successful 30061847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 30161847f8eSopenharmony_ci * @stagemodelonly 30261847f8eSopenharmony_ci * @since 12 30361847f8eSopenharmony_ci */ 30461847f8eSopenharmony_ci exportModel( 30561847f8eSopenharmony_ci modelFile: string, 30661847f8eSopenharmony_ci quantizationType?: QuantizationType, 30761847f8eSopenharmony_ci exportInferenceOnly?: boolean, 30861847f8eSopenharmony_ci outputTensorName?: string[]): boolean; 30961847f8eSopenharmony_ci 31061847f8eSopenharmony_ci /** 31161847f8eSopenharmony_ci * Export model's weights, which can be used in micro only. Only valid for Lite Train 31261847f8eSopenharmony_ci * @param { string } weightFile - weight file path 31361847f8eSopenharmony_ci * @param { boolean } [isInference] - whether to export weights from inference model, only support this is `true` for now, default true 31461847f8eSopenharmony_ci * @param { boolean } [enableFp16] - float-weight is whether to be saved in float16 format, default false 31561847f8eSopenharmony_ci * @param { string[] } [changeableWeightsName] - changeable weights name 31661847f8eSopenharmony_ci * @returns { boolean } the boolean result if the operation is successful 31761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 31861847f8eSopenharmony_ci * @stagemodelonly 31961847f8eSopenharmony_ci * @since 12 32061847f8eSopenharmony_ci */ 32161847f8eSopenharmony_ci exportWeightsCollaborateWithMicro( 32261847f8eSopenharmony_ci weightFile: string, 32361847f8eSopenharmony_ci isInference?: boolean, 32461847f8eSopenharmony_ci enableFp16?: boolean, 32561847f8eSopenharmony_ci changeableWeightsName?: string[]): boolean; 32661847f8eSopenharmony_ci } 32761847f8eSopenharmony_ci 32861847f8eSopenharmony_ci /** 32961847f8eSopenharmony_ci * Enum for quantization type 33061847f8eSopenharmony_ci * @enum {number} 33161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 33261847f8eSopenharmony_ci * @stagemodelonly 33361847f8eSopenharmony_ci * @since 12 33461847f8eSopenharmony_ci */ 33561847f8eSopenharmony_ci export enum QuantizationType { 33661847f8eSopenharmony_ci /** 33761847f8eSopenharmony_ci * No quantization. 33861847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 33961847f8eSopenharmony_ci * @stagemodelonly 34061847f8eSopenharmony_ci * @since 12 34161847f8eSopenharmony_ci */ 34261847f8eSopenharmony_ci NO_QUANT = 0, 34361847f8eSopenharmony_ci /** 34461847f8eSopenharmony_ci * Weight quantization. 34561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 34661847f8eSopenharmony_ci * @stagemodelonly 34761847f8eSopenharmony_ci * @since 12 34861847f8eSopenharmony_ci */ 34961847f8eSopenharmony_ci WEIGHT_QUANT = 1, 35061847f8eSopenharmony_ci /** 35161847f8eSopenharmony_ci * Full quantization. 35261847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 35361847f8eSopenharmony_ci * @stagemodelonly 35461847f8eSopenharmony_ci * @since 12 35561847f8eSopenharmony_ci */ 35661847f8eSopenharmony_ci FULL_QUANT = 2, 35761847f8eSopenharmony_ci } 35861847f8eSopenharmony_ci /** 35961847f8eSopenharmony_ci * Enum for optimization level 36061847f8eSopenharmony_ci * @enum {number} 36161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 36261847f8eSopenharmony_ci * @stagemodelonly 36361847f8eSopenharmony_ci * @since 12 36461847f8eSopenharmony_ci */ 36561847f8eSopenharmony_ci export enum OptimizationLevel { 36661847f8eSopenharmony_ci /** 36761847f8eSopenharmony_ci * Do not change 36861847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 36961847f8eSopenharmony_ci * @stagemodelonly 37061847f8eSopenharmony_ci * @since 12 37161847f8eSopenharmony_ci */ 37261847f8eSopenharmony_ci O0 = 0, 37361847f8eSopenharmony_ci /** 37461847f8eSopenharmony_ci * Cast network to float16, keep batch norm and loss in float32 37561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 37661847f8eSopenharmony_ci * @stagemodelonly 37761847f8eSopenharmony_ci * @since 12 37861847f8eSopenharmony_ci */ 37961847f8eSopenharmony_ci O2 = 2, 38061847f8eSopenharmony_ci /** 38161847f8eSopenharmony_ci * Cast network to float16, including batch norm 38261847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 38361847f8eSopenharmony_ci * @stagemodelonly 38461847f8eSopenharmony_ci * @since 12 38561847f8eSopenharmony_ci */ 38661847f8eSopenharmony_ci O3 = 3, 38761847f8eSopenharmony_ci /** 38861847f8eSopenharmony_ci * Choose optimization based on device 38961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 39061847f8eSopenharmony_ci * @stagemodelonly 39161847f8eSopenharmony_ci * @since 12 39261847f8eSopenharmony_ci */ 39361847f8eSopenharmony_ci AUTO = 4, 39461847f8eSopenharmony_ci } 39561847f8eSopenharmony_ci 39661847f8eSopenharmony_ci /** 39761847f8eSopenharmony_ci * Provides the train configuration 39861847f8eSopenharmony_ci * @typedef TrainCfg 39961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 40061847f8eSopenharmony_ci * @stagemodelonly 40161847f8eSopenharmony_ci * @since 12 40261847f8eSopenharmony_ci */ 40361847f8eSopenharmony_ci interface TrainCfg { 40461847f8eSopenharmony_ci /** 40561847f8eSopenharmony_ci * Array of loss name 40661847f8eSopenharmony_ci * @type {?string[]} 40761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 40861847f8eSopenharmony_ci * @stagemodelonly 40961847f8eSopenharmony_ci * @since 12 41061847f8eSopenharmony_ci */ 41161847f8eSopenharmony_ci lossName?: string[], 41261847f8eSopenharmony_ci /** 41361847f8eSopenharmony_ci * Train optimization level 41461847f8eSopenharmony_ci * @type {?OptimizationLevel} 41561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 41661847f8eSopenharmony_ci * @stagemodelonly 41761847f8eSopenharmony_ci * @since 12 41861847f8eSopenharmony_ci */ 41961847f8eSopenharmony_ci optimizationLevel?: OptimizationLevel, 42061847f8eSopenharmony_ci } 42161847f8eSopenharmony_ci 42261847f8eSopenharmony_ci /** 42361847f8eSopenharmony_ci * Provides the device configurations 42461847f8eSopenharmony_ci * @typedef Context 42561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 42661847f8eSopenharmony_ci * @stagemodelonly 42761847f8eSopenharmony_ci * @since 10 42861847f8eSopenharmony_ci */ 42961847f8eSopenharmony_ci interface Context { 43061847f8eSopenharmony_ci /** 43161847f8eSopenharmony_ci * The target device 43261847f8eSopenharmony_ci * @type {?string[]} 43361847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 43461847f8eSopenharmony_ci * @stagemodelonly 43561847f8eSopenharmony_ci * @since 10 43661847f8eSopenharmony_ci */ 43761847f8eSopenharmony_ci target?: string[]; 43861847f8eSopenharmony_ci /** 43961847f8eSopenharmony_ci * The cpu device information 44061847f8eSopenharmony_ci * @type {?CpuDevice} 44161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 44261847f8eSopenharmony_ci * @stagemodelonly 44361847f8eSopenharmony_ci * @since 10 44461847f8eSopenharmony_ci */ 44561847f8eSopenharmony_ci cpu?: CpuDevice; 44661847f8eSopenharmony_ci /** 44761847f8eSopenharmony_ci * The NNRT device information 44861847f8eSopenharmony_ci * @type {?NNRTDevice} 44961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 45061847f8eSopenharmony_ci * @stagemodelonly 45161847f8eSopenharmony_ci * @since 10 45261847f8eSopenharmony_ci */ 45361847f8eSopenharmony_ci nnrt?: NNRTDevice; 45461847f8eSopenharmony_ci } 45561847f8eSopenharmony_ci 45661847f8eSopenharmony_ci /** 45761847f8eSopenharmony_ci * Provides the CPU device info 45861847f8eSopenharmony_ci * @typedef CpuDevice 45961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 46061847f8eSopenharmony_ci * @stagemodelonly 46161847f8eSopenharmony_ci * @since 10 46261847f8eSopenharmony_ci */ 46361847f8eSopenharmony_ci interface CpuDevice { 46461847f8eSopenharmony_ci /** 46561847f8eSopenharmony_ci * The thread num 46661847f8eSopenharmony_ci * @type {?number} 46761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 46861847f8eSopenharmony_ci * @stagemodelonly 46961847f8eSopenharmony_ci * @since 10 47061847f8eSopenharmony_ci */ 47161847f8eSopenharmony_ci threadNum?: number; 47261847f8eSopenharmony_ci /** 47361847f8eSopenharmony_ci * The thread affinity mode 47461847f8eSopenharmony_ci * @type {?ThreadAffinityMode} 47561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 47661847f8eSopenharmony_ci * @stagemodelonly 47761847f8eSopenharmony_ci * @since 10 47861847f8eSopenharmony_ci */ 47961847f8eSopenharmony_ci threadAffinityMode?: ThreadAffinityMode; 48061847f8eSopenharmony_ci /** 48161847f8eSopenharmony_ci * The thread affinity core list 48261847f8eSopenharmony_ci * @type {?number[]} 48361847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 48461847f8eSopenharmony_ci * @stagemodelonly 48561847f8eSopenharmony_ci * @since 10 48661847f8eSopenharmony_ci */ 48761847f8eSopenharmony_ci threadAffinityCoreList?: number[]; 48861847f8eSopenharmony_ci /** 48961847f8eSopenharmony_ci * The precision mode 49061847f8eSopenharmony_ci * @type {?string} 49161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 49261847f8eSopenharmony_ci * @stagemodelonly 49361847f8eSopenharmony_ci * @since 10 49461847f8eSopenharmony_ci */ 49561847f8eSopenharmony_ci precisionMode?: string; 49661847f8eSopenharmony_ci } 49761847f8eSopenharmony_ci 49861847f8eSopenharmony_ci /** 49961847f8eSopenharmony_ci * Enum for performance mode 50061847f8eSopenharmony_ci * @enum {number} 50161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 50261847f8eSopenharmony_ci * @stagemodelonly 50361847f8eSopenharmony_ci * @since 12 50461847f8eSopenharmony_ci */ 50561847f8eSopenharmony_ci export enum PerformanceMode { 50661847f8eSopenharmony_ci /** 50761847f8eSopenharmony_ci * No performance mode preference 50861847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 50961847f8eSopenharmony_ci * @stagemodelonly 51061847f8eSopenharmony_ci * @since 12 51161847f8eSopenharmony_ci */ 51261847f8eSopenharmony_ci PERFORMANCE_NONE = 0, 51361847f8eSopenharmony_ci /** 51461847f8eSopenharmony_ci * Low power consumption mode 51561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 51661847f8eSopenharmony_ci * @stagemodelonly 51761847f8eSopenharmony_ci * @since 12 51861847f8eSopenharmony_ci */ 51961847f8eSopenharmony_ci PERFORMANCE_LOW = 1, 52061847f8eSopenharmony_ci /** 52161847f8eSopenharmony_ci * Medium performance mode 52261847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 52361847f8eSopenharmony_ci * @stagemodelonly 52461847f8eSopenharmony_ci * @since 12 52561847f8eSopenharmony_ci */ 52661847f8eSopenharmony_ci PERFORMANCE_MEDIUM = 2, 52761847f8eSopenharmony_ci /** 52861847f8eSopenharmony_ci * High performance mode 52961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 53061847f8eSopenharmony_ci * @stagemodelonly 53161847f8eSopenharmony_ci * @since 12 53261847f8eSopenharmony_ci */ 53361847f8eSopenharmony_ci PERFORMANCE_HIGH = 3, 53461847f8eSopenharmony_ci /** 53561847f8eSopenharmony_ci * Ultimate performance mode 53661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 53761847f8eSopenharmony_ci * @stagemodelonly 53861847f8eSopenharmony_ci * @since 12 53961847f8eSopenharmony_ci */ 54061847f8eSopenharmony_ci PERFORMANCE_EXTREME = 4, 54161847f8eSopenharmony_ci } 54261847f8eSopenharmony_ci 54361847f8eSopenharmony_ci /** 54461847f8eSopenharmony_ci * Enum for scheduling priority 54561847f8eSopenharmony_ci * @enum {number} 54661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 54761847f8eSopenharmony_ci * @stagemodelonly 54861847f8eSopenharmony_ci * @since 12 54961847f8eSopenharmony_ci */ 55061847f8eSopenharmony_ci export enum Priority { 55161847f8eSopenharmony_ci /** 55261847f8eSopenharmony_ci * No priority preference 55361847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 55461847f8eSopenharmony_ci * @stagemodelonly 55561847f8eSopenharmony_ci * @since 12 55661847f8eSopenharmony_ci */ 55761847f8eSopenharmony_ci PRIORITY_NONE = 0, 55861847f8eSopenharmony_ci /** 55961847f8eSopenharmony_ci * Low priority 56061847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 56161847f8eSopenharmony_ci * @stagemodelonly 56261847f8eSopenharmony_ci * @since 12 56361847f8eSopenharmony_ci */ 56461847f8eSopenharmony_ci PRIORITY_LOW = 1, 56561847f8eSopenharmony_ci /** 56661847f8eSopenharmony_ci * Medium priority 56761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 56861847f8eSopenharmony_ci * @stagemodelonly 56961847f8eSopenharmony_ci * @since 12 57061847f8eSopenharmony_ci */ 57161847f8eSopenharmony_ci PRIORITY_MEDIUM = 2, 57261847f8eSopenharmony_ci /** 57361847f8eSopenharmony_ci * High priority 57461847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 57561847f8eSopenharmony_ci * @stagemodelonly 57661847f8eSopenharmony_ci * @since 12 57761847f8eSopenharmony_ci */ 57861847f8eSopenharmony_ci PRIORITY_HIGH = 3, 57961847f8eSopenharmony_ci } 58061847f8eSopenharmony_ci 58161847f8eSopenharmony_ci /** 58261847f8eSopenharmony_ci * Provides the extension information of nnrt device 58361847f8eSopenharmony_ci * @typedef Extension 58461847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 58561847f8eSopenharmony_ci * @stagemodelonly 58661847f8eSopenharmony_ci * @since 12 58761847f8eSopenharmony_ci */ 58861847f8eSopenharmony_ci interface Extension { 58961847f8eSopenharmony_ci /** 59061847f8eSopenharmony_ci * Extension name 59161847f8eSopenharmony_ci * @type {string} 59261847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 59361847f8eSopenharmony_ci * @stagemodelonly 59461847f8eSopenharmony_ci * @since 12 59561847f8eSopenharmony_ci */ 59661847f8eSopenharmony_ci name: string, 59761847f8eSopenharmony_ci /** 59861847f8eSopenharmony_ci * Extension array buffer 59961847f8eSopenharmony_ci * @type {ArrayBuffer} 60061847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 60161847f8eSopenharmony_ci * @stagemodelonly 60261847f8eSopenharmony_ci * @since 12 60361847f8eSopenharmony_ci */ 60461847f8eSopenharmony_ci value: ArrayBuffer 60561847f8eSopenharmony_ci } 60661847f8eSopenharmony_ci 60761847f8eSopenharmony_ci /** 60861847f8eSopenharmony_ci * Enum for nnrt device type 60961847f8eSopenharmony_ci * @enum {number} 61061847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 61161847f8eSopenharmony_ci * @stagemodelonly 61261847f8eSopenharmony_ci * @since 12 61361847f8eSopenharmony_ci */ 61461847f8eSopenharmony_ci export enum NNRTDeviceType { 61561847f8eSopenharmony_ci /** 61661847f8eSopenharmony_ci * Devices that are not CPU, GPU, or dedicated accelerator 61761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 61861847f8eSopenharmony_ci * @stagemodelonly 61961847f8eSopenharmony_ci * @since 12 62061847f8eSopenharmony_ci */ 62161847f8eSopenharmony_ci NNRTDEVICE_OTHERS = 0, 62261847f8eSopenharmony_ci 62361847f8eSopenharmony_ci /** 62461847f8eSopenharmony_ci * CPU device 62561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 62661847f8eSopenharmony_ci * @stagemodelonly 62761847f8eSopenharmony_ci * @since 12 62861847f8eSopenharmony_ci */ 62961847f8eSopenharmony_ci NNRTDEVICE_CPU = 1, 63061847f8eSopenharmony_ci 63161847f8eSopenharmony_ci /** 63261847f8eSopenharmony_ci * GPU device 63361847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 63461847f8eSopenharmony_ci * @stagemodelonly 63561847f8eSopenharmony_ci * @since 12 63661847f8eSopenharmony_ci */ 63761847f8eSopenharmony_ci NNRTDEVICE_GPU = 2, 63861847f8eSopenharmony_ci 63961847f8eSopenharmony_ci /** 64061847f8eSopenharmony_ci * Dedicated hardware accelerator 64161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 64261847f8eSopenharmony_ci * @stagemodelonly 64361847f8eSopenharmony_ci * @since 12 64461847f8eSopenharmony_ci */ 64561847f8eSopenharmony_ci NNRTDEVICE_ACCELERATOR = 3, 64661847f8eSopenharmony_ci } 64761847f8eSopenharmony_ci 64861847f8eSopenharmony_ci /** 64961847f8eSopenharmony_ci * Provides the nnrt device description 65061847f8eSopenharmony_ci * @typedef NNRTDeviceDescription 65161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 65261847f8eSopenharmony_ci * @stagemodelonly 65361847f8eSopenharmony_ci * @since 12 65461847f8eSopenharmony_ci */ 65561847f8eSopenharmony_ci interface NNRTDeviceDescription { 65661847f8eSopenharmony_ci /** 65761847f8eSopenharmony_ci * Get device id 65861847f8eSopenharmony_ci * @returns { bigint } the number of device id 65961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 66061847f8eSopenharmony_ci * @stagemodelonly 66161847f8eSopenharmony_ci * @since 12 66261847f8eSopenharmony_ci */ 66361847f8eSopenharmony_ci deviceID() : bigint; 66461847f8eSopenharmony_ci /** 66561847f8eSopenharmony_ci * Get device type. 66661847f8eSopenharmony_ci * @returns { NNRTDeviceType } the device type 66761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 66861847f8eSopenharmony_ci * @stagemodelonly 66961847f8eSopenharmony_ci * @since 12 67061847f8eSopenharmony_ci */ 67161847f8eSopenharmony_ci deviceType() : NNRTDeviceType; 67261847f8eSopenharmony_ci /** 67361847f8eSopenharmony_ci * Get device name. 67461847f8eSopenharmony_ci * @returns { string } device name 67561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 67661847f8eSopenharmony_ci * @stagemodelonly 67761847f8eSopenharmony_ci * @since 12 67861847f8eSopenharmony_ci */ 67961847f8eSopenharmony_ci deviceName() : string; 68061847f8eSopenharmony_ci } 68161847f8eSopenharmony_ci 68261847f8eSopenharmony_ci /** 68361847f8eSopenharmony_ci * Obtain the all device descriptions in NNRT. 68461847f8eSopenharmony_ci * @returns { NNRTDeviceDescription[] } the array of NNRTDeviceDescription 68561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 68661847f8eSopenharmony_ci * @stagemodelonly 68761847f8eSopenharmony_ci * @since 12 68861847f8eSopenharmony_ci */ 68961847f8eSopenharmony_ci function getAllNNRTDeviceDescriptions() : NNRTDeviceDescription[]; 69061847f8eSopenharmony_ci 69161847f8eSopenharmony_ci /** 69261847f8eSopenharmony_ci * Provides the NNRT device info 69361847f8eSopenharmony_ci * @typedef NNRTDevice 69461847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 69561847f8eSopenharmony_ci * @stagemodelonly 69661847f8eSopenharmony_ci * @since 10 69761847f8eSopenharmony_ci */ 69861847f8eSopenharmony_ci interface NNRTDevice { 69961847f8eSopenharmony_ci /** 70061847f8eSopenharmony_ci * NNRT device id. 70161847f8eSopenharmony_ci * @type {?bigint} 70261847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 70361847f8eSopenharmony_ci * @stagemodelonly 70461847f8eSopenharmony_ci * @since 12 70561847f8eSopenharmony_ci */ 70661847f8eSopenharmony_ci deviceID?: bigint, 70761847f8eSopenharmony_ci /** 70861847f8eSopenharmony_ci * NNRT device performance mode. 70961847f8eSopenharmony_ci * @type {?PerformanceMode} 71061847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 71161847f8eSopenharmony_ci * @stagemodelonly 71261847f8eSopenharmony_ci * @since 12 71361847f8eSopenharmony_ci */ 71461847f8eSopenharmony_ci performanceMode?: PerformanceMode, 71561847f8eSopenharmony_ci /** 71661847f8eSopenharmony_ci * NNRT device priority. 71761847f8eSopenharmony_ci * @type {?Priority} 71861847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 71961847f8eSopenharmony_ci * @stagemodelonly 72061847f8eSopenharmony_ci * @since 12 72161847f8eSopenharmony_ci */ 72261847f8eSopenharmony_ci priority?: Priority, 72361847f8eSopenharmony_ci /** 72461847f8eSopenharmony_ci * NNRT device extension array. 72561847f8eSopenharmony_ci * @type {?Extension[]} 72661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 72761847f8eSopenharmony_ci * @stagemodelonly 72861847f8eSopenharmony_ci * @since 12 72961847f8eSopenharmony_ci */ 73061847f8eSopenharmony_ci extensions?: Extension[], 73161847f8eSopenharmony_ci } 73261847f8eSopenharmony_ci 73361847f8eSopenharmony_ci /** 73461847f8eSopenharmony_ci * Enum for provides CPU thread affinity mode 73561847f8eSopenharmony_ci * @enum {number} 73661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 73761847f8eSopenharmony_ci * @stagemodelonly 73861847f8eSopenharmony_ci * @since 10 73961847f8eSopenharmony_ci */ 74061847f8eSopenharmony_ci export enum ThreadAffinityMode { 74161847f8eSopenharmony_ci /** 74261847f8eSopenharmony_ci * Thread affinity mode is no bind. 74361847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 74461847f8eSopenharmony_ci * @stagemodelonly 74561847f8eSopenharmony_ci * @since 10 74661847f8eSopenharmony_ci */ 74761847f8eSopenharmony_ci NO_AFFINITIES = 0, 74861847f8eSopenharmony_ci 74961847f8eSopenharmony_ci /** 75061847f8eSopenharmony_ci * Thread affinity mode is big cores first 75161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 75261847f8eSopenharmony_ci * @stagemodelonly 75361847f8eSopenharmony_ci * @since 10 75461847f8eSopenharmony_ci */ 75561847f8eSopenharmony_ci BIG_CORES_FIRST = 1, 75661847f8eSopenharmony_ci 75761847f8eSopenharmony_ci /** 75861847f8eSopenharmony_ci * Thread affinity mode is little cores first 75961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 76061847f8eSopenharmony_ci * @stagemodelonly 76161847f8eSopenharmony_ci * @since 10 76261847f8eSopenharmony_ci */ 76361847f8eSopenharmony_ci LITTLE_CORES_FIRST = 2, 76461847f8eSopenharmony_ci } 76561847f8eSopenharmony_ci 76661847f8eSopenharmony_ci /** 76761847f8eSopenharmony_ci * Provides MSTensor definition 76861847f8eSopenharmony_ci * @typedef MSTensor 76961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 77061847f8eSopenharmony_ci * @stagemodelonly 77161847f8eSopenharmony_ci * @since 10 77261847f8eSopenharmony_ci */ 77361847f8eSopenharmony_ci interface MSTensor { 77461847f8eSopenharmony_ci /** 77561847f8eSopenharmony_ci * The name of the tensor. 77661847f8eSopenharmony_ci * @type {string} 77761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 77861847f8eSopenharmony_ci * @stagemodelonly 77961847f8eSopenharmony_ci * @since 10 78061847f8eSopenharmony_ci */ 78161847f8eSopenharmony_ci name: string; 78261847f8eSopenharmony_ci /** 78361847f8eSopenharmony_ci * The shape of the tensor. 78461847f8eSopenharmony_ci * @type {number[]} 78561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 78661847f8eSopenharmony_ci * @stagemodelonly 78761847f8eSopenharmony_ci * @since 10 78861847f8eSopenharmony_ci */ 78961847f8eSopenharmony_ci shape: number[]; 79061847f8eSopenharmony_ci /** 79161847f8eSopenharmony_ci * The number of elements in the tensor. 79261847f8eSopenharmony_ci * @type {number} 79361847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 79461847f8eSopenharmony_ci * @stagemodelonly 79561847f8eSopenharmony_ci * @since 10 79661847f8eSopenharmony_ci */ 79761847f8eSopenharmony_ci elementNum: number; 79861847f8eSopenharmony_ci /** 79961847f8eSopenharmony_ci * The data size of the tensor. 80061847f8eSopenharmony_ci * @type {number} 80161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 80261847f8eSopenharmony_ci * @stagemodelonly 80361847f8eSopenharmony_ci * @since 10 80461847f8eSopenharmony_ci */ 80561847f8eSopenharmony_ci dataSize: number; 80661847f8eSopenharmony_ci /** 80761847f8eSopenharmony_ci * The data type of the tensor. 80861847f8eSopenharmony_ci * @type {DataType} 80961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 81061847f8eSopenharmony_ci * @stagemodelonly 81161847f8eSopenharmony_ci * @since 10 81261847f8eSopenharmony_ci */ 81361847f8eSopenharmony_ci dtype: DataType; 81461847f8eSopenharmony_ci /** 81561847f8eSopenharmony_ci * The format of the tensor. 81661847f8eSopenharmony_ci * @type {Format} 81761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 81861847f8eSopenharmony_ci * @stagemodelonly 81961847f8eSopenharmony_ci * @since 10 82061847f8eSopenharmony_ci */ 82161847f8eSopenharmony_ci format: Format; 82261847f8eSopenharmony_ci 82361847f8eSopenharmony_ci /** 82461847f8eSopenharmony_ci * Get MSTensor data 82561847f8eSopenharmony_ci * @returns { ArrayBuffer } the data of tensor 82661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 82761847f8eSopenharmony_ci * @stagemodelonly 82861847f8eSopenharmony_ci * @since 10 82961847f8eSopenharmony_ci */ 83061847f8eSopenharmony_ci getData(): ArrayBuffer; 83161847f8eSopenharmony_ci 83261847f8eSopenharmony_ci /** 83361847f8eSopenharmony_ci * Set MSTensor data 83461847f8eSopenharmony_ci * @param { ArrayBuffer } inputArray - indicates the buffer of tensor 83561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 83661847f8eSopenharmony_ci * @stagemodelonly 83761847f8eSopenharmony_ci * @since 10 83861847f8eSopenharmony_ci */ 83961847f8eSopenharmony_ci setData(inputArray: ArrayBuffer): void; 84061847f8eSopenharmony_ci } 84161847f8eSopenharmony_ci 84261847f8eSopenharmony_ci /** 84361847f8eSopenharmony_ci * Enum for provides MSTensor data type 84461847f8eSopenharmony_ci * @enum {number} 84561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 84661847f8eSopenharmony_ci * @stagemodelonly 84761847f8eSopenharmony_ci * @since 10 84861847f8eSopenharmony_ci */ 84961847f8eSopenharmony_ci export enum DataType { 85061847f8eSopenharmony_ci /** 85161847f8eSopenharmony_ci * data type is unknown 85261847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 85361847f8eSopenharmony_ci * @stagemodelonly 85461847f8eSopenharmony_ci * @since 10 85561847f8eSopenharmony_ci */ 85661847f8eSopenharmony_ci TYPE_UNKNOWN = 0, 85761847f8eSopenharmony_ci /** 85861847f8eSopenharmony_ci * data type is int8 85961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 86061847f8eSopenharmony_ci * @stagemodelonly 86161847f8eSopenharmony_ci * @since 10 86261847f8eSopenharmony_ci */ 86361847f8eSopenharmony_ci NUMBER_TYPE_INT8 = 32, 86461847f8eSopenharmony_ci /** 86561847f8eSopenharmony_ci * data type is int16 86661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 86761847f8eSopenharmony_ci * @stagemodelonly 86861847f8eSopenharmony_ci * @since 10 86961847f8eSopenharmony_ci */ 87061847f8eSopenharmony_ci NUMBER_TYPE_INT16 = 33, 87161847f8eSopenharmony_ci /** 87261847f8eSopenharmony_ci * data type is int32 87361847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 87461847f8eSopenharmony_ci * @stagemodelonly 87561847f8eSopenharmony_ci * @since 10 87661847f8eSopenharmony_ci */ 87761847f8eSopenharmony_ci NUMBER_TYPE_INT32 = 34, 87861847f8eSopenharmony_ci /** 87961847f8eSopenharmony_ci * data type is int64 88061847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 88161847f8eSopenharmony_ci * @stagemodelonly 88261847f8eSopenharmony_ci * @since 10 88361847f8eSopenharmony_ci */ 88461847f8eSopenharmony_ci NUMBER_TYPE_INT64 = 35, 88561847f8eSopenharmony_ci /** 88661847f8eSopenharmony_ci * data type is uint8 88761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 88861847f8eSopenharmony_ci * @stagemodelonly 88961847f8eSopenharmony_ci * @since 10 89061847f8eSopenharmony_ci */ 89161847f8eSopenharmony_ci NUMBER_TYPE_UINT8 = 37, 89261847f8eSopenharmony_ci /** 89361847f8eSopenharmony_ci * data type is uint16 89461847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 89561847f8eSopenharmony_ci * @stagemodelonly 89661847f8eSopenharmony_ci * @since 10 89761847f8eSopenharmony_ci */ 89861847f8eSopenharmony_ci NUMBER_TYPE_UINT16 = 38, 89961847f8eSopenharmony_ci /** 90061847f8eSopenharmony_ci * data type is uint32 90161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 90261847f8eSopenharmony_ci * @stagemodelonly 90361847f8eSopenharmony_ci * @since 10 90461847f8eSopenharmony_ci */ 90561847f8eSopenharmony_ci NUMBER_TYPE_UINT32 = 39, 90661847f8eSopenharmony_ci /** 90761847f8eSopenharmony_ci * data type is uint64 90861847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 90961847f8eSopenharmony_ci * @stagemodelonly 91061847f8eSopenharmony_ci * @since 10 91161847f8eSopenharmony_ci */ 91261847f8eSopenharmony_ci NUMBER_TYPE_UINT64 = 40, 91361847f8eSopenharmony_ci /** 91461847f8eSopenharmony_ci * data type is float16 91561847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 91661847f8eSopenharmony_ci * @stagemodelonly 91761847f8eSopenharmony_ci * @since 10 91861847f8eSopenharmony_ci */ 91961847f8eSopenharmony_ci NUMBER_TYPE_FLOAT16 = 42, 92061847f8eSopenharmony_ci /** 92161847f8eSopenharmony_ci * data type is float32 92261847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 92361847f8eSopenharmony_ci * @stagemodelonly 92461847f8eSopenharmony_ci * @since 10 92561847f8eSopenharmony_ci */ 92661847f8eSopenharmony_ci NUMBER_TYPE_FLOAT32 = 43, 92761847f8eSopenharmony_ci /** 92861847f8eSopenharmony_ci * data type is float64 92961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 93061847f8eSopenharmony_ci * @stagemodelonly 93161847f8eSopenharmony_ci * @since 10 93261847f8eSopenharmony_ci */ 93361847f8eSopenharmony_ci NUMBER_TYPE_FLOAT64 = 44, 93461847f8eSopenharmony_ci } 93561847f8eSopenharmony_ci 93661847f8eSopenharmony_ci /** 93761847f8eSopenharmony_ci * Enum for provides MSTensor format 93861847f8eSopenharmony_ci * @enum {number} 93961847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 94061847f8eSopenharmony_ci * @stagemodelonly 94161847f8eSopenharmony_ci * @since 10 94261847f8eSopenharmony_ci */ 94361847f8eSopenharmony_ci export enum Format { 94461847f8eSopenharmony_ci /** 94561847f8eSopenharmony_ci * data format is default 94661847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 94761847f8eSopenharmony_ci * @stagemodelonly 94861847f8eSopenharmony_ci * @since 10 94961847f8eSopenharmony_ci */ 95061847f8eSopenharmony_ci DEFAULT_FORMAT = -1, 95161847f8eSopenharmony_ci /** 95261847f8eSopenharmony_ci * data format is NCHW 95361847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 95461847f8eSopenharmony_ci * @stagemodelonly 95561847f8eSopenharmony_ci * @since 10 95661847f8eSopenharmony_ci */ 95761847f8eSopenharmony_ci NCHW = 0, 95861847f8eSopenharmony_ci /** 95961847f8eSopenharmony_ci * data format is NHWC 96061847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 96161847f8eSopenharmony_ci * @stagemodelonly 96261847f8eSopenharmony_ci * @since 10 96361847f8eSopenharmony_ci */ 96461847f8eSopenharmony_ci NHWC = 1, 96561847f8eSopenharmony_ci /** 96661847f8eSopenharmony_ci * data format is NHWC4 96761847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 96861847f8eSopenharmony_ci * @stagemodelonly 96961847f8eSopenharmony_ci * @since 10 97061847f8eSopenharmony_ci */ 97161847f8eSopenharmony_ci NHWC4 = 2, 97261847f8eSopenharmony_ci /** 97361847f8eSopenharmony_ci * data format is HWKC 97461847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 97561847f8eSopenharmony_ci * @stagemodelonly 97661847f8eSopenharmony_ci * @since 10 97761847f8eSopenharmony_ci */ 97861847f8eSopenharmony_ci HWKC = 3, 97961847f8eSopenharmony_ci /** 98061847f8eSopenharmony_ci * data format is HWCK 98161847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 98261847f8eSopenharmony_ci * @stagemodelonly 98361847f8eSopenharmony_ci * @since 10 98461847f8eSopenharmony_ci */ 98561847f8eSopenharmony_ci HWCK = 4, 98661847f8eSopenharmony_ci /** 98761847f8eSopenharmony_ci * data format is KCHW 98861847f8eSopenharmony_ci * @syscap SystemCapability.AI.MindSporeLite 98961847f8eSopenharmony_ci * @stagemodelonly 99061847f8eSopenharmony_ci * @since 10 99161847f8eSopenharmony_ci */ 99261847f8eSopenharmony_ci KCHW = 5, 99361847f8eSopenharmony_ci } 99461847f8eSopenharmony_ci} 99561847f8eSopenharmony_ciexport default mindSporeLite; 996