# 报错RuntimeError: Unexpected error. Invalid data.

**1. 报错描述**

1.1 系统环境

```
ardware Environment(Ascend/GPU/CPU): CPU Software Environment: – MindSpore version (source or binary): 1.6.0 – Python version (e.g., Python 3.7.5): 3.7.6 – OS platform and distribution (e.g., Linux Ubuntu 16.04): Ubuntu 4.15.0-74-generic – GCC/Compiler version (if compiled from source):
```

1.2 基本信息

1.2.1脚本

此案例将自定义数据集转化成MindSpore Record数据格式

![](figures/5-45.png)

1.2.2报错

报错信息：

```
RuntimeError: Unexpected error. Invalid data, the number of schema should be positive but got: 0. Please check the input schema. 
```

![](figures/6-46.png)

**2. 原因分析**

报错信息：“Invalid data”意为无效数据,分析为“intent\_ids”定义的类型与实际使用到的数据类型不一致，导致匹配不到合适的数据。

**3. 解决方法**

将intent\_label\_ids改为输入数据使用到的类型。

![](figures/7-47.png)

此时执行成功，读取MindSpore Record格式文件，并打印部分数据。

![](figures/8-48.png)

输出如下：

![](figures/9-49.png)

**4. 总结**

定位报错问题的步骤： 1、找到报错的用户代码行：writer.write\_raw\_data\(data\)； 2、根据日志报错信息中的提示：“Invalid data, the number of schema should be positive but got: 0. Please check the input schema.”定位到数据输入部分可能出现问题。结合前面的warning：“for schema, 0 th data is wrong, data type for 'intent\_ids' is not matched.”可定位到intent\_ids数据写入时出现报错，检查发现intent\_ids是一维数组，遍历时输入为单个数据，而在代码中定义为numpy类型，导致数据读取时匹配不到相关类型数据。 3、数据输入与脚本中的类型定义需要保持一致。

**5. 参考文档**

mindspore教程-\>数据处理-\>格式转换

[https://mindspore.cn/tutorials/zh-CN/master/advanced/dataset/record.html](https://mindspore.cn/tutorials/zh-CN/master/advanced/dataset/record.html)

