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。

  • 参数
  • device_target: 将要配置的目标Device,可选有kDeviceTypeAscend310、kDeviceTypeAscend910。
  • 返回值

该MindSpore Context实例对象。

SetDeviceID

Context &SetDeviceID(uint32_t device_id);

获取当前Device ID。

  • 参数
  • device_id: 将要配置的Device ID。
  • 返回值

该MindSpore Context实例对象。

Serialization

#include <serialization.h>

Serialization类汇总了模型文件读写的方法。

静态公有成员函数

LoadModel

  • 参数
  • file: 模型文件路径。
  • 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上运行的状态。

  • 参数
  • 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<Buffer> &inputs, std::vector<Buffer> *outputs);

推理模型。

  • 参数
  • inputs: 模型输入按顺序排列的vector。
  • outputs: 输出参数,按顺序排列的vector的指针,模型输出会按顺序填入该容器。
  • 返回值

状态码。

GetInputsInfo

Status GetInputsInfo(std::vector<std::string> *names, std::vector<std::vector<int64_t>> *shapes, std::vector<DataType> *data_types, std::vector<size_t> *mem_sizes) const;

获取模型输入信息。

  • 参数
  • names: 可选输出参数,模型输入按顺序排列的vector的指针,模型输入的name会按顺序填入该容器,传入nullptr则表示不获取该属性。
  • shapes: 可选输出参数,模型输入按顺序排列的vector的指针,模型输入的shape会按顺序填入该容器,传入nullptr则表示不获取该属性。
  • data_types: 可选输出参数,模型输入按顺序排列的vector的指针,模型输入的数据类型会按顺序填入该容器,传入nullptr则表示不获取该属性。
  • mem_sizes: 可选输出参数,模型输入按顺序排列的vector的指针,模型输入的以字节为单位的内存长度会按顺序填入该容器,传入nullptr则表示不获取该属性。
  • 返回值

状态码。

GetOutputsInfo

Status GetOutputsInfo(std::vector<std::string> *names, std::vector<std::vector<int64_t>> *shapes, std::vector<DataType> *data_types, std::vector<size_t> *mem_sizes) const;

获取模型输出信息。

  • 参数
  • names: 可选输出参数,模型输出按顺序排列的vector的指针,模型输出的name会按顺序填入该容器,传入nullptr则表示不获取该属性。
  • shapes: 可选输出参数,模型输出按顺序排列的vector的指针,模型输出的shape会按顺序填入该容器,传入nullptr则表示不获取该属性。
  • data_types: 可选输出参数,模型输出按顺序排列的vector的指针,模型输出的数据类型会按顺序填入该容器,传入nullptr则表示不获取该属性。
  • 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);

获取数据类型的内存长度,以字节为单位。

  • 参数
  • 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的名字。

  • 参数
  • name: 将要设置的name。

SetDataType

void SetDataType(api::DataType type);

设置Tensor的数据类型。

  • 参数
  • type: 将要设置的type。

SetShape

void SetShape(const std::vector<int64_t> &shape);

设置Tensor的Shape。

  • 参数
  • 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的内存大小。

  • 参数
  • data_len: 调整后的内存字节数。
  • 返回值

bool值表示是否成功。

SetData

bool SetData(const void *data, size_t data_len);

重新调整Tensor的内存数据。

  • 参数
  • data: 源数据内存地址。
  • data_len: 源数据内存长度。
  • 返回值

bool值表示是否成功。

ElementNum

int64_t ElementNum() const;

获取Tensor中元素的个数。

  • 返回值

Tensor中的元素个数

Clone

Tensor Clone() const;

拷贝一份自身的副本。

  • 返回值

深拷贝的副本。

MindSpore接口mindspore::api的更多相关文章

  1. effective OC2.0 52阅读笔记(三 接口与API设计)

    第三章:接口与API设计 15 用前缀避免命名空间冲突 总结:避免重名符号错误的唯一办法是变相实现命名空间.为所有符号都加上命名前缀.类和分类都应加三字前缀.注意类实现文件中的纯C函数及全局变量,是算 ...

  2. 转载-- http接口、api接口、RPC接口、RMI、webservice、Restful等概念

     http接口.api接口.RPC接口.RMI.webservice.Restful等概念 收藏 Linux一叶 https://my.oschina.net/heavenly/blog/499661 ...

  3. 【转】基于laravel制作APP接口(API)

    这篇文章主要介绍了基于laravel制作APP接口(API)的相关资料,需要的朋友可以参考下 前期准备 前言,为什么做以及要做个啥本人姓小名白,不折不扣编程届小白一名,但是自从大一那会儿接触到编程这件 ...

  4. 开放接口/RESTful/Api服务的设计和安全方案

    总体思路 这个涉及到两个方面问题:一个是接口访问认证问题,主要解决谁可以使用接口(用户登录验证.来路验证)一个是数据数据传输安全,主要解决接口数据被监听(HTTPS安全传输.敏感内容加密.数字签名) ...

  5. Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结  mysql

    Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结  mysql 1. 图16.1:MySQL体系结构1 2. 16.7. 创建表create()虚拟函数:2 3. 16.8 ...

  6. Linux系统调用及用户编程接口(API)

    系统调用 所谓系统调用是指操作系统提供给用户程序调用的一组"特殊"接口,用户程序能够通过这组"特殊"接口来获得操作系统内核提供的服务.比如用户能够通过进程控制相 ...

  7. 第3章 接口与API设计 52条笔记

    第3章 接口与API设计 52条笔记 第15条: 用前缀避免命名空间冲突 Objective-C 没有其他语言那种内置的命名空间机制 .鉴于此,我们在起名时要设法避免潜在的命名冲突,否则很容易就重名了 ...

  8. Python Flask 实现移动端应用接口(API)

    引言 目前,Web 应用已形成一种趋势:业务逻辑被越来越多地移到客户端,逐渐完善为一种称为富互联网应用(RIA,rich Internet application)的架构.在 RIA 中,服务器的主要 ...

  9. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_16-认证接口开发-Api接口定义

    4.3 认证服务 4.3.1 需求分析 认证服务需要实现的功能如下: 1.登录接口 前端post提交账号.密码等,用户身份校验通过,生成令牌,并将令牌存储到redis. 将令牌写入cookie. 2. ...

随机推荐

  1. pyqt5 菜单栏+信息提示框

    前言 使用pyqt5 添加菜单栏 单击菜单栏 弹出信息框(MessageBox用法) 菜单栏 功能 Action是Qt中单独引入的一个对象,对应QAction类.Action表示一个独立的操作,是将界 ...

  2. Xposed学习一:初探

    学习Xposed框架,在github:https://github.com/rovo89 下载XposedInstaller安装到手机上来管理Xposed的模块. 本文记录根据官方文档(资料1)在an ...

  3. 仁者见仁:缓冲区栈溢出之利用 Exploit 形成完整攻击链完全攻略(含有 PayLoad)

    > 前言 内存缓冲区溢出又名 Buffer OverFlow,是一种非常危险的漏洞,在各种操作系统和应用软件中广泛存在.利用缓冲区溢出进行的攻击,小则导致程序运行失败.系统宕机等后果,大则可以取 ...

  4. WindowsPE 第七章 资源表

    资源表 在程序设计中,总会设计一些数据.这些数据可能是源代码内部需要用到的常量,菜单选项.界面描述等:也可能是源代码外部的,比如程序的图标文件.北京音乐文件.配置文件等,以上这些数据统称为资源.按照程 ...

  5. WinDbg 配置联机调试环境搭建

    接下来设置虚拟机启动模式,可以直接设置现在的虚拟机启动项为debug模式 或者直接新建一个启动项目 bcdedit /dbgsettings {serial [baudrate:value][debu ...

  6. Spring的配置文件 (SSM maven项目)

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. Linux x86_64与i386区别之 —— 内存寻址

    毫无疑问,不管是32位,还是64位处理器,所有进程(执行的程序)都必须占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是 存放取自用户输入的数据等等.不过进程对这些内存的管理方式因内存用途不 ...

  8. MSSQL·查看数据库编码格式

    阅文时长 | 0.67分钟 字数统计 | 837.6字符 主要内容 | 1.引言&背景 2.声明与参考资料 『MSSQL·查看数据库编码格式』 编写人 | SCscHero 编写时间 | 20 ...

  9. Python运算符 - Python零基础入门教程

    目录 一.算术运算符 二.赋值运算符 三.比较运算符 四.运算符的优先等级 五.重点总结 六.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python ...

  10. 【转载】在python的class中的,self到底是什么?

    在python的class中的,self到底是什么?   答案:self可以理解为一个字典变量,内部存的就是对象的数据属性.如:{'name':'zhang','age':'18'}就是这些. 注意只 ...