官方API文档,代码示例运行报错!?
celing 发布于2020-05-29 18:13 浏览:112 回复:3
0
收藏

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条回复 最后由鹿鼎记肯定回复于2020-05-30 22:48
#4鹿鼎记肯定回复于2020-05-30 22:48:29

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

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

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

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

0
#3celing回复于2020-05-30 17:42:45

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

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
#2xiaohongyd回复于2020-05-30 01:20:35

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

改成二维试试看。

0
TOP
切换版块