MindSpore接口mindspore::api
MindSpore接口mindspore::api
Context
#include <context.h>
Context類用于保存執行中的環境變量。
靜態公有成員函數
Instance
static Context &Instance();
獲取MindSpore Context實例對象。
公有成員函數
GetDeviceTarget
const std::string &GetDeviceTarget() const;
獲取當前目標Device類型。
? 返回值
當前DeviceTarget的類型。
GetDeviceID
uint32_t GetDeviceID() const;
獲取當前Device ID。
? 返回值
當前Device ID。
SetDeviceTarget
Context &SetDeviceTarget(const std::string &device_target);
配置目標Device。
? 參數
o device_target: 將要配置的目標Device,可選有kDeviceTypeAscend310、kDeviceTypeAscend910。
? 返回值
該MindSpore Context實例對象。
SetDeviceID
Context &SetDeviceID(uint32_t device_id);
獲取當前Device ID。
? 參數
o device_id: 將要配置的Device ID。
? 返回值
該MindSpore Context實例對象。
Serialization
#include <serialization.h>
Serialization類匯總了模型文件讀寫的方法。
靜態公有成員函數
LoadModel
? 參數
o file: 模型文件路徑。
o model_type:模型文件類型,可選有ModelType::kMindIR、ModelType::kOM。
? 返回值
保存圖數據的對象。
Model
#include <model.h>
Model定義了MindSpore中的模型,便于計算圖管理。
構造函數和析構函數
Model(const GraphCell &graph);
~Model();
GraphCell是Cell的一個派生,Cell目前沒有開放使用。GraphCell可以由Graph構造,如Model model(GraphCell(graph))。
公有成員函數
Build
Status Build(const std::map<std::string, std::string> &options);
將模型編譯至可在Device上運行的狀態。
? 參數
o options: 模型編譯選項,key為選項名,value為對應選項,支持的options有:
Key Value
kModelOptionInsertOpCfgPath AIPP配置文件路徑
kModelOptionInputFormat 手動指定模型輸入format,可選有"NCHW",“NHWC"等
kModelOptionInputShape 手動指定模型輸入shape,如"input_op_name1: n1,c2,h3,w4;input_op_name2: n4,c3,h2,w1”
kModelOptionOutputType 手動指定模型輸出type,如"FP16",“UINT8"等,默認為"FP32”
kModelOptionPrecisionMode 模型精度模式,可選有"force_fp16",“allow_fp32_to_fp16”,“must_keep_origin_dtype"或者"allow_mix_precision”,默認為"force_fp16"
kModelOptionOpSelectImplMode 算子選擇模式,可選有"high_performance"和"high_precision",默認為"high_performance"
? 返回值
狀態碼。
Predict
Status Predict(const std::vector &inputs, std::vector *outputs);
推理模型。
? 參數
o inputs: 模型輸入按順序排列的vector。
o outputs: 輸出參數,按順序排列的vector的指針,模型輸出會按順序填入該容器。
? 返回值
狀態碼。
GetInputsInfo
Status GetInputsInfo(std::vectorstd::string *names, std::vector<std::vector<int64_t>> *shapes, std::vector *data_types, std::vector<size_t> *mem_sizes) const;
獲取模型輸入信息。
? 參數
o names: 可選輸出參數,模型輸入按順序排列的vector的指針,模型輸入的name會按順序填入該容器,傳入nullptr則表示不獲取該屬性。
o shapes: 可選輸出參數,模型輸入按順序排列的vector的指針,模型輸入的shape會按順序填入該容器,傳入nullptr則表示不獲取該屬性。
o data_types: 可選輸出參數,模型輸入按順序排列的vector的指針,模型輸入的數據類型會按順序填入該容器,傳入nullptr則表示不獲取該屬性。
o mem_sizes: 可選輸出參數,模型輸入按順序排列的vector的指針,模型輸入的以字節為單位的內存長度會按順序填入該容器,傳入nullptr則表示不獲取該屬性。
? 返回值
狀態碼。
GetOutputsInfo
Status GetOutputsInfo(std::vectorstd::string *names, std::vector<std::vector<int64_t>> *shapes, std::vector *data_types, std::vector<size_t> *mem_sizes) const;
獲取模型輸出信息。
? 參數
o names: 可選輸出參數,模型輸出按順序排列的vector的指針,模型輸出的name會按順序填入該容器,傳入nullptr則表示不獲取該屬性。
o shapes: 可選輸出參數,模型輸出按順序排列的vector的指針,模型輸出的shape會按順序填入該容器,傳入nullptr則表示不獲取該屬性。
o data_types: 可選輸出參數,模型輸出按順序排列的vector的指針,模型輸出的數據類型會按順序填入該容器,傳入nullptr則表示不獲取該屬性。
o mem_sizes: 可選輸出參數,模型輸出按順序排列的vector的指針,模型輸出的以字節為單位的內存長度會按順序填入該容器,傳入nullptr則表示不獲取該屬性。
? 返回值
狀態碼。
Tensor
#include <types.h>
構造函數和析構函數
Tensor();
Tensor(const std::string &name, DataType type, const std::vector<int64_t> &shape, const void *data, size_t data_len);
~Tensor();
靜態公有成員函數
GetTypeSize
static int GetTypeSize(api::DataType type);
獲取數據類型的內存長度,以字節為單位。
? 參數
o type: 數據類型。
? 返回值
內存長度,單位是字節。
公有成員函數
Name
const std::string &Name() const;
獲取Tensor的名字。
? 返回值
Tensor的名字。
DataType
api::DataType DataType() const;
獲取Tensor的數據類型。
? 返回值
Tensor的數據類型。
Shape
const std::vector<int64_t> &Shape() const;
獲取Tensor的Shape。
? 返回值
Tensor的Shape。
SetName
void SetName(const std::string &name);
設置Tensor的名字。
? 參數
o name: 將要設置的name。
SetDataType
void SetDataType(api::DataType type);
設置Tensor的數據類型。
? 參數
o type: 將要設置的type。
SetShape
void SetShape(const std::vector<int64_t> &shape);
設置Tensor的Shape。
? 參數
o shape: 將要設置的shape。
Data
const void *Data() const;
獲取Tensor中的數據的const指針。
? 返回值
指向Tensor中的數據的const指針。
MutableData
void *MutableData();
獲取Tensor中的數據的指針。
? 返回值
指向Tensor中的數據的指針。
DataSize
size_t DataSize() const;
獲取Tensor中的數據的以字節為單位的內存長度。
? 返回值
Tensor中的數據的以字節為單位的內存長度。
ResizeData
bool ResizeData(size_t data_len);
重新調整Tensor的內存大小。
? 參數
o data_len: 調整后的內存字節數。
? 返回值
bool值表示是否成功。
SetData
bool SetData(const void *data, size_t data_len);
重新調整Tensor的內存數據。
? 參數
o data: 源數據內存地址。
o data_len: 源數據內存長度。
? 返回值
bool值表示是否成功。
ElementNum
int64_t ElementNum() const;
獲取Tensor中元素的個數。
? 返回值
Tensor中的元素個數
Clone
Tensor Clone() const;
拷貝一份自身的副本。
? 返回值
深拷貝的副本。
總結
以上是生活随笔為你收集整理的MindSpore接口mindspore::api的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MindSpore应用目标
- 下一篇: MindSpore数据集mindspor