mindspore报错:[ERROR] GeneratorNode: data row of input source must not be 0, got: 0.
收藏回复举报
mindspore报错:[ERROR] GeneratorNode: data row of input source must not be 0, got: 0.
t('forum.solved') 已解决
发表于2024-04-20 14:20:31
0 查看

使用的是自定义数据集

操作系统是win10,CPU训练,mindspore版本号2.2.10,python版本是3.9.13

####################################################################################################################

报错内容:

[ERROR] MD(,3934,?):2024-4-20 10:13:39 [mindspore\ccsrc\minddata\dataset\engine\ir\datasetops\source\generator_node.cc:113] mindspore::dataset::GeneratorNode::ValidateParams] GeneratorNode: data row of input source must not be 0, got: 0Traceback (most recent call last): 

  File "e:\design\design.py", line 202, in <module> 

    model.train(batch_size,train_dataset) 

  File "C:\Users\Dell\AppData\Local\Programs\Python\Python39\lib\site-packages\mindspore\train\model.py", line 1054, in train 

    dataset_size = train_dataset.get_dataset_size() 

  File "C:\Users\Dell\AppData\Local\Programs\Python\Python39\lib\site-packages\mindspore\dataset\engine\datasets.py",  

line 1815, in get_dataset_size 

    runtime_getter = self.__init_size_getter() 

  File "C:\Users\Dell\AppData\Local\Programs\Python\Python39\lib\site-packages\mindspore\dataset\engine\datasets.py",  

line 1677, in __init_size_getter 

    ir_tree, api_tree = self.create_ir_tree() 

  File "C:\Users\Dell\AppData\Local\Programs\Python\Python39\lib\site-packages\mindspore\dataset\engine\datasets.py",  

line 406, in create_ir_tree 

    ir_tree = dataset.parse_tree(getter_mode) 

  File "C:\Users\Dell\AppData\Local\Programs\Python\Python39\lib\site-packages\mindspore\dataset\engine\datasets.py",  

line 428, in parse_tree 

    ir_node = self.parse(ir_children) 

  File "C:\Users\Dell\AppData\Local\Programs\Python\Python39\lib\site-packages\mindspore\dataset\engine\datasets_user_defined.py", line 871, in parse 

    return cde.GeneratorNode(self.prepared_source, self.column_names, self.column_types, self.source_len, 

RuntimeError: Syntax error. 

 

------------------------------------------------------------------ 

- Dataset Pipeline Error Message: 

------------------------------------------------------------------ 

[ERROR] GeneratorNode: data row of input source must not be 0, got: 0. 

 

------------------------------------------------------------------ 

- C++ Call Stack: (For framework developers) 

------------------------------------------------------------------ 

mindspore\ccsrc\minddata\dataset\engine\ir\datasetops\source\generator_node.cc(113). 

############################################################################################################

############################################################################################################

代码段(ps.像是自定义数据集的时候出现的问题)

class Mydataset():

    def __init__(self,path):

        self.path=path

        self._index=0

        self.data=[]

        self.label=[]

        self._load()    

    def _load(self):

        for dirpath,dirnames,filenames in os.walk(top=self.path):

            for i in range(0,65):

                new_path=dirpath+'/'+dirnames[i]

                print(new_path)

                for _1,_2,need_pic in os.walk(top=new_path):

                    for names in need_pic:

                        self.label.append(dirnames[i])#加入标签

                        img=Image.open(new_path+'/'+names)

                        img=np.array(img)

                        self.data.append(img)

                break

            break        

   

    def __next__(self):

        if self._index >= len(self.data):

            raise StopIteration

        else:

            item = (self.data[self._index], self.label[self._index])

            self._index += 1

            return item

    def __iter__(self):

        self._index = 0

        return self

   

    def __len__(self):

        #print(len(self.data))

        return len(self.data)

#######################################################################################################################

希望大佬帮助!

我要发帖子