如何计算机器学习模型的复杂度

如何计算机器学习模型的复杂度

本文介绍了如何计算机器学习模型的复杂度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将深度学习模型与车载网络通信安全中的应用进行比较.我想知道如何计算这些模型的复杂性以了解我提出的模型的性能.我正在使用张量流

I am working on comparison of deep learning models with application in Vehicular network communication security. I want to know how I can compute the complexity of these models to know the performance of my proposed ones. I am making use of tensorflow

推荐答案

您可以比较两个深度网络在空间和时间方面的复杂性.

You can compare the complexity of two deep networks with respect to space and time.

关于空间复杂度:

模型中的参数数量 -> 这与模型消耗的内存量成正比.

Number of parameters in your model -> this is directly proportional to the amount of memory consumed by your model.

关于时间复杂度:

  1. 针对给定的批次大小训练单个批次所需的时间.
  2. 训练收敛所需的时间
  3. 对单个样本进行推理所需的时间

一些论文还讨论了架构复杂性.例如,如果 GoogLeNet 准确率仅略高于 VGG-net,有些人可能更喜欢 VGG-net,因为它更容易实现.

Some papers also discuss the architecture complexity. For example, if GoogLeNet accuracy is only marginally higher than VGG-net, some people might prefer VGG-net as it is a lot easier to implement.

您还可以讨论一些关于您的网络对超参数调整的容忍度的分析,即当您更改超参数时,您的性能如何变化.

You can also discuss some analysis on tolerance of your network to hyperparameter tuning i.e. how your performance varies when you change the hyperparameters.

如果您的模型处于分布式设置中,则还有其他事项需要提及,例如通信间隔,因为它有时是瓶颈.

If your model is in a distributed setting, there are other things to mention such as the communication interval as it is the bottleneck sometimes.

总而言之,您可以讨论几乎任何您认为在另一个网络中实现方式不同的内容,并且会增加复杂性,而您的网络的准确性却没有太大提高.

In summary, you can discuss pretty much anything you feel that is implemented differently in another network and that is contributing additional complexity without much improvement in accuracy with respect to your network.

我认为您不会想要它,但还有一个名为 deepBench 对不同的深度网络模型进行基准测试.

I don't think you would want it but there is also an open source project called deepBench to benchmark different deep network models.

这篇关于如何计算机器学习模型的复杂度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!