Open lmq5294249 opened 1 year ago
看这个项目是pytorch的啊,你用pnnx转下试试? pyotrch -> torchscript -> pnnx/ncnn
看这个项目是pytorch的啊,你用pnnx转下试试? pyotrch -> torchscript -> pnnx/ncnn
怎么将模型由pyotrch 转为 torchscript模型,我试了网上的方法都是错误。可以写一个转换代码吗?
就是你搜一下以trace模式导出torchscript,这样
就是你搜一下以trace模式导出torchscript,这样
就是你搜一下以trace模式导出torchscript,这样
import torch import torchvision
model = torch.load('/Users/lin/Desktop/deep-person-reid/tools/osnet_x0_75_msmt17_combineall.pth') model.eval()
x = torch.rand(1, 3, 256, 128)
script_model = torch.jit.trace(model, x) script_model = script_model.cpu()
torch.save(script_model, 'osnet_x0_75_torchscript.pt')
然后报错
Traceback (most recent call last):
File "save_net.py", line 6, in
实际上我第一次使用这个方式转换,各种懵圈。试了几次代码都跑不通。
@lmq5294249 处理完了吗?同样的问题
请教下处理结果
没处理完,目前是模型转为torchscript模型失败。我试着写由pyotrch 转为 torchscript模型,遇到各种问题,也查看了原项目的相关代码加以帮助还是有问题,我把一些代码发上来给大神们看看。。。 本人辣鸡小白,没试过这种转换方式pyotrch -> torchscript -> pnnx/ncnn 下面自己弄的代码求大神改一改。 https://kaiyangzhou.github.io/deep-person-reid/pkg/models.html save_net.py.zip
有没有大神试着在这个项目做下ONNX模型转NCNN模型测试,我也不确定是否是我写的代码有问题导致结果有问题。(ONNX自己转换后测试是OK的,NCNN模型转换也没遇到BUG,但是测试结果异常)
@wzyforgit @nihui
@lmq5294249
pt2torchscript.zip
转好像没问题 就是pnnx的测试结果也是异常的(和你onnx结果一致,什么图片都是0.99**** )
@lmq5294249 搞定没?onnx和pnnx好像也是错误的结果,你这边有进展不?
还没解决。估计我是解决不来 同一组图片onnx验证是对的。 osnet_x0_75_msmt17_combineall.onnx.zip (https://github.com/Tencent/ncnn/files/11418898/osnet_x0_25_msmt17_combineall.onnx.zip)
但是从onnx转NCNN,我测试过其他的人形重识别其他开源项目的models也是有问题。 https://github.com/linghu8812/yolov5_fastreid_deepsort_tensorrt
然后用你提供的pt2torchscript,再用pnnx转为ncnn后也是错的。 同一组图片ONNX测试结果是0.4649 转为NCNN是测试结果是0.9883 离谱的要命,输出的数据也是很大不同。 我怀疑转NCNN时,部分算子异常了出错了。我试过用mobilenetv2模型结果也是错的。
@nihui 大佬帮忙看看 同样的问题
mobilenetV3 转换后的输出也是错的
针对onnx模型转换的各种问题,推荐使用最新的pnnx工具转换到ncnn In view of various problems in onnx model conversion, it is recommended to use the latest pnnx tool to convert your model to ncnn
pip install pnnx
pnnx model.onnx inputshape=[1,3,224,224]
详细参考文档 Detailed reference documentation https://github.com/pnnx/pnnx https://github.com/Tencent/ncnn/wiki/use-ncnn-with-pytorch-or-onnx#how-to-use-pnnx
针对onnx模型转换的各种问题,推荐使用最新的pnnx工具转换到ncnn In view of various problems in onnx model conversion, it is recommended to use the latest pnnx tool to convert your model to ncnn
pip install pnnx pnnx model.onnx inputshape=[1,3,224,224]
详细参考文档 Detailed reference documentation https://github.com/pnnx/pnnx https://github.com/Tencent/ncnn/wiki/use-ncnn-with-pytorch-or-onnx#how-to-use-pnnx
都是最新的pnnx版本,大哥帮忙看下具体问题啊,别人提问题你就是更新最新版本 。。。。。
原项目地址https://github.com/KaiyangZhou/deep-person-reid/tree/master
model | 模型 | モデル
- original model osnet_x0_75_msmt17_combineall.pth.zip https://kaiyangzhou.github.io/deep-person-reid/MODEL_ZOO.html
您好! 请问您转换osnet.pth是打算在Android上实现reid吗?
原项目地址https://github.com/KaiyangZhou/deep-person-reid/tree/master
model | 模型 | モデル
2.我用作者提供的方法进行转换为ONNX模型 https://github.com/KaiyangZhou/deep-person-reid/tree/master/tools CMD为 python export.py -p "./osnet_x0_25_market1501.pth" -hp --imgsz 256 128 --include onnx 转换后为 osnet_x0_75_msmt17_combineall.onnx.zip
这一步可以验证结果为正确 自己写的简单方法,应该是正确的吧!!!(边学边改) detect.py.zip
3.最后在转为NCNN模型 这一步,我在macos安装onnx2NCNN转换工具失败,然后采用网站的NCNN装换 https://convertmodel.com/#input=onnx&output=onnx
osnet_x0_75_msmt17_combineall-sim-opt.zip
4.在NCNN项目上验证结果,是跟ONNX测试验证的结果差远了,不同人形的图片结果相似度很高。扑街了 一些简单参数设置 int input_height = 256; int input_width = 128; const float m_mean_value[3] = { 0.485, 0.456, 0.406}; const float m_norm_value[3] = { 0.229, 0.224, 0.225};
std::vector FastReID::detectMatToVector(const cv::Mat &rgb)
{
cv::Mat resultMat;
}
可以输出图1和图2数据在用下面方法算出相似度 double cosine_similarity(const std::vector& v1, const std::vector& v2) {
// 计算向量长度
double len1 = 0.0, len2 = 0.0;
for (double x : v1) {
len1 += x x;
}
for (double x : v2) {
len2 += x x;
}
}
我测试出来的NCNN模型推理结果不对,是不是转换错了??? 哪位大佬能试着将ONNX转为NCNN 看看结果。。。分析一下
本人是辣鸡小白刚学而已,求大佬帮忙看看这个行人重识别项目 @nihui