PaddlePaddle报错解决-holder_ should not be null

报错信息

C++ Callstacks: 
holder_ should not be null
Tensor not initialized yet when Tensor::type() is called. at [D:\1.4.1\paddle\paddle/fluid/framework/tensor.h:146]

问题原因

有已经定义好的变量还没有初始化参数就被调用了


例如上方的代码块,这些默认是保存在fluid.default_main_program()程序中。但不管有多少个子程序,都必须在fluid.default_statrup_program()中初始化参数后,让他们知道是自己是干嘛的时候,他们才可以正确运行。初始化方法如下:

在这些所有有关定义数据的代码块后,使用执行器exe.run(启动程序 此处为 startup )初始化定义的变量就可以了。

解决方法

修改exe.run(startup)到训练主循环位置上方最近处,避免有变量没有初始化参数就开始计算。

查看启动程序代码块位置是否在最接近训练主循环代码块位置上,而且两个代码块中间不能有其它有关训练的代码

这些不够直观,但不妨参考一下这篇文章,看一下代码结构就可以了https://www.jianshu.com/p/df98fcc832ed

你可能感兴趣的:(PaddlePaddle报错解决-holder_ should not be null)