请教结果输出的输入参数格式
收藏
我训练了一个网络,训练的时候没有问题,但使用训练的结果进行输出的时候报错
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
收藏
请登录后评论
这个报错是numpy报的错。
如果对数组对象进行 axis= 1 轴的拼接,方向是横向0轴,a是一个2*2维数组,axis= 0轴为2,b是一个1*2维数组,axis= 0 是1,两者的形状不等,这时会报错
谢谢!问题找到了,输入的参数没有问题,是输出的时候出错了,return [out1,out2] 这种在输出的时候就会报错,只能用 return out1 或者return out2 来输出,拼接成数组就会报错。
这个问题要怎么解决啊,我确实遇到了需要输出两个结果的情况