关于 fluid.layers.data 更改 lod_level 的一点疑惑
Created by: tsaizehua
Fluid 1.6,本例无其它特殊环境。
console 调试代码时无意中更改了数据层的 lod_level,报错:
x = fluid.layers.data(name="argX", shape=[1], dtype='float32', lod_level=1)
x = fluid.layers.data(name="argX", shape=[1], dtype='float32', lod_level=2)
ValueError: Variable argX has been created before. The previous lod_level is 1; the new lod_level is 2. They are not matched
并仔细看了fluid.layers.data以及name相关的文档,并未找到合理的答案。 “name 用于网络层输出的前缀标识,name值_数字.tmp_数字中的数字会递增。” 一方面常规理解后者定义应该可以正常覆盖前者;另一方面,Fluid 内部的命名也是自增以作区分。
而报错是针对 lod_tensor,难道是 paddle 静态图对网络定义上的某种限制?
谢谢。