mindformers使用mindrecord数据集格式,是否可以不进行shuffle,数据集的columns是否可以支持attention_mask和eod

问题描述:

mindformers 1.3.0版本,参考文档制作mincreocord格式数据集进行训练

https://www.mindspore.cn/mindformers/docs/zh-CN/r1.3.0/function/dataset.html

看文档介绍感觉columns只能支持input_ids和lables,但是目前客户希望支持attention_mask和eod,需要确认mindrecord是否支持以及如何支持

解决方法:

mindrecord 只是一个容器,里面存放内容不限。

通过自定义schema就可以创建任何类型的数据集。

定义schema后add_schema就可以了。

如下样例。add_index是为了加速数据读取的。

from mindspore.mindrecord import FileWriter

writer = FileWriter(file_name="test.mindrecord", shard_num=1, overwrite=True)
schema_json = {"file_name": {"type": "string"}, "label": {"type": "int32"}, "data": {"type": "bytes"}}
writer.add_schema(schema_json, "test_schema")
indexes = ["file_name", "label"]
writer.add_index(indexes)
for i in range(10):
    data = [{"file_name": str(i) + ".jpg", "label": i,
             "data": b"\x10c\xb3w\xa8\xee$o&<q\x8c\x8e(\xa2\x90\x90\x96\xbc\xb1\x1e\xd4QER\x13?\xff"}]
    writer.write_raw_data(data)
writer.commit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值