关于c#:C中的深度学习五在MLNET中使用预训练模型进行硬币识别

27次阅读

共计 1374 个字符,预计需要花费 4 分钟才能阅读完成。

在本系列的最初,咱们将介绍另一种办法,即利用一个事后训练好的 CNN 来解决咱们始终在钻研的硬币辨认问题。

在这里,咱们看一下转移学习,调整预约义的 CNN,并应用 Model Builder 训练咱们的硬币辨认模型。

咱们将应用 ML.NET 代替 Keras.NET。为什么不应用 Keras.NET 呢? 只管 Keras.NET 非常简单,易于学习,尽管它蕴含后面提到的预约义模型,但它的简略性使咱们无奈自定义 CNN 架构来适应咱们的问题。

ML.NET 是一个微软的收费机器学习框架,旨在应用 C#和 F# 进行开发。最重要的是,咱们能够将 ML.NET 与 Azure 联合应用,这意味着咱们能够应用基于云的基础设施来训练咱们的模型。让多个虚拟机以分布式形式运行咱们的代码能够使训练更快、更精确。

为什么预训练的 CNN 如此有价值? 因为有人花了很多工夫和资源培训他们,咱们能够利用这一点。咱们能够重用嵌入在为网络计算的权值,咱们能够将它们从新利用到相似的问题中。也就是说,它们不仅能够利用于 CNN 最后训练解决的问题。这种办法就被称为迁徙学习。它能够为咱们节俭大量的培训工夫,并大大提高所取得的后果。

在迁徙学习中,咱们不像以前那样从零开始。相同,咱们从一个已知的模型开始,该模型具备预约义的体系结构和在第一次申请模型时下载的计算权重。风行的模型包含 Inception、ResNet 和 VGG16 等。

要针对咱们的问题调整预约义的 CNN,咱们必须做三件事。首先,咱们必须将输出层的形态更改为数据集中图像的维度。其次,咱们至多须要更改输入层,以便模型领有与数据集雷同数量的类。第三,咱们必须调整模型,让它晓得咱们对训练预约义模型的层不感兴趣。

实现这些步骤后,咱们能够训练或使咱们的模型适宜于给定的数据集。

让咱们开始吧。在 Visual Studio 中,转到 Extensions > Manage Extensions,浏览ML.NET Model Builder

咱们还须要装置 Nuget 包 ML.NET。

为了训练咱们的模型来解决硬币辨认问题,咱们将应用 Model Builder 扩大。

应用这个工具,咱们能够轻松地设置数据集并训练模型,它通过 Model Builder 中增加的 Auto ML 个性主动抉择模型。主动机器学习 (automatic Machine Learning, Auto ML) 是一种自动化机器学习模型开发中的耗时工作。所以 Model Builder 将为咱们简化筹备数据集的过程,以及抉择事后训练好的模型和所有波及的参数。对于所选的预训练模型,有一点是只有最初一层会被从新训练; 其余所有人都放弃权重。

对于数据集的状况,惟一的要求是将其组织在文件夹中,这样文件夹名就是其中所有图像的类或标签。

当咱们到目前为止应用的硬币数据集被输出到模型构建器中时,AutoML 引擎抉择 ResNet 作为事后训练好的架构来用于咱们的问题。

一旦训练完结,咱们就能够预测新的输出数据,甚至能够失去与为预测而生成的模型绝对应的代码。只需这么少的工作,咱们就能够在简直没有任何相干常识的状况下应用 ML,通过 UI 简略地实现所有工作,抉择、单击并在最初取得代码。

对于应用 C# 进行硬币辨认的系列文章到此结束。心愿你喜爱!如果有任何问题,不要遗记留言或发信息。感激你的浏览。

欢送关注我的公众号,如果你有喜爱的外文技术文章,能够通过公众号留言举荐给我。

正文完
 0