什么是ML.NET?

ML.NET 使你能够在联机或脱机场景中将机器学习添加到 .NET 应用程序中。借助此功能,可以使用应用程序的可用数据进行自动预测。机器学习应用程序利用数据中的模式来进行预测,而不需要进行显式编程。

ML.NET 的核心是机器学习模型 。该模型指定将输入数据转换为预测所需的步骤。借助 ML.NET,可以通过指定算法来训练自定义模型,也可以导入预训练的 TensorFlow 和 ONNX 模型。

ML.NET 支持在使用 .NET Core 的 Windows、Linux 和 macOS 或使用 .NET Framework 的 Windows 上运行。所有平台均支持 64 位。Windows 支持 32 位,TensorFlow、LightGBM 和 ONNX 相关功能除外。

了解ML.NET模型生成器

ML.NET 模型生成器是一个直观的图形化 Visual Studio 扩展,用于生成、训练和部署自定义机器学习模型。其使用自动化的机器学习 (AutoML) 来探索不同的机器学习算法和设置,以帮助找到最合适的方案。

使用模型生成器不需要具备机器学习的专业知识。只需要一些数据,和确定要解决的问题。模型生成器会生成将模型添加到 .NET 应用程序的代码。

值得注意的是,目前ML.NET 模型生成器是属于预览版,需要先启用此预览功能:

接下来,我们将使用此模型生成器来生成图片性别生成的代码。

生成图片性别识别的代码

主体步骤如下所示:

1、创建控制台项目,然后添加【机器学习】

2、选择方案,这里我们选择【图像分类】

当完成了第一步操作之后,我们将打开ML.NET模型生成器的UI界面。这里我们选择【图像分类】方案:

3、选择训练环境

4、添加数据

在此之前,我们需要先准备好数据。由于是做图片分类,我们需要先准备图片数据,并且以文件夹的形式分类,比如:

准备好图片数据后,我们就可以在【数据】界面添加对应的文件夹了:

添加完成后,就可以看到【数据预览】:

这里笔者准备了5000多张学生图片,由于涉及隐私,这些数据样本不会公开,如需要训练可以去国外很多AI网站下载数据样本。

5、训练

训练是一个自动的过程,模型生成器通过该过程教模型如何回答方案相关的问题。训练后,模型可以对其没有见过的输入数据进行预测。例如,在预测房价时,可以预测新上市的房屋销售价。因为模型生成器使用自动机器学习 (AutoML),所以在训练期间不需要任何人工输入或微调操作。

接下来,我们【开始训练】:

一般500M数据需要训练大概半小时以上(具体还需视机器性能而定):

6、评估

训练结束后,我们就可以开始评估了。评估是衡量模型品质的过程。下面97.08的准确性已经是性能非常好的模型了,高于50%的准确性才是可以接受的模型。

如果模型性能评分不符合预期,可以:

  • 延长训练时间。有了更多时间,自动机器学习引擎可以体验更多算法和设置。

  • 添加更多更精确的数据。有时,数据量不足以训练高质量的机器学习模型。对于包含少量示例的数据集,尤其如此。

  • 均衡分配数据。对于分类任务,请确保在各个类别间均匀分配训练集。例如,若有四个类别和100 个训练示例,前两类(标记 1 和标记 2)包含 90 个记录,而剩下两类(标记 3 和标记 4)只包含 10 个记录,这就存在数据不均衡的问题,可能会导致模型很难正确预测标记 3 或标记 4。

回到刚才的主题,我们可以试用刚训练出的模型。这里笔者找了几张数据样本之外的图片进行测试:

模型的准确性非常之高,我们用一张偏女性化的男性图片进行测试:

从上面的测试结果可以看出,准确性基本上取决于数据样本的数量和质量!

7、添加代码

完成评估阶段后,模型生成器可以输出一份模型文件和代码,我们可以使用该代码将模型添加到应用程序。ML.NET 模型保存为 zip 文件。用于加载和使用模型的代码会以新项目的形式添加到解决方案中。模型生成器还会添加一个示例控制台应用,可以运行该应用来查看工作状态下的模型。

此外,模型生成器还会输出生成模型的代码,以便你能了解生成模型所使用的步骤。还可以通过模型训练代码使用新的数据重新训练模型。添加代码如下所示:

【添加】之后,在解决方案中我们就可以相关代码了:

如上图所示,ML.NET模型的zip文件也包含在解决方案中。

执行示例代码

我们将【GenderRecognitionML.ConsoleApp】工程设置为启动项目,打开示例代码如下所示:

using System;
using GenderRecognitionML.Model;namespace GenderRecognitionML.ConsoleApp
{class Program{static void Main(string[] args){// Create single instance of sample data from first line of dataset formodel inputModelInput sampleData = new ModelInput(){ImageSource =@"D:\workspace\AI\GenderRecognition\数据样本\女\20200612180307_xxx.jpg",};// Make a single prediction on the sample data and print resultsvar predictionResult = ConsumeModel.Predict(sampleData);Console.WriteLine("Using model to make single prediction --Comparing actual Label with predicted Label from sample data...\n\n");Console.WriteLine($"ImageSource: {sampleData.ImageSource}");Console.WriteLine($"\n\nPredicted Labelvalue {predictionResult.Prediction} \nPredicted Label scores:[{String.Join(",", predictionResult.Score)}]\n\n");Console.WriteLine("=============== End of process, hit any key tofinish ===============");Console.ReadKey();}}
}

通过上面的示例代码我们非常简单了解了如何来使用模型,仅需传入图片路径,即可使用模型输出对应的图像标签(男、女)和准确性,我们可以运行起来,执行结果如下所示:

至此,整个教程就完成了,是不是非常简单呢?即使我们不具备机器学习的专业知识!

转载是一种动力 分享是一种美德

如果喜欢作者的文章,请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

文档官网:docs.xin-lai.com

QQ群:

编程交流群<85318032>

产品交流群<897857351>

使用ML.NET模型生成器来完成图片性别识别相关推荐

  1. 模式识别hw2-------基于matconvnet,用CNN实现人脸图片性别识别

    主要来源模式识别课程大作业,本文首先感谢当初的助教和一起完毕作业的队友 matconvnet在matlab下封装了CNN常见算法,网址http://www.vlfeat.org/matconvnet/ ...

  2. Caffe练习(二):图片性别识别

    今天重新配置了一遍caffe,然后又跑了一遍图片识别的案例. 设置为启动项目后,会加粗. 结果: 程序中的文件路径: 模型是论文<Age and Gender Classification us ...

  3. 【源码】常用的人脸识别数据库以及上篇性别识别源码

    上一篇<使用ML.NET模型生成器来完成图片性别识别>发布后,很多朋友希望得到源码,这里附上地址: https://github.com/xin-lai/GenderRecognition ...

  4. ML之FE:对人类性别相关属性数据集进行数据特征分布可视化分析与挖掘

    ML之FE:对人类性别相关属性数据集进行数据特征分布可视化分析与挖掘 目录 对人类性别相关属性数据集进行数据特征分布可视化分析与挖掘 输出结果 实现代码 对人类性别相关属性数据集进行数据特征分布可视化 ...

  5. 基于BP神经网络算法的实现静态图片和视频人脸识别、性别识别

    资源下载地址:https://download.csdn.net/download/sheziqiong/85772066 资源下载地址:https://download.csdn.net/downl ...

  6. python性别只能为男或女_Pycaffe实践 1)分类:性别识别

    问题提出 给你一张人像图片,让你分辨照片中的人是男人还是女人(暂时不考虑其他情况).对人来说, 这是个比较简单的任务,但是对于机器来说,却不是那么简单.本文主要介绍如何使用深度学习的方法来辨别男女.同 ...

  7. Pytorch实现性别识别,男女分类

    本篇博文纯粹是作为一个记录,不会讲得太清楚,但是本人亲自运行验证,损失率达到了0.002,还比较满意,毕竟这是我的第一个机器识别程序. 这是训练的损失率 先看看项目目录: 其中net.pt是训练后保存 ...

  8. 深度学习项目:男女性别识别【附完整源码】

    性别分类对于人机交互应用和计算机辅助生理或心理分析等商业领域的许多应用至关重要,因为它包含有关男女特征差异的广泛信息. 本次案例收集了接近二十万的男女数据集图片. 文章目录 性别分类简介 使用 Pyt ...

  9. 性别识别_文字性别识别_语音性别识别 - 云+社区 - 腾讯云

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 通过神经网络对声音进行分类,比对声纹特征,实时判断说话人的性别特征,识别准确率高达 ...

最新文章

  1. Cookie和Session的区别与联系
  2. Android专题-常用第三方框架
  3. 云计算公司Zuora提交IPO申请 预计募资1亿美元
  4. Android Telephony分析(五) ---- TelephonyRegistry详解
  5. 8分钟回顾开源巨头 Facebook 的 2016
  6. Win10 OneDrive无法同步文件怎么办?一个命令搞定
  7. 织梦支持html5吗,自动更新HTML FOR DedeCMS V5.3(支持首页,列表页,文章页)
  8. 部署ftp文件共享服务
  9. django.db.utils.OperationalError: (1050, “Table ‘表名‘ already exists)解决方法
  10. 一维搜索——进退法matlab实现(含代码)
  11. 传图识别字体--求字体网
  12. 初学数据分析(一)【利用numpy实现矩阵标准化】
  13. 工业互联网大数据之数据管理与治理的简易理解
  14. C语言switch语句的加减乘除
  15. Wavesurfer.js 生成音频波形图
  16. matlab论文致谢,2020大学毕业论文致谢信
  17. android:使用TextView展示H5文本(含关键字点击和图片)
  18. 爬网页不用写代码?什么操作
  19. html鼹鼠出现不重叠,洛谷 P2285 BZOJ 1207 [HNOI2004]打鼹鼠
  20. Android 12.0 rom定制专栏系列解读

热门文章

  1. Enable Authentication on MongoDB
  2. CF449 C. Jzzhu and Apples
  3. LeetCode - 3Sum Closest
  4. matlab练习程序(PCASVD)
  5. AngularJS之watch
  6. i-doIT 0.9.9-7发布 CMDB配置管理数据库
  7. 如何在Office 2007中查看关于对话框和版本信息
  8. web前端工程师热门岗位技能要求前瞻
  9. 推荐使用typora
  10. 怎样用原生js配合css的transition写个无缝滚动