如何估计手机神经网络的运行时间?
How to estimate the run time of a neural network on mobile phones?
我训练了一个大约有26000个参数的神经网络,我打算用它在手机上进行实时推理。我想知道是否有一种方法可以根据网络的大小和操作设备来估计神经网络的 运行 时间。
您需要估计 运行模型需要的浮点运算 (FLOPS) 数。例如,将两个 N x N
矩阵相乘算作 2 N^3
FLOPS。 (PyTorch 中有 software packages that help you do that)顺便说一下,1 次乘加算作 2 FLOPS。
然后,您需要了解您目标设备的功能。它每秒可以执行多少次浮点运算?这提供了一个 上限 你的代码可以有多快 运行。您的代码会达到这个理论极限吗?这还不清楚,但这给了你一些值得追求的东西。问题越简单(小张量),您越有可能落后于此限制。
如果您量化部署模型,则需要相应地调整计算(使用相关整数运算的速度)。
我训练了一个大约有26000个参数的神经网络,我打算用它在手机上进行实时推理。我想知道是否有一种方法可以根据网络的大小和操作设备来估计神经网络的 运行 时间。
您需要估计 运行模型需要的浮点运算 (FLOPS) 数。例如,将两个 N x N
矩阵相乘算作 2 N^3
FLOPS。 (PyTorch 中有 software packages that help you do that)顺便说一下,1 次乘加算作 2 FLOPS。
然后,您需要了解您目标设备的功能。它每秒可以执行多少次浮点运算?这提供了一个 上限 你的代码可以有多快 运行。您的代码会达到这个理论极限吗?这还不清楚,但这给了你一些值得追求的东西。问题越简单(小张量),您越有可能落后于此限制。
如果您量化部署模型,则需要相应地调整计算(使用相关整数运算的速度)。