dataflow.TimeBatch【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge产品支持情况产品是否支持Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√函数功能TimeBatch功能是基于UDF为前提的。正常模型每次处理一个数据当需要一次处理一批数据时就需要将这批数据组成一个batch。最基本的batch方式是将这批N个数据直接拼接然后shape前加N而某些场景需要将某段或者某几段时间数据组成一个batch并且按特定的维度拼接则可以通过使用TimeBatch功能来组batch。在ASR(Automatic Speech Recognition)自动语音识别场景下存在按定长时间段组batch或按时间分段时间不连续组整批batch两种诉求可以通过TimeBatch实现。函数原型TimeBatch(time_window0, batch_dim0, drop_remainderFalse)参数说明参数名称数据类型取值说明time_windowint64_t整型(单位ms)当值0时表示按该时间窗来组batch当值为-1时表示按时间分段来组batch其它值报错。batch_dimint64_t只有设置了time_window时该参数才生效。取值范围[-1,shape维度]。- 默认为-1表示数据输出shape会在第0维添加一个batch维。- shape维度batch_dim0时表示按某个维度组batch。- batch_dimshape维度或者-1时报错。drop_remainderBool只有设置了time_window时该参数才生效。仅在time_window0时生效选择不足time_window时是否丢弃默认false不丢弃。true则丢弃。举例如下假如time_window5ms输入数据时长为3ms则- drop_remainder不配置或者配置为false时不丢弃输入数据。- drop_remainder配置为true时如果输入数据未携带EOS或者SEG会一直等待不丢弃数据。如果输入数据只携带了SEG则丢弃数据。如果输入数据携带了EOS标记则丢弃输入数据只传递EOS标记。- 如果输入数据未携带EOS或者SEG会一直等待不丢弃数据。- 如果输入数据只携带了SEG则丢弃数据。- 如果输入数据携带了EOS标记则丢弃输入数据只传递EOS标记。返回值正常场景下返回None。返回“TypeError”表示参数类型不正确。调用示例import dataflow as df # 按需设置time_batch中的各个属性值 time_batch df.TimeBatch() time_batch.time_window 5 time_batch.batch_dim 0 # 通过FlowNode的map_input接口使用 df.FlowNode(...).map_input(..., [time_batch])约束说明当前Batch特性无法做负荷分担因此如果使用2P环境需要在ge初始化时添加{ge.exec.logicalDeviceClusterDeployMode, SINGLE}, {ge.exec.logicalDeviceId, [0:0]}。其中logicalDeviceId可以是[0:0]也可以是[0:1]。logicalDeviceId解释如下。logical_device_cluster_deploy_mode为SINGLE时用于指定模型部署在某个指定的设备上。配置格式[node_id:device_id]node_id昇腾AI处理器逻辑ID从0开始表示资源配置文件中第几个设备。device_id昇腾AI处理器物理ID。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考