首页 Paddle框架 帖子详情
官方API文档,代码示例运行报错!?
收藏
快速回复
Paddle框架 问答深度学习炼丹技巧 1060 3
官方API文档,代码示例运行报错!?
收藏
快速回复
Paddle框架 问答深度学习炼丹技巧 1060 3

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
收藏
回复
全部评论(3)
时间顺序
HolliZhao
#2 回复于2020-05

参数:x (Variable) - 输入变量,维度为 [M,K][M,K] ,lod level至多1的二维Tensor或LoDTensor。数据类型支持int32,int64,float32或float64。

改成二维试试看。

0
回复
c
celing
#3 回复于2020-05

示例代码的两处错误已找到,改正后可以运行。

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

官方代码示例,运行测试后再提交才好~~

0
回复
thinc
#4 回复于2020-05

这个data接口原来应该是fluid.layers.data,但最新版本支持的是fluid.data,他们的主要区别在于:

fluid.layers.data可以不用指定第一维度,计算图在网络中会自动分配;

fluid.data会检查输入的维度,因此必须要指定第一个维度,一般写-1就表示不定长。

所以示例中的shape只有1个维度肯定是错的,但是建议你修改成shape=[-1, 1]来表示多条数据

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户