Open lindadamama opened 1 year ago
什么意思那,右边看起来似乎没有和原图进行blend呀
如上图:左边是python直接加载模型,预测的结果,右边是调用toch.jit.trace导出的模型在c#平台上预测的结果 这个文档上说这种方法导出的模型,可以在c#平台或者c++平台上直接部署 https://github.com/dotnet/TorchSharp/wiki/TorchScript https://pytorch.org/docs/stable/jit.html torch.jit.trace与torch.jit.script的区别,这两种方法导出的模型是有差异的,没想到差异会这么大 https://cloud.tencent.com/developer/article/2067810
一个是静态的一个是动态的,差别是很大 但是我不理解的是,右图看起来都没做混合呀,你咋判断的呢
我没有进行混合,识别出区域后用opencv画的区域轮廓,因为混合后会覆盖原图,看不出是否识别准确
哦哦哦理解了看出来了 你的输入图片一样大吗
是同一张图片
导出onnx好像也不行,完全找不到区域
归一化啥的一样?
一样的,我测试了您的deeplabV3plus,完全没问题,不过对比了一下准确度,和训练时间,发现segformer收敛速度更快,准确度更高,但是导出的模型一直有问题,deeplabV3plus的c#输出和python输出基本一致
难道是因为segformer是self attention的问题吗
onnx都错的话,会不会是导出代码写错了
那就不清楚了,我尝试替换了Sgeformer里面的for循环和判断语句,问题依然没有解决
我这边对backbones进行了修改,导出的模型还是不正常, backbone.zip
我点开看看 主要trace是静态的,不应该出问题
那有可能是我用的Torchsharp解析模型的问题,但是deeplabV3Plus又没问题,有点想不通了
这个看不出问题,可能要看导出的代码
我是这样导出的,担心随机生成的Tensor会出问题,特意加载了一张图片运行,结果还是一样的,python和c#输出结果不一样
调用torch.jit.script(self.net).save("model.pt"),程序一直报错TypeError: cannot create weak reference to 'numpy.ufunc' object 调用toch.jit.trace(self.net,torch.rand(1,3,256,320)).save("model.pt")可以正常导出模型,但是测试结果和原来的模型(self.net)不一致 左边是直接预测的,右边是用toch.jit.trace(self.net,torch.rand(1,3,256,320)).save("model.pt")导出的模型预测的