UDF接口列表
本文档主要描述UDF(User Defined Function)模块对外提供的接口,用户可以调用这些接口进行自定义处理函数的开发,然后通过DataFlow构图在CPU上执行该处理函数。
您可以在CANN软件安装后文件存储路径下的“python/site-packages/dataflow/flow_func/flow_func.py”查看对应接口的实现。接口列表如下。
FlowMsg类
用于处理FlowFunc输入输出的相关操作。
接口名称 |
简介 |
|---|---|
FlowMsg的构造函数。 |
|
获取FlowMsg的消息类型。 |
|
获取FlowMsg中的tensor对象。 |
|
设置FlowMsg消息中的错误码。 |
|
获取输入FlowMsg消息中的错误码。 |
|
设置FlowMsg消息头中的开始时间戳。 |
|
获取FlowMsg消息中的开始时间戳。 |
|
设置FlowMsg消息头中的结束时间戳。 |
|
获取FlowMsg消息中的结束时间戳。 |
|
设置FlowMsg消息头中的flags。 |
|
获取FlowMsg消息头中的flags。 |
|
设置路由的标签。 |
|
获取FlowMsg消息中的事务ID,事务Id从1开始计数,每feed一批数据,事务Id会加一,可用于识别哪一批数据。 |
|
设置FlowMsg的消息类型。 |
|
获取rawdata类型的数据。 |
|
设置DataFlow数据传输使用的事务ID。 |
Tensor类
用于执行Tensor的相关操作。这里获取的Tensor是dataflow.Tensor。
接口名称 |
简介 |
|---|---|
Tensor构造函数。 |
|
获取Tensor的Shape。 |
|
获取Tensor中的数据类型。 |
|
获取Tensor中的数据大小。 |
|
获取Tensor中的元素的个数。 |
|
对tensor进行Reshape操作,不改变tensor的内容。 |
MetaParams类
使用该类获取共享的变量信息。
接口名称 |
简介 |
|---|---|
PyMetaParams构造函数。 |
|
获取Flowfunc的实例名。 |
|
获取指定名称的int类型属性值。 |
|
获取指定名称的bool数组类型属性值。 |
|
获取指定名称的int数组类型属性值。 |
|
获取指定名称的int二维数组类型属性值。 |
|
获取指定名称的bool类型属性值。 |
|
获取指定名称的float数组类型属性值。 |
|
获取指定名称的numpy dtype类型的属性值。 |
|
获取指定名称的numpy dtype数组类型的属性值。 |
|
获取指定名称的string类型的属性值。 |
|
获取指定名称的string数组类型的属性值。 |
|
获取指定名称的float类型属性值。 |
|
获取Flowfunc的输入个数。 |
|
获取Flowfunc的输出个数。 |
|
获取Flowfunc的工作路径。 |
|
获取正在运行的设备ID。 |
MetaRunContext类
用于FlowFunc处理函数的上下文信息相关处理,如申请Tensor、设置输出、运行FlowModel等操作。
接口名称 |
简介 |
|---|---|
MetaRunContext构造函数。 |
|
根据shape、data type以及对齐大小申请tensor类型的FlowMsg。 |
|
设置指定index的output的tensor。 |
|
批量设置指定index的output的tensor。 |
|
同步执行指定的模型。 |
|
申请空数据的MsgType类型的message。 |
|
获取用户定义数据。 |
|
UDF主动上报异常。 |
|
UDF获取其他UDF节点上报的异常。 |
|
根据输入的size申请一块连续内存,用于承载raw data类型的FlowMsg。 |
|
将dataflow Tensor转换成FlowMsg。 |
AffinityPolicy类
接口名称 |
简介 |
|---|---|
亲和策略枚举定义。 |
BalanceConfig类
当需要均衡分发时,需要设置输出数据标识和权重矩阵相关配置信息,根据配置调度模块可以完成多实例之间的均衡分发。
接口名称 |
简介 |
|---|---|
BalanceConfig构造函数。 |
|
设置输出数据对应权重矩阵中的位置。 |
|
获取内部配置对象,被set_output或者set_multi_outputs调用。 |
FlowMsgQueue类
流式输入场景下(即flow func函数入参为队列时),用于flow func的输入队列,队列中的FlowMsg出队后会根据MsgType转换为对应的数据类型返回给用户。
接口名称 |
简介 |
|---|---|
FlowMsgQueue构造函数和析构函数。 |
|
获取队列中的元素。 |
|
无等待地获取队列中的元素,功能等同于get(block=False)。 |
|
判断队列是否满。 |
|
判断队列是否为空。 |
|
获取队列中当前元素的个数。 |
UDF日志接口
UDF Python开放了日志记录接口,使用时导入flow_func模块。使用其中定义的logger对象,调用logger对象封装的不同级别的日志接口。
接口名称 |
简介 |
|---|---|
FlowFuncLogger构造函数。 |
|
获取日志扩展头信息。 |
|
查询对应级别和类型的日志是否开启。 |
|
运行日志Error级别日志宏。 |
|
运行日志Info级别日志宏。 |
|
调试日志Error级别日志宏。 |
|
调试日志Warn级别日志宏。 |
|
调试日志Info级别日志宏。 |
|
调试日志Debug级别日志宏。 |