请教结果输出的输入参数格式
收藏
我训练了一个网络,训练的时候没有问题,但使用训练的结果进行输出的时候报错
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 来输出,拼接成数组就会报错。
这个问题要怎么解决啊,我确实遇到了需要输出两个结果的情况