昇思MindSpore学习入门-数据处理管道支持python对象

数据处理管道中的特定操作(如自定义数据集GeneratorDataset、自定义map增强操作、自定义batch(per_batch_map=...))支持任意Python类型对象作为输入。为了支持此特性,数据管道使用了Python(dict)字典去管理不同类型的对象。与其他类型相比,Python字典类型在数据管道中不会被转换成C++中的类型,而是以引用的形式保留在数据管道中。

注意,虽然目前数据管道只新增了识别字典类型的对象,但并不限制字典中的对象内容,因此也可以将其他Python类型封装进字典中并传入到数据处理管道中,以达到支持任意Python对象的目的。因此此教程主要介绍如何构造字典类型的数据输入到数据管道,并在迭代器中取得数据。

构造Python字典到数据处理管道

将字典输入到数据处理管道中可在以下几个操作中实现:

  1. 自定义数据集GeneratorDataset,用户将组织好的字典以返回值的形式输入到数据处理管道中;
  2. 自定义map增强操作,用户可以定义Python可调用对象,在该对象中返回字典数据;
  3. 自定义batch(per_batch_map=...)操作,用户在batch操作的per_batch_map中处理并返回字典数据。

自定义数据集GeneratorDataset处理字典对象

下面这个例子展示了如何通过GeneratorDataset将字典对象传送到数据处理管道。

示例中的my_generator返回了2个元素,分别对应2个数据列,其中字典被视为其中一列,即col1。特别的,数据处理管道的规则一般会检查返回值是否可以被转换为NumPy类型,但若返回值为字典则会例外,且字典中存储的元素没有限制(包括键/值的数量和的类型)。

自定义map增强操作处理字典对象

与GeneratorDataset相同,每个字典对象被看作一个数据列,且其中的元素没有限制。

这个例子说明如何通过map操作和自定义Python方法,将字典类型加入到数据处理管道中:

batch操作处理字典对象

当对数据集使用batch操作时,如果有一个数据列中包含有字典对象,数据处理管道会将多组样本中的字典的相同键组合在一起。因此对数据进行batch操作前,确保所有的字典对象都必须具有相同的键。

batch操作的结果(对于该列)也将是一个字典,其中所有值都是NumPy数组。如果这种转换产生了np.object_类型的数组,由于模型训练侧的限制,将向用户显示一条错误消息并且终止数据处理管道。

下面展示了当数据管道中存在Python字典时,batch操作是如何把字典中"power"键的元素组合起来的。

如果用户提供了per_batch_map函数,字典中的对应元素将根据键分组到Python列表中。这个例子说明如何通过batch操作和per_batch_map方法,将字典类型加入到数据处理管道中:

从数据处理管道中获取Python字典

直接迭代数据集对象即可获得字典类型的数据。当使用迭代器获取数据时,数据处理管道会尝试将字典对象中的所有值转成Tensor类型(如果output_numpy设置为True,则将转为NumPy类型)。

注意,上述类型转换操作是递归进行的,即应用于嵌套字典内的所有值以及列表和元组内的所有元素。无法被转成NumPy数组/Tensor类型的对象(例如类对象)会被直接传入到模型,若模型无法处理该对象类型将会报错。

下面的例子展示了通过迭代器获取字典数据或其他数据。

在模型训练/推理场景,从数据管道获取字典类型数据时有以下注意事项。

  • 数据下沉模式下,由于数据下沉通道当前无法支持字典类型的数据,字典类型的数据发送到下沉通道会造成错误。因此可以考虑关闭数据下沉模式(dataset_sink_mode=False),或在最后一个数据处理节点将字典类型的数据展开为列表或元组类型的数据,例如:
相关推荐
Georgeviewer3 分钟前
商业落地评测|实体门店GEO优化性价比与服务体系深度复盘
大数据·人工智能
GuWenyue32 分钟前
分不清AI Workflow与Agent?3个实战案例彻底讲透,做AI应用不再踩选型坑
人工智能
彩讯股份3006341 小时前
彩讯股份与心洲科技签署战略合作协议,共建企业级模型后训练能力
人工智能·科技
Scott9999HH1 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
迅易科技2 小时前
从场景验证到Agent上线:迅易 × WorkBuddy如何帮助企业建设AI能力?
人工智能·ai·腾讯云
PNP Robotics2 小时前
多伦多大学机器人峰会|物理AI与具身智能落地新趋势
人工智能·深度学习·机器学习·机器人
GIR1232 小时前
官方出品 | 多通道土壤呼吸测量系统市场现状与十五五规划深度报告:行业分析+趋势预测全收录
大数据·人工智能·机器学习
绿算技术2 小时前
绿算技术亮相第十八届HPC AI中国年会,擘画AI基础设施全栈协同新图景
人工智能
Litluecat2 小时前
2026年7月22日科技热点新闻
人工智能·科技·新闻·每日·速览
To_OC2 小时前
别再傻傻分不清:Workflow 和 Agent 到底不是一回事
人工智能·agent·workflow