首页 Paddle框架 帖子详情
请教结果输出的输入参数格式
收藏
快速回复
Paddle框架 问答深度学习 1917 3
请教结果输出的输入参数格式
收藏
快速回复
Paddle框架 问答深度学习 1917 3

我训练了一个网络,训练的时候没有问题,但使用训练的结果进行输出的时候报错
ValueError: all the input array dimensions except for the concatenation axis must match exactly
请教一下各位大神,验证参数的输入格式是什么样的
我的训练用的网络主要函数如下:

def Image_output(class_dim):
    cha_in=3
    DATA_DIM=cha_in * 55 * 55
    image1 = paddle.layer.data(
        name="image1", type=paddle.data_type.dense_vector(DATA_DIM))
    image2 = paddle.layer.data(
        name="image2", type=paddle.data_type.dense_vector(DATA_DIM))
    out1=DeepidNet(image1,cha_in)
    out2=DeepidNet(image2,cha_in)
    return [out1,out2]

输出结果的主要函数如下:

feeding={'image1': 0, 'image2': 1, 'label': 2, 'cass1': 3, 'cass2': 4}
OUT_net = Image_output(CLASS_DIM)
im1 = paddle.image.load_and_transform(file1, 55, 55, True).flatten().astype('float32')
im2 = paddle.image.load_and_transform(file2, 55, 55, True).flatten().astype('float32')
train_dim=[(im1,im2,)]
probs = paddle.infer(output_layer=OUT_net, parameters=parameters, input=train_dim)

报错信息如下:

ValueErrorTraceback (most recent call last)
 in ()
     12     train_dim=[(im1,im2,)]
     13     print train_dim
---> 14     probs = paddle.infer(output_layer=OUT_net, parameters=parameters, input=train_dim)
     15     mylabs1 = np.argsort(-probs[0][1])
     16     mylabs2 = np.argsort(-probs[0][2])

/usr/local/lib/python2.7/dist-packages/paddle/v2/inference.pyc in infer(output_layer, parameters, input, feeding, field)
    170 
    171     inferer = Inference(output_layer=output_layer, parameters=parameters)
--> 172     return inferer.infer(field=field, input=input, feeding=feeding)

/usr/local/lib/python2.7/dist-packages/paddle/v2/inference.pyc in infer(self, input, field, flatten_result, **kwargs)
    115 
    116         if flatten_result:
--> 117             retv = [numpy.concatenate(out) for out in retv]
    118 
    119         if len(retv) == 1:

ValueError: all the input array dimensions except for the concatenation axis must match exactly

 

 

0
收藏
回复
全部评论(3)
时间顺序
哎呦不错哦
#2 回复于2018-08

这个报错是numpy报的错。

如果对数组对象进行 axis= 1 轴的拼接,方向是横向0轴,a是一个2*2维数组,axis= 0轴为2,b是一个1*2维数组,axis= 0 是1,两者的形状不等,这时会报错

0
回复
ccpcbear
#3 回复于2018-08

谢谢!问题找到了,输入的参数没有问题,是输出的时候出错了,return [out1,out2] 这种在输出的时候就会报错,只能用 return out1 或者return out2 来输出,拼接成数组就会报错。

0
回复
ccpcbear
#4 回复于2018-12

这个问题要怎么解决啊,我确实遇到了需要输出两个结果的情况

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