# GeneratorDataset报错误Unexpected error. Invalid data type

**1. MindSpore自定义Python数据源**

通过迭代该数据源构造数据集。有点类似PyTorch的DataLoader。

相关的API可以参考：[mindspore.dataset.GeneratorDataset](https://www.mindspore.cn/docs/api/zh-CN/master/api_python/dataset/mindspore.dataset.GeneratorDataset.html#mindspore.dataset.GeneratorDataset)

在ModelArt + GPU + MindSpore 1.2.0 环境下，使用GeneratorDataset接口加载自定义语音数据集，

![](figures/4.png)

**2. 报出如下错误：**

![](figures/5.png)

Unexpected error. Invalid data type.

```
Line of code : 109
File: /home/jenkins/agent-working-dir/workspace/Compile_GPU_x86_Ubuntu_Cuda10/mindspore/mindpore/ccsrc/mindata/dataset/core/tensor.cc
```

**3. 原因分析：**

问题出现的原因可能为，自定义的Datast 或map 操作中返回的是一个dict类型数据等，不是numpy array 或 numpy array 组成的元组（tuple）。因为其他类型（dict、object等）不是一个可控的数据类型同时也不明确其中的数据存储方式，因此报出Invalid type的错误。

**4. 解决办法：**

需要确认下自定义的数据处理部分是否返回了dict等，需要返回numpy array

或者检查一下自定义加载数据时，\_\_getitem\_\_ 函数需要返回值是 tuple，并且tuple的元素是 numpy类型。

这里给出一个例子，标注了几个重要的地方进行numpy 的转换，请确认相关位置的数据类型是否为numpy或tuple\[numpy\]

![](figures/6.png)

**5. 其他错误相关帖：**

[https://gitee.com/mindspore/mindspore/issues/I4E08V](https://gitee.com/mindspore/mindspore/issues/I4E08V)

