大发彩神计划软件10分钟带你打开深度学习大门,代码已开源

  • 时间:
  • 浏览:1

本文经AI新媒体大发彩神计划软件量子位(公众号ID:QbitAI)授权转载,转载请联系出处。

角度学习技术大发彩神计划软件的不断普及,太少的语言还都时会 用来进行角度学习项目的开发,即使是JavaScript原来原来就是在浏览器中运行的用于解决轻型任务的脚本语言。

TensorFlow.js是谷歌推出的基于JavaScript的角度学习框架,它提供的高级API使得开发还都时会 直接在浏览器中运行的角度学习算法变得轻而易举。

这不,美国的一位老哥Gant Laborde使用TensorFlow.js开发了一款是用角度学习技术在浏览器中识别“石头剪刀布”游戏手势的网页应用,放出了demo并将代码开源在了Github上。

对于JavaScript开发者来说,这是打开角度学习大门的极佳入门教材。只需10分钟,你就还都时会 训练三个白多多多准确率可观的手势识别模型,并且 调用摄像头对实时视频中的手势进行识别。

使用运行在浏览器中的角度学习模型识别手势

在一切开始原来

在打开新世界的大门原来,让让要我们一直没办法 做有些准备工作。

在这里,给让让要我们简单地介绍一下典型的角度学习算法的开发步骤,目的是希望读者们在接下来的操作中明确地知道有些人在做那此,而不仅仅是点几个按钮罢了。

这里不不涉及任何艰涩的数学公式,请放心食用。

让让要我们平常所说的角度学习算法,更确切地说,应该是基于角度神经网络的算法(可能说模型)。

这里不不说没办法 知道角度神经网络究竟是个那此东西(你可能没办法 再花百倍于此的时间才有可能搞明白其具体原理),只没办法 知道,它还都时会 视作是三个白多多多函数f,三个白多多多不难 用简单公式表达出来的函数。

所谓函数,就要有自变量x和因变量y。

自变量x,让让要我们一般称之为输入(input),在这个生活那此的问题报告 中就是一张做出“石头”、“剪刀”或“布”手势的手的图像。

而因变量y,让让要我们一般称之为输出(output),在这个生活那此的问题报告 中是三个白多多多取值为0-1的数值,分别对应输入手势是“石头”、“剪刀”和“布”的概率。

让让要我们依靠这个生活函数f得到让让要我们要我的结果,并且 f并全是天上掉下来的,它由人为选则的模型和(小量的)模型参数组成。

其中模型参数往往由小量数据学习得到,这个生活让模型学习参数的过程让让要我们称之为模型训练(train),是角度学习算法开发中最关键的一步。

在这个生活那此的问题报告 中,让让要我们没办法 小量(x,y)数据对来进行训练,也就是小量(图像,手势)数据对,如(图像1,剪刀)、(图像2、石头)、(图像3、布)…… 那此数据对往往没办法 由人为搜集、标注得到。

让让要我们还都时会 通过有些评估指标来衡量模型的好坏程度,比如在这个生活那此的问题报告 中,手势识别的准确度。通过那此评估指标让让要我们还都时会 验证(validate)模型算是经过了充分的训练、效果有没办法 达到让让要我们的预期。可能是,让让要我们还都时会 将其部署投入使用,测试其在现实情况报告中的表现。

总结来说,三个白多多多角度学习算法的开发,没办法 经过数据准备模型选则与训练模型效果评估模型测试这3个阶段。

现在,正式开始!

数据准备

让让要我们原来提到,没办法 小量的(图像,手势)数据对来进行模型的训练。搜集原来的数据无疑是三个白多多多繁琐的工作,拍照、标注……

幸运的是,谷歌工程师Laurence Moroney为让让要我们提供了原来三个白多多多数据集,其中含高了白色背景下的这个生活手势共2892张图像及对应的手势标签,有些例子:

Moroney提供的数据集的有些例子

数据集网址:

http://www.laurencemoroney.com/rock-paper-scissors-dataset/

一切看似全是没办法 的顺利。等等,让让要我们为什么我么我会 把没办法 一坨图像搞进浏览器里去?

在浏览器里执行JavaScript,好像不不说能从本地读取文件。

三个白多多多显见的想法是,让让要我们把训练数据当做网页中的图片,读进DOM的img元素中。让让要我们先将训练数据中每一张图像“拉直“成1像素高的图像,再将所有图像一行一行堆叠在同時 。

比如让让要我们原图大小为64x64,“拉直”原来尺寸为1x4096,训练集的2520张图像堆叠后形成大小为4096x2520的巨大图像(我我觉得它在视觉上可能抛下了意义),像下面原来。

这张巨大图像被称为精灵表单(sprite-sheet),中含了有些小图像。

这个生活网页应用的作者提供了生成sprite-sheet的Python代码,在github仓库根目录的spritemaker文件夹下。

生成的尺寸为4096x2520的sprite-sheet

在demo页面中,点击“Load and Show Examples(读取数据并展示样例)”按钮,听候一阵,让让要我们还都时会 看得人数据被读入了浏览器,并且 一直出现了三个白多多多侧边栏,其中展示了42张从数据集中随机选则的图像。

这个生活侧边栏由TensorFlow Visor提供,还都时会 帮助让让要我们直观地观察模型的训练过程,让让要我们还都时会 随时按下键盘左上面的`键切出或隐藏该面板。

TensorFlow Visor界面中展示的数据样例

模型选则、训练与效果评估

接下来让让要我们将面临抉择。

三个白多多多按钮摆在让让要我们的肩上,“Create Simple Model(创建简单模型)”和“Create Advance Model(创建高级模型)”。

先从简单的来吧,让让要我们点击“Create Simple Model”。按`键切出TensorFlow Visor面板,还都时会 看得人上面一直出现了原来创建的简单模型的网络特征,这是三个白多多多5层的卷积神经网络模型(Flatten层不计入层数),你只没办法 知道它还都时会 看做是三个白多多多三个白多多多相对简单函数的堆叠,并且 这我我觉得是三个白多多多非常简单基础的卷积神经网络模型。

TensorFlow Visor界面中展示的网络特征

点击“Check Untrained Model Results(查看未训练模型结果)”,面板中一直出现了三个白多多多Accuracy(准确率)表格,和三个白多多多矩阵,它们就是这个生活那此的问题报告 中让让要我们对于模型的评价指标。

准确率表格中,每一行是三个白多多多手势类别的准确率值;矩阵中,手势X的行和手势Y的列选则的单元格代表实际是手势X,被算法认为是手势Y的图像数量,原来的矩阵让让要我们叫做“混淆矩阵”,可能它展现了算法对于两两手势容易搞混的程度。

还都时会 看得人,可能让让要我们的模型还没办法 进行训练,统统有算法认为所有输入图像中的手势全是“剪刀”,它还很懵懂。

没办法 就开始训练它吧!点击“Train Your Simple Model(训练简单模型)”!TensorFlow Visor面板中一直出现了“Model Training(模型训练)”一栏,展示了训练中实时的准确率(Accuracy)和损失(Loss)值,正常情况报告下,让让要我们应该还都时会 看得人随着训练的进行,准确率不断上升,而损失不断下降。训练在1三个白多多多epoch(300个batch)后停止。

TensorFlow Visor界面中展示的训练应用程序池池

训练开始后,点击“Check Model After Training(查看训练后模型结果)”。在原来的准确率表格和混淆矩阵下方一直出现了训练后模型的准确率(Trained Accuracy)和混淆矩阵(Trained Confusion Matrix)。

Amazing!训练后,模型在验证数据上对于这个生活手势的识别准确率都超过了95%,混淆矩阵也是健康的(对角线深,其余浅)。

TensorFlow Visor界面中展示的训练后模型效果

你也许会想,“高级的东西总比简单的东西好吧?高级模型效果一定更好。” 我我觉得这是三个白多多多常见的误区。

可能你选则“Create Advance Model(创建高级模型)”,重复上述操作,会发现高级模型不仅训练时间更长,效果就是如简单模型没办法 好。

更进一步,高级模型可能训练时间过长,会一直出现过拟合(overfitting)的情况报告。

过拟合是指,模型太注重完美拟合训练数据,导致 其我我觉得在训练数据上的表现极佳,并且 对于训练数据之外它没办法 见过的数据效果较差,可能让让要我们也会说模型此时的泛化(generalize)能力较差。

模型测试

既然可能有了三个白多多多表现很不错的简单模型,没办法 让让让要我们立刻将它投入使用吧!

点击“Launch Webcam(打开摄像头)”,对准一面白墙,对着摄像头做出不同的手势,应用会定时捕捉视频图像,通过训练好的模型算法,告诉你当前手势属于这个生活类别的概率,是全是很酷炫呢?

使用已训练模型识别视频中的手势

Done!

至此,你可能在完整在浏览器中训练了三个白多多多用于手势分类的角度学习模型,通过有些指标验证了它的有效性,并且 在现实情境中对它进行了测试。

尽管那此步骤很简单,但你了解它们在做那此——欢迎来到角度学习的世界!

传送门

源代码仓库:

https://github.com/GantMan/rps_tfjs_demo

Demo页面:

https://rps-tfjs.netlify.com/

大发彩神计划软件【编辑推荐】

【责任编辑:

张燕妮

TEL:(010)684763006】



点赞 0