惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
罗磊的独立博客
V
Visual Studio Blog
爱范儿
爱范儿
H
Help Net Security
J
Java Code Geeks
I
InfoQ
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
Scott Helme
Scott Helme
S
SegmentFault 最新的问题
S
Securelist
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
博客园_首页
B
Blog
F
Fortinet All Blogs
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
S
Secure Thoughts
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Schneier on Security
Project Zero
Project Zero
Martin Fowler
Martin Fowler
C
Cybersecurity and Infrastructure Security Agency CISA
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic

博客园 - Bean.Hsiang

评估和改进 ML.NET 分类器 ML.NET 和 Model Builder 2021年三月更新 ML.NET 推荐引擎中一类矩阵因子分解的缺陷 使用 ML.NET 实现峰值检测来排查异常 使用 ML.NET 识别乐高颜色块 ML.NET 十一月更新 借助AI激发组织创新活力 Virtual ML.NET Hackathon 2020 来啦 ML.NET 九月更新 ML.NET API 和工具八月更新 通过 ML.NET 使用预训练残差网络 ResNet 模型实现手势识别 通过 Continual Learning 提高 ML.NET 模型准确性并增强性能 在WSL2启用cuda进行深度学习尝鲜 基于 ONNX 在 ML.NET 中使用 Pytorch 训练的垃圾分类模型 在 Blazor WebAssembly 静态网站中部署ML.NET机器学习模型 使用 Scikit-learn 和 ML.NET 实现朴素贝叶斯(Naive Bayes)分类器 恢复已取消ML.NET训练中的模型 说说 ML.NET and AutoML 使用ML.NET进行自定义机器学习
4倍速!ML.NET Model Builder GPU 与 CPU 对比测试
Bean.Hsiang · 2021-01-01 · via 博客园 - Bean.Hsiang

当我们使用 Visual Studio 进行机器学习开发时,一般都会推荐安装 ML.NET Model Builder ,这让我们的开发更加可视化,并且按照步骤载入相关的训练集,选择好模型就够了,一切就是如此朴实无华。

说到 ML.NET Model Builder ,之前的更新发布中有提到说,开发者有3种指定的训练环境可选择:本地 CPU,本地 GPU,Azure。我们在无数的机器学习介绍中都了解到,GPU 对于机器学习加速的优势,在 ML.NET 中表现如何呢?说实话,很长一段时间我没有深究过,对于小型图像识别模型,由于图像训练集也很小,训练时长在 CPU 和 GPU 之间相差几乎看不到,所以我决定来点更具挑战性的数据集认真做下对比测试。

在新的测试中我将采用来自 Kaggle 挑战赛的一项计算机视觉方向的任务叫【State Farm Distracted Driver Detection】。这个任务旨在探索一种能够识别开车中的司机分心,有可能导致危险驾驶的图像识别模型。这个任务有一个 1GB 左右的训练用图像集,2.2 w+ 张照片,覆盖了包括打电话、发短信、饮酒、往后看、操作收音机、与他人交谈、化妆等10个分心的标注类型。打开 Visual Studio 后,我在 ML.NET Model Builder 中配置了如下的训练图像分类模型的方案:

CPU 训练

这个训练场景比以往的数据集要重得多。总时间为39.2分钟。实验总时间 : 2353.6729442 秒

------------------------------------------------------------------------------------------------------------------
|                                                     Summary                                                    |
------------------------------------------------------------------------------------------------------------------
|ML Task: image-classification                                                                                   |
|Dataset: C:\Users\bean\AppData\Local\Temp\5e873581-2dab-4d46-911d-cfc0a0455eb1.tsv                              |
|Label : Label                                                                                                   |
|Total experiment time : 2353.6729442 Secs                                                                       |
|Total number of models explored: 1                                                                              |
------------------------------------------------------------------------------------------------------------------

GPU 训练

使用 GPU 后,简直了!以 1/4 的时间完爆 CPU!仅用了9.6 分钟。实验总时间 : 581.1946062

------------------------------------------------------------------------------------------------------------------
|                                                     Summary                                                    |
------------------------------------------------------------------------------------------------------------------
|ML Task: image-classification                                                                                   |
|Dataset: C:\Users\bean\AppData\Local\Temp\cccb2b3f-dbce-45e5-b17e-872b6cc3f116.tsv                              |
|Label : Label                                                                                                   |
|Total experiment time : 581.1946062 Secs                                                                        |
|Total number of models explored: 1                                                                              |
------------------------------------------------------------------------------------------------------------------

结论

GPU 对深度学习的加持再合适不过了,因为它们被设计用于处理的计算类型与深度学习中遇到的计算类型相同,专门处理图像、视频和其他图形的矩阵结构,执行类似放大效果或旋转操作时,本质上做的只是对矩阵应用一些数学变换而已,机器学习过程中的数据运算刚好适配它。另一方面,ML.NET Model Builder 仅依赖于配置 CUDA 10.0 环境的 GPU,大多数 NVIDIA 显卡就能满足。所以没有理由拒绝 GPU 对于 ML.NET 在机器学习中的提升对吧!

引用