Paddle如何统计自定义的网络的训练参数总量?
收藏
自己定义了一个网络,如何利用Paddle统计模型的参数总量?
0
收藏
请登录后评论
这个不清楚,可以自己算一下,应该也不太困难
我也是刚用pp,不知道怎么弄。不过你要知道模型大小(一般是多少M/G)的话,除以4就是的参数总量咯(float32)。
某一层的参数量也好算,比如标准卷积核大小为K_w * K_h, 且input channels为C_in, output channels为C_out, 参数量就是
K_w * K_h * C_in * C_out,全连接的就是 C_in * C_out,可分离(分开去算)和空洞(参数不变,只是增大了感受野)也是类似的
可以在每一层求一下kernel和bias的shape,然后把里面的数乘一下就是大概的值。
还能用模型文件大小估算,这个方法不错。
如果模型优化了的话,实际系统开销也是优化后的开销。
我有印象,Paddle估算模型开销的方法是结合了理论上网络规模计算和实际硬件测试结果的。
paddle对资源上需求没有很大的,如果跟其他框架比起来的话
恩,Paddle是用C++实现的。效率高
用paddle和tensorflow同时实现了一下fast text,tensorflow 慢到天际。。。训练前的预分配资源最慢。这一点paddle的优势挺大的。
2.0动态图还能一键改静态图编译,你说刺激不
刺激刺激,人性化啊!
多谢,我试试
可以参考这个
https://zhuanlan.zhihu.com/p/250291825