openCV::dnn模块调用多结果神经网络,报错not enough values to unpack(expected 2, got 1)解决办法

在对UTKFace数据集搭建多任务输出网络模型,实现多个预测。对该数据集进行年龄,性别,种族的预测。全链接层输出如下

openCV::dnn模块调用多结果神经网络,报错not enough values to unpack(expected 2, got 1)解决办法_第1张图片

导出了两个模型一个是.pt的,一个是.onnx格式的。使用pytorch的torch.load()进行模型部署,没有任何问题。但是在用opencv::dnn模块对onnx模型进行部署时发现问题

 显示.forward() 模块只有一个返回值,但是模型确实是3个返回值,我对.forward()的结果进行打印,发现只输出了最后一个预测的结果。前面两个被模块吞了。。。

重新在python的环境下试了几次,又到c++的环境下去调用,发现还是不行。

最后的处理结果我更改了模型的输出

openCV::dnn模块调用多结果神经网络,报错not enough values to unpack(expected 2, got 1)解决办法_第2张图片

将最后的输出的3个tensor 拼成一个

在后面处理预测结果的时候再拆成3个结果

 

就可以解决,算是走了一个旁门左道。

你可能感兴趣的:(神经网络,dnn,人工智能)