- 预审中
- 预审通过
- 3 未采纳
【产品缺陷】生成mindrecord文件只能选择int64类型,不能int32 未采纳 编辑 删除
- AI开发平台ModelArts
- EI基础平台
问题描述:
我生成mindrecord文件,按这样shema:
data_schema = {
"target_sos_ids": {"type": "int32", "shape": [-1]},
"target_sos_mask": {"type": "int32", "shape": [-1]},
}
期望读出来的格式(batch_size=4, 共写入文件64samples):
xids=[[50256 52 13 50]
[50256 26932 3524 290]
[50256 464 9317 6241]
[50256 2396 11 7062]]
xmask=[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
ds.get_dataset_size=16
ds.output_shapes=[[4, 4],[4, 4]]
实际云上读出来的格式:
xids=[[50256 0 52 0 13 0 50 0]
[50256 0 26932 0 3524 0 290 0]
[50256 0 464 0 9317 0 6241 0]
[50256 0 2396 0 11 0 7062 0]]
xmask=[[1 0 1 0 1 0 1 0]
[1 0 1 0 1 0 1 0]
[1 0 1 0 1 0 1 0]
[1 0 1 0 1 0 1 0]]
ds.get_dataset_size=16
ds.output_shapes=[[4, 8],[4, 8]]
猜测是否生成文件是int32,读取的时候没做 cast int32
测试发现不是没有cast int32的原因,cast后结果还是一样,每个数后面都插入了0,这就又很疑惑了,到底什么原因导致
最后生成文件的时候定义格式改为{"type": "int64", "shape": [4]}, 原来是{"type": "int32", "shape": [-1]}
读取的时候再转为int32,终于ok了,问题解决
另外:
举个例子,我的text样本文件是13M大小,5000个样本,按int32生成mindrecord是49M,按int64生成是100M,另外如果我只选择生成64个样本,出来的文件还是100M,没变,这就非常奇怪了。而对应生成64个样本的TFrecord大小是45k
建议方案:
生成文件数据类型选择可以选int32,或者int16,这样空间占用就小很多,目前int类型只能选int64,否则会出错
生成文件大小按实际生成样本数量增长,不能按全部样本来定义
3088 2
0/1000
仅支持JPG、JPEG、PNG、GIF,数量不超过4张且每张大小不超过2MB
删除建议
全部评论(2)
评论(2)
您好,关于您提交的建议产品和研发团队进行了评估,为了能更准确的定位反馈内容,请再次提供一下对应的详细描述,方便时尽量附带截图,以便我们尽快核实并推动解决,感谢您对华为云的支持!
非常感谢您的反馈,您的建议我们已经收到,并已提交至相关产品团队进行核查评估,评估完成后对于建议是否采纳会尽快给您答复,也请您持续关注云声平台,了解建议进一步处理进展,感谢您对华为云的支持!