1. 系统环境
硬件环境(Ascend/GPU/CPU): Ascend 910
MindSpore版本: mindspore=2.2.10
执行模式(PyNative/ Graph):Graph
Python版本: Python=3.8.15
操作系统平台: MTP
2. 报错信息
File "make mindrecord v11. pv",line 404, in Kmodule>
results = pool. map(map_func, whole_file_path)
File */home/ma-
user/anaconda3/envs/1indSpor e/1ib/python3. 7/multiprocessing/pool. py*, line268, in map
return self. _map_async (func, iterable, mapstakr, chunksize). get()
File */home/ma-
user/anaconda3/envs/Mindspor e/lib/python3. 7/multiprocessing/pool. py", line657, in get
raise self._value
RuntimeError: Unexpectederror. [Internal ERROR.Failed to write mindrecord meta files.
3. 根因分析
根据报错信息,找到报错的代码行,发现使用pool进程池操作,需要检查数据量是否大于pool池数
根因:多个进程不能写同一个mindrecord文件;或多进程处理的数据不能是空。
4. 解决方案
多进程中分别使用的数据集改成大小不同的数据集后,未发生此问题。
或单数据集时,不使用pool操作。