C#中的深度学习(五):在ML.NET中使用预训练模型进行硬币识别
在本系列的最后,我们将介绍另一种方法,即利用一个预先训练好的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#进行硬币识别的系列文章到此结束。希望你喜欢!如果有任何问题,不要忘记留言或发信息。感谢你的阅读。
欢迎关注我的公众号,如果你有喜欢的外文技术文章,可以通过公众号留言推荐给我。
C#中的深度学习(五):在ML.NET中使用预训练模型进行硬币识别的更多相关文章
- CNCC2017中的深度学习与跨媒体智能
CNCC2017中的深度学习与跨媒体智能 转载请注明作者:梦里茶 目录 机器学习与跨媒体智能 传统方法与深度学习 图像分割 小数据集下的深度学习 语音前沿技术 生成模型 基于贝叶斯的视觉信息编解码 珠 ...
- 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第一周测验【中英】
[吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第一周测验[中英] 第一周测验 - 深度学习简介 和“AI是新电力”相类似的说法是什么? [ ]AI为我们的家庭和办公室的个人设备供电 ...
- Deep learning for visual understanding: A review 视觉理解中的深度学习:回顾 之一
Deep learning for visual understanding: A review 视觉理解中的深度学习:回顾 ABSTRACT: Deep learning algorithms ar ...
- 深度学习---1cycle策略:实践中的学习率设定应该是先增再降
深度学习---1cycle策略:实践中的学习率设定应该是先增再降 本文转载自机器之心Pro,以作为该段时间的学习记录 深度模型中的学习率及其相关参数是最重要也是最难控制的超参数,本文将介绍 Lesli ...
- 在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN
Generative Adversarial Network 是深度学习中非常有趣的一种方法.GAN最早源自Ian Goodfellow的这篇论文.LeCun对GAN给出了极高的评价: “There ...
- C#中的深度学习(一):使用OpenCV识别硬币
在本系列文章中,我们将使用深度神经网络(DNN)来执行硬币识别.具体来说,我们将训练一个DNN识别图像中的硬币. 在本文中,我们将描述一个OpenCV应用程序,它将检测图像中的硬币.硬币检测是硬币完整 ...
- C#中的深度学习(三):理解神经网络结构
在这篇文章中,我们将回顾监督机器学习的基础知识,以及训练和验证阶段包括哪些内容. 在这里,我们将为不了解AI的读者介绍机器学习(ML)的基础知识,并且我们将描述在监督机器学习模型中的训练和验证步骤. ...
- ui2code中的深度学习+传统算法应用
背景 在之前的文章中,我们已经提到过团队在UI自动化这方面的尝试,我们的目标是实现基于 单一图片到代码 的转换,在这个过程不可避免会遇到一个问题,就是为了从单一图片中提取出足够的有意义的结构信息,我们 ...
- 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第二周测验【中英】
[中英][吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第二周测验 第2周测验 - 神经网络基础 神经元节点计算什么? [ ]神经元节点先计算激活函数,再计算线性函数(z = Wx + ...
随机推荐
- 图解连接阿里云(一)创建阿里云物联网平台产品和设备,使用MQTT.fx快速体验
1. 打开 https://www.aliyun.com/ 注册账号 2.注册账号登录后点击控制台 3. 在下图1处输入物联网平台,会弹出2处所示物联网平台的入口,点击红色箭头所示处,进入物联网平 ...
- eNSP VLAN划分基础配置及Trunk接口
跨交换机实现VLAN通信拓扑图: 一.配置PC机 ip 并测试相互能否ping通 PC名称 IP 子网掩码 网关 PC1 10.1.1.1 255.255.255.0 10.1.1.254 PC2 1 ...
- 0001_20190327_使用frp搭建内网穿透
1. 环境 a) 公网服务器为阿里云的ECS Windows 2008 R2服务器, 有公网IP地址; 这个作为frp的服务器 b) 内网是开发服务器, Cento ...
- 老猿学5G扫盲贴:中国移动网络侧CHF的功能分解说明
☞ ░ 老猿Python博文目录░ 一.引言 在<老猿学5G扫盲贴:中国移动网络侧CHF主要功能及计费处理的主要过程>介绍了中国移动CHF的总体功能,同时说明了CHF网元主要由AGF.CD ...
- 转:解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别
解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别 标准Http协议支持六种请求方法,即: 1.GET 2.POST 3.PUT 4.Delete 5.HEAD ...
- PyQt(Python+Qt)学习随笔:QTreeView的标题表头header相关属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在Qt Designer中,对于树型视图QTreeView,在属性在下面有专门一栏列出了跟 ...
- pandas 处理缺失值(连续值取平均,离散值fillna"<unk>")
# 2.1处理缺失值,连续值用均值填充 continuous_fillna_number = [] for i in train_null_ix: if(i in continuous_ix): me ...
- 【题解】P2610 [ZJOI2012]旅游
link 题意 T国的国土可以用一个凸N边形来表示,包含 \(N-2\) 个城市,每个城市都是顶点为 \(N\) 边形顶点的三角形,两人的旅游路线可以看做是连接N个顶点中不相邻两点的线段.问一路能经过 ...
- 【UV统计】海量数据统计的前世今生
转载请注明出处 背景 在互联网公司中,每个项目都需要数据统计.分析,便于项目组利用详细数据研究项目的整体情况,进行下一步的调整.在数据统计中,UV统计是最常见的,也是最普遍的.有的场景要求实时性很高, ...
- 【Django admin 中文配置】
打开settings.py文件,找到语言编码.时区的设置项,将内容改为如下: [其中 zh-Hans是简体中文 zh-Hant是繁体中文] LANGUAGE_CODE = 'zh-Hans' # LA ...