官方API文档,代码示例运行报错!?
收藏
https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/layers_cn/sequence_expand_cn.html
paddle版本1.8.1。学习到这里,sequence_expand()
按照文档解释,x的维度应当和y的lod维度相关,但示例中给出x的shape=[1]。不满足扩展条件,代码粘贴到notebook下运行也报错提示:
InvalidArgumentError: Dimension number of Input(X) should be at least 2. But received: input rank 1, input shape [1].
[Hint: Expected x_dims.size() >= 2, but received x_dims.size():1 < 2:2.] at (/home/teamcity/work/ef54dc8a5b211854/paddle/fluid/operators/sequence_ops/sequence_expand_op.cc:42)
[operator < sequence_expand > error]
是不是要变更x的维度来满足函数的参数检查要求?或是其它方法~ 需求思路,谢谢!
0
收藏
请登录后评论
参数:x (Variable) - 输入变量,维度为 [M,K][M,K] ,lod level至多1的二维Tensor或LoDTensor。数据类型支持int32,int64,float32或float64。
改成二维试试看。
示例代码的两处错误已找到,改正后可以运行。
x = fluid.data(name='x', shape=[1,1], dtype='float32') # x shape [1,1]
y = fluid.data(name='y', shape=[1], dtype='int64',lod_level=1) # y dtype int64
官方代码示例,运行测试后再提交才好~~
这个data接口原来应该是fluid.layers.data,但最新版本支持的是fluid.data,他们的主要区别在于:
fluid.layers.data可以不用指定第一维度,计算图在网络中会自动分配;
fluid.data会检查输入的维度,因此必须要指定第一个维度,一般写-1就表示不定长。
所以示例中的shape只有1个维度肯定是错的,但是建议你修改成shape=[-1, 1]来表示多条数据