介:

API文档是一个工具的使用说明书,所以想要学习一个工具就需要熟悉它的API,那么学习的难易程度会受到API文档的影响,本篇内容就和大家一起学习研究下MindSpore的API。

API怎么理解?

每个工具的官网都会投入很大精力来建设它的API部分,那么API是什么、有什么用呢?如果在网上直接搜索寻找答案,会得到如下比较专业的解释:API(Application Programming Interface,应用程序编程接口)API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。提供API所定义的功能的软件称作此API的实现。API是一种接口,故而是一种抽象。

上面的解释专业但是笼统。结合到我们实际的应用:工具包可以想象成是某个服务大厅,每个API是一个窗口,不同的窗口能够办理不同的业务。我们只需根据需求走到对应窗口,提供姓名、身份证号给窗口,就能得到反馈。

就是上述这样一个简单地逻辑,搞清楚了API、工具包和用户的关系。那么如果想要使用MindSpore,就需要先从它的API开始。

MindSpore的API结构

在MindSpore官网的文档页面中,按照顺序API模块排在第三个,前面的设计和语法支持是MindSpore的灵魂,在设计模块中包括了整体结构的设计和独有的关键特性,参考模块中是MindSpore的基准性能和对网络、算子和语法的支持情况,非常建议大家能够仔细浏览下。

Alpha架构应用行业 api架构_深度学习

虽然文档页面中有六个模块,但是内容占比最多的还是API模块,这是继设计和参考后的实际应用。API中内容很多,也很难都完全的记住,所以熟悉它的结构就能很快的查找到需要的借口,下面就分析下API的结构。

API的结构顺序和模型训练的顺序也是对应的,这里再根据训练的顺序重新分类别。

参数初始化:

  • mindspore、mindspore.common.initializer这两个模块中提供了模型训练前的初始化设置接口,包括有数据类型、随机种子和运行环境等硬件参数,还有神经元参数的初始化。
  • mindspore.communication:该模块是集合通信接口,用于分布式训练的设置中,支持Ascend和GPU硬件环境上使用,暂不支持CPU使用。

数据处理:

  • mindspore.dataset:该模块提供了加载和处理各种公共数据集的API,如MNIST、CIFAR-10、COCO、ImageNet、CLUE等, 同时支持加载业界标准格式的数据集,包括MindRecord、TFRecord、Manifest等。此外,用户还可以使用此模块定义和加载自己的数据集。
  • mindspore.dataset.audio、mindspore.dataset.text、mindspore.dataset.vision:这三个模块分别是音频、文本和图像数据处理模块,主要包括数据的增强和预处理的方法。
  • mindspore.dataset.config:该模块中用于设置或者获取数据处理的配置参数。
  • mindspore.dataset.transforms:数据增强模块,适用于各种类型数据。
  • mindspore.mindrecord:MindRecord是MindSpore开发的一种高效数据格式,该模块帮助用户将不同数据集转换为MindRecord格式。还可以通过相应的子模块将其他格式数据集转换为MindRecord格式数据集。

网络构建:

  • mindspore.nn、mindspore.nn.probability:这两个模块中提供了用于构建神经网络中的预定义构建块或计算单元,以及一些构造概率网络的高级组件。
  • mindspore.numpy:这是接入的NumPy计算包,可以使用类NumPy语法进行模型构建,可用于Array生成、Array操作、逻辑运算和数学运算。

mindspore.ops、mindspore.ops.functional:这两个模块开放给用户的最低阶算子接口,一个Primitive算子对应一个原语,它封装了底层的Ascend、GPU、AICPU、CPU等多种算子的具体实现。

调试调优:

mindspore.rewrite、mindspore.scipy、mindspore.boost:这三个模块实现了对节点的查看、对数据的计算和求解以及对网络的加速方法。

API的查询

想要记住每一个接口的使用方法难度很大,所以我们得有快速的API查询方法。这里有两种方法。

  • 官网查询:这里有最准确详细的使用介绍:MindSpore 文档 — MindSpore master documentation
  • 窗口查询:输入python -m pydoc -p 4567

Alpha架构应用行业 api架构_API_02

这里会自动跳转并打开网页,这里可以查询到我们所有安装的包,也可以并查看每个包详细的API。以下是MindSpore的查询页面。

Alpha架构应用行业 api架构_神经网络_03

总结

本篇内容分析了MindSpore-API的结构,熟悉了结构更便于使用和查找,然后是常见的使用问题和解答。希望能够帮助大家更好的使用MindSpore。也欢迎大家多多反馈意见和建议,帮助建设MindSpore。

谢谢大家浏览,欢迎留言讨论~