17777dab0Sopenharmony_ci/** 27777dab0Sopenharmony_ci * Copyright 2021 Huawei Technologies Co., Ltd 37777dab0Sopenharmony_ci * 47777dab0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 57777dab0Sopenharmony_ci * you may not use this file except in compliance with the License. 67777dab0Sopenharmony_ci * You may obtain a copy of the License at 77777dab0Sopenharmony_ci * 87777dab0Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 97777dab0Sopenharmony_ci * 107777dab0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 117777dab0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 127777dab0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137777dab0Sopenharmony_ci * See the License for the specific language governing permissions and 147777dab0Sopenharmony_ci * limitations under the License. 157777dab0Sopenharmony_ci */ 167777dab0Sopenharmony_ci 177777dab0Sopenharmony_ci/** 187777dab0Sopenharmony_ci * @addtogroup MindSpore 197777dab0Sopenharmony_ci * @{ 207777dab0Sopenharmony_ci * 217777dab0Sopenharmony_ci * @brief provide the model reasoning related interfaces of MindSpore Lite. 227777dab0Sopenharmony_ci * 237777dab0Sopenharmony_ci * @Syscap SystemCapability.Ai.MindSpore 247777dab0Sopenharmony_ci * @since 9 257777dab0Sopenharmony_ci */ 267777dab0Sopenharmony_ci 277777dab0Sopenharmony_ci/** 287777dab0Sopenharmony_ci * @file model.h 297777dab0Sopenharmony_ci * @kit MindSporeLiteKit 307777dab0Sopenharmony_ci * @brief provide model-related interfaces that can be used for model creation, model reasoning, and more. 317777dab0Sopenharmony_ci * 327777dab0Sopenharmony_ci * @library libmindspore_lite_ndk.so 337777dab0Sopenharmony_ci * @since 9 347777dab0Sopenharmony_ci */ 357777dab0Sopenharmony_ci#ifndef MINDSPORE_INCLUDE_C_API_MODEL_C_H 367777dab0Sopenharmony_ci#define MINDSPORE_INCLUDE_C_API_MODEL_C_H 377777dab0Sopenharmony_ci 387777dab0Sopenharmony_ci#include "mindspore/tensor.h" 397777dab0Sopenharmony_ci#include "mindspore/context.h" 407777dab0Sopenharmony_ci#include "mindspore/status.h" 417777dab0Sopenharmony_ci 427777dab0Sopenharmony_ci#ifdef __cplusplus 437777dab0Sopenharmony_ciextern "C" { 447777dab0Sopenharmony_ci#endif 457777dab0Sopenharmony_ci 467777dab0Sopenharmony_citypedef void *OH_AI_ModelHandle; 477777dab0Sopenharmony_ci 487777dab0Sopenharmony_citypedef void *OH_AI_TrainCfgHandle; 497777dab0Sopenharmony_ci 507777dab0Sopenharmony_citypedef struct OH_AI_TensorHandleArray { 517777dab0Sopenharmony_ci size_t handle_num; 527777dab0Sopenharmony_ci OH_AI_TensorHandle *handle_list; 537777dab0Sopenharmony_ci} OH_AI_TensorHandleArray; 547777dab0Sopenharmony_ci 557777dab0Sopenharmony_ci#define OH_AI_MAX_SHAPE_NUM 32 567777dab0Sopenharmony_citypedef struct OH_AI_ShapeInfo { 577777dab0Sopenharmony_ci size_t shape_num; 587777dab0Sopenharmony_ci int64_t shape[OH_AI_MAX_SHAPE_NUM]; 597777dab0Sopenharmony_ci} OH_AI_ShapeInfo; 607777dab0Sopenharmony_ci 617777dab0Sopenharmony_citypedef struct OH_AI_CallBackParam { 627777dab0Sopenharmony_ci char *node_name; 637777dab0Sopenharmony_ci char *node_type; 647777dab0Sopenharmony_ci} OH_AI_CallBackParam; 657777dab0Sopenharmony_ci 667777dab0Sopenharmony_citypedef bool (*OH_AI_KernelCallBack)(const OH_AI_TensorHandleArray inputs, const OH_AI_TensorHandleArray outputs, 677777dab0Sopenharmony_ci const OH_AI_CallBackParam kernel_Info); 687777dab0Sopenharmony_ci 697777dab0Sopenharmony_ci/** 707777dab0Sopenharmony_ci * @brief Create a model object. 717777dab0Sopenharmony_ci * 727777dab0Sopenharmony_ci * @return Model object handle. 737777dab0Sopenharmony_ci * @since 9 747777dab0Sopenharmony_ci */ 757777dab0Sopenharmony_ciOH_AI_API OH_AI_ModelHandle OH_AI_ModelCreate(void); 767777dab0Sopenharmony_ci 777777dab0Sopenharmony_ci/** 787777dab0Sopenharmony_ci * @brief Destroy the model object. 797777dab0Sopenharmony_ci * 807777dab0Sopenharmony_ci * @param model Model object handle address. 817777dab0Sopenharmony_ci * @since 9 827777dab0Sopenharmony_ci */ 837777dab0Sopenharmony_ciOH_AI_API void OH_AI_ModelDestroy(OH_AI_ModelHandle *model); 847777dab0Sopenharmony_ci 857777dab0Sopenharmony_ci/** 867777dab0Sopenharmony_ci * @brief Build the model from model file buffer so that it can run on a device. 877777dab0Sopenharmony_ci * 887777dab0Sopenharmony_ci * @param model Model object handle. 897777dab0Sopenharmony_ci * @param model_data Define the buffer read from a model file. 907777dab0Sopenharmony_ci * @param data_size Define bytes number of model file buffer. 917777dab0Sopenharmony_ci * @param model_type Define The type of model file. 927777dab0Sopenharmony_ci * @param model_context Define the context used to store options during execution. 937777dab0Sopenharmony_ci * @return OH_AI_Status. 947777dab0Sopenharmony_ci * @since 9 957777dab0Sopenharmony_ci */ 967777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ModelBuild(OH_AI_ModelHandle model, const void *model_data, size_t data_size, 977777dab0Sopenharmony_ci OH_AI_ModelType model_type, const OH_AI_ContextHandle model_context); 987777dab0Sopenharmony_ci 997777dab0Sopenharmony_ci/** 1007777dab0Sopenharmony_ci * @brief Load and build the model from model path so that it can run on a device. 1017777dab0Sopenharmony_ci * 1027777dab0Sopenharmony_ci * @param model Model object handle. 1037777dab0Sopenharmony_ci * @param model_path Define the model file path. 1047777dab0Sopenharmony_ci * @param model_type Define The type of model file. 1057777dab0Sopenharmony_ci * @param model_context Define the context used to store options during execution. 1067777dab0Sopenharmony_ci * @return OH_AI_Status. 1077777dab0Sopenharmony_ci * @since 9 1087777dab0Sopenharmony_ci */ 1097777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ModelBuildFromFile(OH_AI_ModelHandle model, const char *model_path, 1107777dab0Sopenharmony_ci OH_AI_ModelType model_type, const OH_AI_ContextHandle model_context); 1117777dab0Sopenharmony_ci 1127777dab0Sopenharmony_ci/** 1137777dab0Sopenharmony_ci * @brief Resizes the shapes of inputs. 1147777dab0Sopenharmony_ci * 1157777dab0Sopenharmony_ci * @param model Model object handle. 1167777dab0Sopenharmony_ci * @param inputs The array that includes all input tensor handles. 1177777dab0Sopenharmony_ci * @param shape_infos Defines the new shapes of inputs, should be consistent with inputs. 1187777dab0Sopenharmony_ci * @param shape_info_num The num of shape_infos. 1197777dab0Sopenharmony_ci * @return OH_AI_Status. 1207777dab0Sopenharmony_ci * @since 9 1217777dab0Sopenharmony_ci */ 1227777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ModelResize(OH_AI_ModelHandle model, const OH_AI_TensorHandleArray inputs, 1237777dab0Sopenharmony_ci OH_AI_ShapeInfo *shape_infos, size_t shape_info_num); 1247777dab0Sopenharmony_ci 1257777dab0Sopenharmony_ci/** 1267777dab0Sopenharmony_ci * @brief Inference model. 1277777dab0Sopenharmony_ci * 1287777dab0Sopenharmony_ci * @param model Model object handle. 1297777dab0Sopenharmony_ci * @param inputs The array that includes all input tensor handles. 1307777dab0Sopenharmony_ci * @param outputs The array that includes all output tensor handles. 1317777dab0Sopenharmony_ci * @param before CallBack before predict. 1327777dab0Sopenharmony_ci * @param after CallBack after predict. 1337777dab0Sopenharmony_ci * @return OH_AI_Status. 1347777dab0Sopenharmony_ci * @since 9 1357777dab0Sopenharmony_ci */ 1367777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ModelPredict(OH_AI_ModelHandle model, const OH_AI_TensorHandleArray inputs, 1377777dab0Sopenharmony_ci OH_AI_TensorHandleArray *outputs, const OH_AI_KernelCallBack before, 1387777dab0Sopenharmony_ci const OH_AI_KernelCallBack after); 1397777dab0Sopenharmony_ci 1407777dab0Sopenharmony_ci/** 1417777dab0Sopenharmony_ci * @brief Obtains all input tensor handles of the model. 1427777dab0Sopenharmony_ci * 1437777dab0Sopenharmony_ci * @param model Model object handle. 1447777dab0Sopenharmony_ci * @return The array that includes all input tensor handles. 1457777dab0Sopenharmony_ci * @since 9 1467777dab0Sopenharmony_ci */ 1477777dab0Sopenharmony_ciOH_AI_API OH_AI_TensorHandleArray OH_AI_ModelGetInputs(const OH_AI_ModelHandle model); 1487777dab0Sopenharmony_ci 1497777dab0Sopenharmony_ci/** 1507777dab0Sopenharmony_ci * @brief Obtains all output tensor handles of the model. 1517777dab0Sopenharmony_ci * 1527777dab0Sopenharmony_ci * @param model Model object handle. 1537777dab0Sopenharmony_ci * @return The array that includes all output tensor handles. 1547777dab0Sopenharmony_ci * @since 9 1557777dab0Sopenharmony_ci */ 1567777dab0Sopenharmony_ciOH_AI_API OH_AI_TensorHandleArray OH_AI_ModelGetOutputs(const OH_AI_ModelHandle model); 1577777dab0Sopenharmony_ci 1587777dab0Sopenharmony_ci/** 1597777dab0Sopenharmony_ci * @brief Obtains the input tensor handle of the model by name. 1607777dab0Sopenharmony_ci * 1617777dab0Sopenharmony_ci * @param model Model object handle. 1627777dab0Sopenharmony_ci * @param tensor_name The name of tensor. 1637777dab0Sopenharmony_ci * @return The input tensor handle with the given name, if the name is not found, an NULL is returned. 1647777dab0Sopenharmony_ci * @since 9 1657777dab0Sopenharmony_ci */ 1667777dab0Sopenharmony_ciOH_AI_API OH_AI_TensorHandle OH_AI_ModelGetInputByTensorName(const OH_AI_ModelHandle model, const char *tensor_name); 1677777dab0Sopenharmony_ci 1687777dab0Sopenharmony_ci/** 1697777dab0Sopenharmony_ci * @brief Obtains the output tensor handle of the model by name. 1707777dab0Sopenharmony_ci * 1717777dab0Sopenharmony_ci * @param model Model object handle. 1727777dab0Sopenharmony_ci * @param tensor_name The name of tensor. 1737777dab0Sopenharmony_ci * @return The output tensor handle with the given name, if the name is not found, an NULL is returned. 1747777dab0Sopenharmony_ci * @since 9 1757777dab0Sopenharmony_ci */ 1767777dab0Sopenharmony_ciOH_AI_API OH_AI_TensorHandle OH_AI_ModelGetOutputByTensorName(const OH_AI_ModelHandle model, const char *tensor_name); 1777777dab0Sopenharmony_ci 1787777dab0Sopenharmony_ci/** 1797777dab0Sopenharmony_ci * @brief Create a TrainCfg object. Only valid for Lite Train. 1807777dab0Sopenharmony_ci * 1817777dab0Sopenharmony_ci * @return TrainCfg object handle. 1827777dab0Sopenharmony_ci * @since 11 1837777dab0Sopenharmony_ci */ 1847777dab0Sopenharmony_ciOH_AI_API OH_AI_TrainCfgHandle OH_AI_TrainCfgCreate(); 1857777dab0Sopenharmony_ci 1867777dab0Sopenharmony_ci/** 1877777dab0Sopenharmony_ci * @brief Destroy the train_cfg object. Only valid for Lite Train. 1887777dab0Sopenharmony_ci * 1897777dab0Sopenharmony_ci * @param train_cfg TrainCfg object handle. 1907777dab0Sopenharmony_ci * @since 11 1917777dab0Sopenharmony_ci */ 1927777dab0Sopenharmony_ciOH_AI_API void OH_AI_TrainCfgDestroy(OH_AI_TrainCfgHandle *train_cfg); 1937777dab0Sopenharmony_ci 1947777dab0Sopenharmony_ci/** 1957777dab0Sopenharmony_ci * @brief Obtains part of the name that identify a loss kernel. Only valid for Lite Train. 1967777dab0Sopenharmony_ci * 1977777dab0Sopenharmony_ci * @param train_cfg TrainCfg object handle. 1987777dab0Sopenharmony_ci * @param num The num of loss_name. 1997777dab0Sopenharmony_ci * @return loss_name. 2007777dab0Sopenharmony_ci * @since 11 2017777dab0Sopenharmony_ci */ 2027777dab0Sopenharmony_ciOH_AI_API char **OH_AI_TrainCfgGetLossName(OH_AI_TrainCfgHandle train_cfg, size_t *num); 2037777dab0Sopenharmony_ci 2047777dab0Sopenharmony_ci/** 2057777dab0Sopenharmony_ci * @brief Set part of the name that identify a loss kernel. Only valid for Lite Train. 2067777dab0Sopenharmony_ci * 2077777dab0Sopenharmony_ci * @param train_cfg TrainCfg object handle. 2087777dab0Sopenharmony_ci * @param loss_name Define part of the name that identify a loss kernel. 2097777dab0Sopenharmony_ci * @param num The num of loss_name. 2107777dab0Sopenharmony_ci * @since 11 2117777dab0Sopenharmony_ci */ 2127777dab0Sopenharmony_ciOH_AI_API void OH_AI_TrainCfgSetLossName(OH_AI_TrainCfgHandle train_cfg, const char **loss_name, size_t num); 2137777dab0Sopenharmony_ci 2147777dab0Sopenharmony_ci/** 2157777dab0Sopenharmony_ci * @brief Obtains optimization level of the train_cfg. Only valid for Lite Train. 2167777dab0Sopenharmony_ci * 2177777dab0Sopenharmony_ci * @param train_cfg TrainCfg object handle. 2187777dab0Sopenharmony_ci * @return OH_AI_OptimizationLevel. 2197777dab0Sopenharmony_ci * @since 11 2207777dab0Sopenharmony_ci */ 2217777dab0Sopenharmony_ciOH_AI_API OH_AI_OptimizationLevel OH_AI_TrainCfgGetOptimizationLevel(OH_AI_TrainCfgHandle train_cfg); 2227777dab0Sopenharmony_ci 2237777dab0Sopenharmony_ci/** 2247777dab0Sopenharmony_ci * @brief Set optimization level of the train_cfg. Only valid for Lite Train. 2257777dab0Sopenharmony_ci * 2267777dab0Sopenharmony_ci * @param train_cfg TrainCfg object handle. 2277777dab0Sopenharmony_ci * @param level The optimization level of train_cfg. 2287777dab0Sopenharmony_ci * @since 11 2297777dab0Sopenharmony_ci */ 2307777dab0Sopenharmony_ciOH_AI_API void OH_AI_TrainCfgSetOptimizationLevel(OH_AI_TrainCfgHandle train_cfg, OH_AI_OptimizationLevel level); 2317777dab0Sopenharmony_ci 2327777dab0Sopenharmony_ci/** 2337777dab0Sopenharmony_ci * @brief Build the train model from model buffer so that it can run on a device. Only valid for Lite Train. 2347777dab0Sopenharmony_ci * 2357777dab0Sopenharmony_ci * @param model Model object handle. 2367777dab0Sopenharmony_ci * @param model_data Define the buffer read from a model file. 2377777dab0Sopenharmony_ci * @param data_size Define bytes number of model file buffer. 2387777dab0Sopenharmony_ci * @param model_type Define The type of model file. 2397777dab0Sopenharmony_ci * @param model_context Define the context used to store options during execution. 2407777dab0Sopenharmony_ci * @param train_cfg Define the config used by training. 2417777dab0Sopenharmony_ci * @return OH_AI_Status. 2427777dab0Sopenharmony_ci * @since 11 2437777dab0Sopenharmony_ci */ 2447777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_TrainModelBuild(OH_AI_ModelHandle model, const void *model_data, size_t data_size, 2457777dab0Sopenharmony_ci OH_AI_ModelType model_type, const OH_AI_ContextHandle model_context, 2467777dab0Sopenharmony_ci const OH_AI_TrainCfgHandle train_cfg); 2477777dab0Sopenharmony_ci 2487777dab0Sopenharmony_ci/** 2497777dab0Sopenharmony_ci * @brief Build the train model from model file buffer so that it can run on a device. Only valid for Lite Train. 2507777dab0Sopenharmony_ci * 2517777dab0Sopenharmony_ci * @param model Model object handle. 2527777dab0Sopenharmony_ci * @param model_path Define the model path. 2537777dab0Sopenharmony_ci * @param model_type Define The type of model file. 2547777dab0Sopenharmony_ci * @param model_context Define the context used to store options during execution. 2557777dab0Sopenharmony_ci * @param train_cfg Define the config used by training. 2567777dab0Sopenharmony_ci * @return OH_AI_Status. 2577777dab0Sopenharmony_ci * @since 11 2587777dab0Sopenharmony_ci */ 2597777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_TrainModelBuildFromFile(OH_AI_ModelHandle model, const char *model_path, 2607777dab0Sopenharmony_ci OH_AI_ModelType model_type, 2617777dab0Sopenharmony_ci const OH_AI_ContextHandle model_context, 2627777dab0Sopenharmony_ci const OH_AI_TrainCfgHandle train_cfg); 2637777dab0Sopenharmony_ci 2647777dab0Sopenharmony_ci/** 2657777dab0Sopenharmony_ci * @brief Train model by step. Only valid for Lite Train. 2667777dab0Sopenharmony_ci * 2677777dab0Sopenharmony_ci * @param model Model object handle. 2687777dab0Sopenharmony_ci * @param before CallBack before predict. 2697777dab0Sopenharmony_ci * @param after CallBack after predict. 2707777dab0Sopenharmony_ci * @return OH_AI_Status. 2717777dab0Sopenharmony_ci * @since 11 2727777dab0Sopenharmony_ci */ 2737777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_RunStep(OH_AI_ModelHandle model, const OH_AI_KernelCallBack before, 2747777dab0Sopenharmony_ci const OH_AI_KernelCallBack after); 2757777dab0Sopenharmony_ci 2767777dab0Sopenharmony_ci/** 2777777dab0Sopenharmony_ci * @brief Sets the Learning Rate of the training. Only valid for Lite Train. 2787777dab0Sopenharmony_ci * 2797777dab0Sopenharmony_ci * @param learning_rate to set. 2807777dab0Sopenharmony_ci * @return OH_AI_Status of operation. 2817777dab0Sopenharmony_ci * @since 11 2827777dab0Sopenharmony_ci */ 2837777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ModelSetLearningRate(OH_AI_ModelHandle model, float learning_rate); 2847777dab0Sopenharmony_ci 2857777dab0Sopenharmony_ci/** 2867777dab0Sopenharmony_ci * @brief Obtains the Learning Rate of the optimizer. Only valid for Lite Train. 2877777dab0Sopenharmony_ci * 2887777dab0Sopenharmony_ci * @param model Model object handle. 2897777dab0Sopenharmony_ci * @return Learning rate. 0.0 if no optimizer was found. 2907777dab0Sopenharmony_ci * @since 11 2917777dab0Sopenharmony_ci */ 2927777dab0Sopenharmony_ciOH_AI_API float OH_AI_ModelGetLearningRate(OH_AI_ModelHandle model); 2937777dab0Sopenharmony_ci 2947777dab0Sopenharmony_ci/** 2957777dab0Sopenharmony_ci * @brief Obtains all weights tensors of the model. Only valid for Lite Train. 2967777dab0Sopenharmony_ci * 2977777dab0Sopenharmony_ci * @param model Model object handle. 2987777dab0Sopenharmony_ci * @return The vector that includes all gradient tensors. 2997777dab0Sopenharmony_ci * @since 11 3007777dab0Sopenharmony_ci */ 3017777dab0Sopenharmony_ciOH_AI_API OH_AI_TensorHandleArray OH_AI_ModelGetWeights(OH_AI_ModelHandle model); 3027777dab0Sopenharmony_ci 3037777dab0Sopenharmony_ci/** 3047777dab0Sopenharmony_ci * @brief update weights tensors of the model. Only valid for Lite Train. 3057777dab0Sopenharmony_ci * 3067777dab0Sopenharmony_ci * @param new_weights A vector new weights. 3077777dab0Sopenharmony_ci * @return OH_AI_Status 3087777dab0Sopenharmony_ci * @since 11 3097777dab0Sopenharmony_ci */ 3107777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ModelUpdateWeights(OH_AI_ModelHandle model, const OH_AI_TensorHandleArray new_weights); 3117777dab0Sopenharmony_ci 3127777dab0Sopenharmony_ci/** 3137777dab0Sopenharmony_ci * @brief Get the model running mode. 3147777dab0Sopenharmony_ci * 3157777dab0Sopenharmony_ci * @param model Model object handle. 3167777dab0Sopenharmony_ci * @return Is Train Mode or not. 3177777dab0Sopenharmony_ci * @since 11 3187777dab0Sopenharmony_ci */ 3197777dab0Sopenharmony_ciOH_AI_API bool OH_AI_ModelGetTrainMode(OH_AI_ModelHandle model); 3207777dab0Sopenharmony_ci 3217777dab0Sopenharmony_ci/** 3227777dab0Sopenharmony_ci * @brief Set the model running mode. Only valid for Lite Train. 3237777dab0Sopenharmony_ci * 3247777dab0Sopenharmony_ci * @param model Model object handle. 3257777dab0Sopenharmony_ci * @param train True means model runs in Train Mode, otherwise Eval Mode. 3267777dab0Sopenharmony_ci * @return OH_AI_Status. 3277777dab0Sopenharmony_ci * @since 11 3287777dab0Sopenharmony_ci */ 3297777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ModelSetTrainMode(OH_AI_ModelHandle model, bool train); 3307777dab0Sopenharmony_ci 3317777dab0Sopenharmony_ci/** 3327777dab0Sopenharmony_ci * @brief Setup training with virtual batches. Only valid for Lite Train. 3337777dab0Sopenharmony_ci * 3347777dab0Sopenharmony_ci * @param model Model object handle. 3357777dab0Sopenharmony_ci * @param virtual_batch_multiplier Virtual batch multiplier, use any number < 1 to disable. 3367777dab0Sopenharmony_ci * @param lr Learning rate to use for virtual batch, -1 for internal configuration. 3377777dab0Sopenharmony_ci * @param momentum Batch norm momentum to use for virtual batch, -1 for internal configuration. 3387777dab0Sopenharmony_ci * @return OH_AI_Status. 3397777dab0Sopenharmony_ci * @since 11 3407777dab0Sopenharmony_ci */ 3417777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ModelSetupVirtualBatch(OH_AI_ModelHandle model, int virtual_batch_multiplier, float lr, 3427777dab0Sopenharmony_ci float momentum); 3437777dab0Sopenharmony_ci 3447777dab0Sopenharmony_ci/** 3457777dab0Sopenharmony_ci * @brief Export training model from file. Only valid for Lite Train. 3467777dab0Sopenharmony_ci * 3477777dab0Sopenharmony_ci * @param model The model data. 3487777dab0Sopenharmony_ci * @param model_type The model file type. 3497777dab0Sopenharmony_ci * @param model_file The exported model file. 3507777dab0Sopenharmony_ci * @param quantization_type The quantification type. 3517777dab0Sopenharmony_ci * @param export_inference_only Whether to export a reasoning only model. 3527777dab0Sopenharmony_ci * @param output_tensor_name The set the name of the output tensor of the exported reasoning model, default as 3537777dab0Sopenharmony_ci * empty, and export the complete reasoning model. 3547777dab0Sopenharmony_ci * @param num The number of output_tensor_name. 3557777dab0Sopenharmony_ci * @return OH_AI_Status. 3567777dab0Sopenharmony_ci * @since 11 3577777dab0Sopenharmony_ci */ 3587777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ExportModel(OH_AI_ModelHandle model, OH_AI_ModelType model_type, const char *model_file, 3597777dab0Sopenharmony_ci OH_AI_QuantizationType quantization_type, bool export_inference_only, 3607777dab0Sopenharmony_ci char **output_tensor_name, size_t num); 3617777dab0Sopenharmony_ci 3627777dab0Sopenharmony_ci/** 3637777dab0Sopenharmony_ci * @brief Export training model from buffer. Only valid for Lite Train. 3647777dab0Sopenharmony_ci * 3657777dab0Sopenharmony_ci * @param model The model data. 3667777dab0Sopenharmony_ci * @param model_type The model file type. 3677777dab0Sopenharmony_ci * @param model_data The exported model buffer. 3687777dab0Sopenharmony_ci * @param data_size The exported model buffer size. 3697777dab0Sopenharmony_ci * @param quantization_type The quantification type. 3707777dab0Sopenharmony_ci * @param export_inference_only Whether to export a reasoning only model. 3717777dab0Sopenharmony_ci * @param output_tensor_name The set the name of the output tensor of the exported reasoning model, default as 3727777dab0Sopenharmony_ci * empty, and export the complete reasoning model. 3737777dab0Sopenharmony_ci * @param num The number of output_tensor_name. 3747777dab0Sopenharmony_ci * @return OH_AI_Status. 3757777dab0Sopenharmony_ci * @since 11 3767777dab0Sopenharmony_ci */ 3777777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ExportModelBuffer(OH_AI_ModelHandle model, OH_AI_ModelType model_type, void *model_data, 3787777dab0Sopenharmony_ci size_t *data_size, OH_AI_QuantizationType quantization_type, 3797777dab0Sopenharmony_ci bool export_inference_only, char **output_tensor_name, size_t num); 3807777dab0Sopenharmony_ci 3817777dab0Sopenharmony_ci/** 3827777dab0Sopenharmony_ci * @brief Export model's weights, which can be used in micro only. Only valid for Lite Train. 3837777dab0Sopenharmony_ci * 3847777dab0Sopenharmony_ci * @param model The model data. 3857777dab0Sopenharmony_ci * @param model_type The model file type. 3867777dab0Sopenharmony_ci * @param weight_file The path of exported weight file. 3877777dab0Sopenharmony_ci * @param is_inference Whether to export weights from a reasoning model. Currently, only support this is `true`. 3887777dab0Sopenharmony_ci * @param enable_fp16 Float-weight is whether to be saved in float16 format. 3897777dab0Sopenharmony_ci * @param changeable_weights_name The set the name of these weight tensors, whose shape is changeable. 3907777dab0Sopenharmony_ci * @param num The number of changeable_weights_name. 3917777dab0Sopenharmony_ci * @return OH_AI_Status. 3927777dab0Sopenharmony_ci * @since 11 3937777dab0Sopenharmony_ci */ 3947777dab0Sopenharmony_ciOH_AI_API OH_AI_Status OH_AI_ExportWeightsCollaborateWithMicro(OH_AI_ModelHandle model, OH_AI_ModelType model_type, 3957777dab0Sopenharmony_ci const char *weight_file, bool is_inference, 3967777dab0Sopenharmony_ci bool enable_fp16, char **changeable_weights_name, 3977777dab0Sopenharmony_ci size_t num); 3987777dab0Sopenharmony_ci 3997777dab0Sopenharmony_ci#ifdef __cplusplus 4007777dab0Sopenharmony_ci} 4017777dab0Sopenharmony_ci#endif 4027777dab0Sopenharmony_ci#endif // MINDSPORE_INCLUDE_C_API_MODEL_C_H 403