zjhellofss / KuiperInfer

校招、秋招、春招、实习好项目!带你从零实现一个高性能的深度学习推理库,支持大模型 llama2 、Unet、Yolov5、Resnet等模型的推理。Implement a high-performance deep learning inference library step by step
MIT License
2.59k stars 295 forks source link

Mobilenet 推理框架分类正确率有问题。 #50

Closed Dxymiemiemie closed 11 months ago

Dxymiemiemie commented 12 months ago

你好,使用了代码仓库里temp下的mobile__224.pnnx.xxxx。后在demo里加入了mobilenet的测试,发现分类正确率有问题。请问,对此开发人员经过验证吗? image 但是使用resnet测试分类都是正常的。 image 测试环境:

官方提供的docker也使用了结论一致。

Dxymiemiemie commented 12 months ago

demos.zip 这是在demo下添加的测试mobilenet代码。对car.jpg的分类有误。请问有什么解决该问题的思路吗?

zjhellofss commented 12 months ago

拉取最新代码后试下这个: https://github.com/zjhellofss/KuiperInfer/blob/main/demos/mobilenet/mobile.cpp

zjhellofss commented 11 months ago

导出的流程

1. 先到torchscript

import torch

if __name__ == '__main__':
    model = torch.hub.load('pytorch/vision:v0.10.0', 'mobilenet_v2', pretrained=True)
    model.eval()

    x = torch.rand(1, 3, 224, 224)
    mod = torch.jit.trace(model, x)
    mod.save("mobilenet_v2.pt")

2. 再到pnnx模型

https://github.com/pnnx/pnnx 参考其中的2,3,4小节

Dxymiemiemie commented 11 months ago

ok ok。已解决。请问是什么原因导致的问题呢?是模型的bug吗?我再尝试解决这个问题,有什么好的建议吗?

zjhellofss commented 11 months ago

ok ok。已解决。请问是什么原因导致的问题呢?是模型的bug吗?我再尝试解决这个问题,有什么好的建议吗?

temp下的mobile__224.pnnx.xxx是一个随机权重的模型,并不是从预训练模型中导出的。如果需要预训练后的导出,需要按照以上我说的步骤。