MobileNet vs SqueezeNet vs ResNet50 vs Inception v3 vs VGG16

我最近一直在研究如何将iOS开发者的机器学习版本集成到我的应用中。由于这是我第一次接触与机器学习相关的内容,当我开始阅读苹果提供的不同模型描述时,我感到非常迷茫。它们有着相同的目的/描述,唯一的区别在于实际文件的大小。这些模型之间有什么区别?你如何知道哪个最适合?


回答:

苹果提供的模型仅用于简单的演示目的。大多数情况下,这些模型不足以用于你自己的应用。

苹果下载页面上的模型是为一个非常特定的目的训练的:在ImageNet数据集上进行图像分类。这意味着它们可以接收一张图像,并告诉你图像中的“主要”对象是什么,但前提是它必须是ImageNet数据集中1,000个类别中的一个。

通常,这并不是你在自己的应用中想要做的。如果你的应用想要进行图像分类,通常你希望在自己的类别上(如食物或汽车或其他任何东西)训练一个模型。在这种情况下,你可以使用像Inception-v3(原始版本,不是Core ML版本)这样的模型,并在你自己的数据上重新训练它。这将为你提供一个新的模型,然后你需要再次将其转换为Core ML格式。

如果你的应用想要做的事情不是图像分类,你可以将这些预训练模型用作更大神经网络结构中的“特征提取器”。但同样,这涉及到训练你自己的模型(通常是从头开始),然后将结果转换为Core ML格式。

因此,只有在非常特定的用例中——使用1,000个ImageNet类别进行图像分类——这些苹果提供的模型对你的应用才有用。

如果你确实想使用这些模型中的任何一个,它们之间的区别在于速度与准确性之间的权衡。较小的模型速度最快,但准确性也最低。(在我看来,VGG16不应该在移动设备上使用。它实在太大了,而且它的准确性并不比Inception甚至MobileNet高。)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注