xxradon / PytorchToCaffe

Pytorch model to caffe model, supported pytorch 0.3, 0.3.1, 0.4, 0.4.1 ,1.0 , 1.0.1 , 1.2 ,1.3 .notice that only pytorch 1.1 have some bugs
MIT License
783 stars 224 forks source link

模型转换之后精度相差较大 #47

Closed LilySys closed 4 years ago

LilySys commented 4 years ago

您好,利用您的工具,进行pytorch转caffe以及验证之后,一切显示正常,但是我在caffe之下大量测试模型的时候,caffe模型的map相较于pytorch模型的map低了10个点,本人的模型为resnet-50。我也试着从多方面查找问题,但还是没有头绪,希望您能给些建议,谢谢!

xxradon commented 4 years ago

可以使用我提供的verfy_deploy.py去对比pytorch和caffe每一层的输出。然后一般输出上的差异来源比较明显的是BN层引起的。

LilySys commented 4 years ago

我按照您说的方式,每一层进行对比,确实发现是BN层的差异较大,误差达到2个数量级,请问是什么原因造成的,有没有办法可以解决?

LilySys commented 4 years ago

您好,或者说可以从哪些地方入手排查问题

xxradon commented 4 years ago

主要是BN层的默认参数,你仔细比对一下。

LilySys commented 4 years ago

是指caffe的还是pytorch的?

LilySys commented 4 years ago

以我浅薄的认识,我觉得caffe测试时用不到默认参数,除了eps,其余参数都是训练时使用,而pytorch测试除了用eps、track_running_stats也用不到其它默认参数了呀,其余的也是训练时使用。

xxradon commented 4 years ago

是的。主要就是这个eps的差异引起误差,当然你需要验证一下你到底使用的是哪个版本的caffe,intel 的caffe BN是单独一层,官方版的是bn+scale。