深度学习

理解和使用深度学习网络

深度学习在行动-第3部分

大家好!这是约翰娜,史蒂夫让我接管这个博客不时谈论深度学习。 我回来了,另一个集:

“深度学习在行动:酷”项目在MathWorks创建

这旨在给你在MathWorks了解我们在做什么。 今天的演示“幸运之轮”或者“你签MATLAB ?”这是系列文章的第三篇文章,包括:
开发人员的演示是王约书亚领导一个团队,参与MathWorks黑客的一天,快乐的一天,开发者MathWorks得到24小时工作项目与MATLAB的选择。手语的团队决定工作项目,我被吸引到这个例子因为# 1)这个演示使用图像,# 2)这个演示使用深度学习,和# 3)这个演示使用MATLAB。
当我到达最初杰克,我有这反应…
…它不仅是酷,MathWorks工具可以实现所有这一切在一天(我们的编码所有发生在星期三),但它确实关系与我们的社会使命。
我很好奇他们是如何在24小时运行,所以我要求看代码。
查看和运行代码后,似乎有很大一部分的工作是一个很好的用户界面在MATLAB看起来像幸运之轮:完整的纺车和玩游戏与对手的能力。看到游戏在行动:
用户界面在MATLAB是伟大的,但不是唯一的深度学习。对于这篇文章的其余部分,我想走过的深度学习部分应用程序:他们如何建造了CNN识别字母。我问杰克几个问题,你问任何问题提供了一个机会Josh和团队在评论部分。

在MATLAB演示:手语
这个演示的基础是CNN确定哪些字母被签署,通过z .这里有一些样本图像的随机字母和相应的图片:
> > = imds.splitEachLabel样品(1“随机”真实);> >蒙太奇(样本)
这些影像取自一个训练数据集,可以从GitHub下载在这里。

深入学习代码
本节通过代码创建和培养网络四部分:
  1. 加载数据集
  2. 网络负载
  3. 修改网络
  4. 设置培训选项
% %加载数据imd = imageDatastore (“数据集”,……“IncludeSubfolders”,真的,…“LabelSource”、“foldernames”);[imdsTrain, imdsValidation] = splitEachLabel (imd, 0.7,“随机”);
% %负载网络网= inceptionv3 ();lgraph = layerGraph(净);图(“单位”、“规范化”、“位置”(0.1 - 0.1 0.8 - 0.8));情节(lgraph)

呵!Inception-v3是一个复杂的结构。

注意:如果您没有Inception-v3下载,只是打字
> > inceptionv3
在命令行上提供一个链接到下载模式。
所有模型的列表,包括新的ONNX模型转换器)可以在这里找到://www.tatmou.com/金宝搏官方网站solutions/deep-learning/models.html
接下来,更改最后一层反映数据集的类的数量。因为这是DAG网络,添加层然后验证网络正确贯通。
% %编辑架构inputSize = net.Layers (1) .InputSize;lgraph = removeLayers (lgraph, {“预测”、“predictions_softmax”、“ClassificationLayer_predictions”});numClasses =元素个数(类别(imdsTrain.Labels));newLayers = [fullyConnectedLayer numClasses,“名称”、“俱乐部”、“WeightLearnRateFactor”10“BiasLearnRateFactor”(10)softmaxLayer“名称”、“softmax”)classificationLayer (“名称”、“classoutput”));lgraph = addLayers (lgraph newLayers);lgraph = connectLayers (lgraph,“avg_pool”、“俱乐部”);
接下来,设置培训选项:
层= lgraph.Layers;连接= lgraph.Connections;层(一一驳斥)= freezeWeights(层(一一驳斥));lgraph = createLgraphUsingConnections(层,连接);pixelRange = 30 [-30];imageAugmenter = imageDataAugmenter (…“RandXReflection”,真的,…“RandXTranslation”,pixelRange,…“RandYTranslation”,pixelRange);augimdsTrain = augmentedImageDatastore (inputSize (1:2), imdsTrain)……“DataAugmentation”,imageAugmenter);augimdsValidation = augmentedImageDatastore (inputSize (1:2), imdsValidation);选择= trainingOptions (“个”,……“MiniBatchSize”10…“MaxEpochs”6……“InitialLearnRate”1的军医,……“详细”,真正的);
老实说,我还没有爱上增强图像数据存储(因为我不喜欢额外的代码行原本是一个非常简单和容易阅读的部分),但它日益增长的对我在这个例子中,因为它允许您创建额外的样本图像使用翻译,反射,和可伸缩性。它还调整图像的大小适当的网络所需的大小。
最后,训练网络。
网= trainNetwork (augimdsTrain、lgraph选项);
注意:我使用我的旧特斯拉训练网络K40 GPU卡和花了大约1小时15分钟。我以来大幅削减训练数据的大小事情似乎比我要长,所以我想象这需要更长时间的训练集。

问答与杰克
1。首先,我要问,质量工程是什么?你做什么工作?
质量工程MathWorks一群软件工程师建造的基础设施和综合测试环境支持和冠军MathWorks”主要目标的缺陷,功能丰富的软件给我们的客户。金宝app具体地说,我在网上工作和云服务力量MathWorks”与MATLAB在线产品,MATLAB移动和MATLAB平地机。
2。你与深度学习的关系是什么?你工作在深度学习的角色,或者只是感兴趣以外的工作,或都有?
我不直接在MathWorks深度学习在我的角色。然而,最近机器学习的进步有很大的潜力将客户如何使用我们的产品在世界联系日益紧密的今天,我们的黑客天项目旨在展示一种方法我们可以使用深度学习科学计算更直观,上下文和访问。下载188bet金宝搏
3所示。谁的主意是一个手语的项目,为什么?
使MATLAB访问任何人,包括那些听力有障碍,是我们的使命的一个重要组成部分提供的最终计算环境技术计算、可视化、设计、仿真和实现。此外,使MATLAB更容易通过手势控制将加快工程和科学的环境中通过允许其使用一个人可能没有传统的输入机制,如手术室或工厂。
4所示。你为什么选择学习转移Inception-v3吗?
《盗梦空间》像GoogLeNet v3的精度高于模型,在MATLAB和很容易的例子。
5。你验证精度大约是什么?
不熟悉美国手语的人,大概70%左右。某些字母非常相似,因此我们的模型更难以区分,如M和N,我们的训练数据集是相当同质的——从一个人的右手在相同背景的前面。鉴于这是一个单日的努力,我们没有花很多时间优化模型或改善训练数据。
6。你6时代的理由是什么?这是训练时间,或准确性?如果你有更多的时间,你会再训练?
我不认为我们有任何真正的原因,甚至也不是每个人都意识到我们选择6时代——我们把MATLAB中可用的违约或Github项目,我们使用一个初始原型。
感谢团队的演示(整个团队包括:Anil Patro口服延迟,Harshad Tambekar, Krishan沙玛,罗希特·迈克尔·Broshi和莎拉伯克)感谢杰克花时间带我通过它!我希望你喜欢它。你还有什么问题想问的团队?请在下面留下你的评论! (希望他们不介意我把团队的照片。祝贺工作做得好!)
|
  • 打印
  • 发送电子邮件

コメント

コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。