问题描述:
电脑是win10 64bit,cpu运行,MindSpore版本1.5.0,python版本3.9。运行的是文档中数据集加载中,数据集转换的代码:
from io import BytesIO
import os
import mindspore.dataset as ds
from mindspore.mindrecord import FileWriter
import mindspore.dataset.vision.c_transforms as vision
from PIL import Image
MINDRECORD_FILE = "test.mindrecord"
if os.path.exists(MINDRECORD_FILE):
os.remove(MINDRECORD_FILE)
os.remove(MINDRECORD_FILE + ".db")
writer = FileWriter(file_name=MINDRECORD_FILE, shard_num=1)
cv_schema = {"file_name": {"type": "string"}, "label": {"type": "int32"}, "data": {"type": "bytes"}}
writer.add_schema(cv_schema, "it is a cv dataset")
writer.add_index(["file_name", "label"])
data = []
for i in range(100):
i += 1
sample = {}
white_io = BytesIO()
Image.new('RGB', (i*10, i*10), (255, 255, 255)).save(white_io, 'JPEG')
image_bytes = white_io.getvalue()
sample['file_name'] = str(i) + ".jpg"
sample['label'] = i
sample['data'] = white_io.getvalue()
data.append(sample)
if i % 10 == 0:
writer.write_raw_data(data)
data = []
if data:
writer.write_raw_data(data)
writer.commit()
最后一步writer.commit()出错,错误代码:
Traceback (most recent call last):
File "D:\。。。\GenerateTest.py", line 47, in <module>
writer.commit()
File "C:\Users\zhuyue\AppData\Local\Programs\Python\Python39\lib\site-packages\mindspore\mindrecord\filewriter.py", line 391, in commit
self._generator.build()
File "C:\Users\zhuyue\AppData\Local\Programs\Python\Python39\lib\site-packages\mindspore\mindrecord\shardindexgenerator.py", line 54, in build
ret = self._generator.build()
RuntimeError: Unexpected error. Failed to open file, file path: D:\。。。\test.mindrecord
Line of code : 66
File : D:\mindspore\mindspore\ccsrc\minddata\mindrecord\meta\shard_header.cc
Process finished with exit code 1
解答:
1. windows平台上,目前还不支持 MINDRECORD_FILE = "test.mindrecord" 放在中文路径下。
即: 这个路径中不能有中文。