【MindSpore Dataset】如何将自有数据高效的生成MindRecord格式数据集,并且防止爆内存。

用户可以将自有数据转换成MindRecord数据集,然后使用MindDataset类进行加载并进一步进行预处理操作。

1. 生成MindRecord示例

  1. 生成图像类数据集 参考链接:转换CV类数据集

  2. 生成文本类数据集 参考链接:转换NLP类数据集

2. 多进程并发生成MindRecord示例

参考代码见附件

3. 生成MindRecord过程中可能遇到的问题

  1. 数据集太大,FileWriter.commit()的时候爆内存该怎么解决

答:可以组织一批数据之后,就调用 .write_raw_data(data_list)接口写入,再组织一批数据,再调用.write_raw_data(data_list2),…,最后再调用.commit()完成。即:组织数据 → write_raw_data(…) → 组织数据 → write_raw_data(…) → … → commit(),具体参考链接:https://bbs.huaweicloud.com/forum/thread-145713-1-1.html 中示例。