mindspore自定义数据集加载数据时如何实现类似pytorch中collate_fn的功能

pytorch的collate_fn函数在把 Map-style dataset 取出的数据整合成 batch 时使用,合并样本列表以形成一个 batch,现在我想在mindspore加载数据时实现类似的功能,该怎么实现呢。

1. mindspore的数据处理流程你可以理解为像如下的流程:

mindspore自定义数据集加载数据时如何实现类似pytorch中collate_fn的功能_第1张图片

加载:指从各种异构存储中将训练数据加载到内存中,加载时涉及数据的访问、解析等处理;

map:完成训练数据的处理,包括图像类数据增强、Text类分词等处理。其中,数据增强是一种创造有着不同方向的“新”数据的方法,一是从有限数据中生成“更多数据”,二是防止过拟合。

batch:训练时一般都是使用mini-batch的方式,即一个批次训练少量数据;batch算子负责构造一个批次的数据发送给训练;

2. 你可以参考如下脚本,里面丰富的用户自定义数据处理流程,最后会加一个batch算子:official/cv/yolov5/src/yolo_dataset.py · MindSpore/models - 码云 - 开源中国 (gitee.com) : create_yolo_dataset

mindspore自定义数据集加载数据时如何实现类似pytorch中collate_fn的功能_第2张图片

你可能感兴趣的:(pytorch,深度学习,人工智能)