最近要上线代码,然后我在本地运行我的程序
我:一般本地cpu跑程序大概效率需要达到多少?
同事大哥:maybe 70it/s
我运行了一下我的程序显示:running time is 12s/70it
.......
what the f...
我承认那一刻我慌了,纳尼,我对我的程序打上无数个print,到底是哪一个地方出了问题哇
然后我发现了一个事实,很多地方都有问题。。。。。。
首先关于bert的效率,bert真的强,但推理也是真的慢,我在经历了无数的曲折和反复之后,将bert推理速度提升一倍,简单来说几个方法:
1、序列化模型,转torchscript,快速,便捷,好用
2、序列化模型,转onnx,gpu部署可能有点麻烦
3、升级硬件,GPU上运行,速度直线上升;
然后我接着看我的程序,我发现有一行代码竟然用了6s,这是什么破玩意,我定睛一看,是我写的二重循环。虽然,,,但是,,,我觉得数据的两两组合除了这么写我真的也不懂了,然后我找到了numpy的meshgrid,我只能说牛逼,我用了6s,人家用了0.06s。你以为到这里就结束了吗,还没有结束,因为我还没弄完,,,,,再见
标签:bert,代码,程序,70it,序列化,优化,效率 From: https://www.cnblogs.com/Leahx/p/16631125.html