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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,441评论 0 4
  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,563评论 0 6
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,814评论 0 11
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,856评论 0 10
  • 几个月前,逛街时无意中进入了一家鱼粉店,点了一份鱼粉,吃着发现,味道绝美。 后来就一直没有上过街,在家里宅着带娃,...
    沧阙阅读 291评论 0 1