# PyNative模式下The pointer\[top\_cell\_\] is null错误

**1. 现象回顾**

MindSpore动态图下可以使用自定义数据集进行网络训练，但是当使用自定义数据集时，一不小心就会出现以下错误：

![](figures/3-82.png)

当出现该错误时，只是看到有一个指针为空了，但是python的调用栈却是在数据集里面。于是打开相应的自定义数据集脚本：

/home/cjj/models/official/cv/warpctc/src/dataset.py\(57\)

![](figures/4-83.png)

发现此处有一个 image += 1.0的tensor操作。于是将该操作删除后，发现程序正常运行。

**2. 根因分析**

该错误根因隐藏较深，由于MindSpore框架对于单算子的执行只支持单线程操作，但是在自定义数据集\_\_getitem\_\_函数中使用了Tensor的运算操作，即会调到框架的算子执行，由于数据集的处理使用了多线程操作，因此导致整体的执行顺序错乱，出现空指针的错误。因此到看到空指针错误且错误在generator.cc中时，就是在数据集中错误使用了Tensor的运算操作。

**3. 解决方案**

1、根据提示的调用栈信息，找到自定义数据集脚本中出错的位置。

2、将自定义数据集中的Tensor操作改为使用原生numpy进行计算。

