新的深度学习例子
最新版本中有35个新的深度学习相关例子。这是很多覆盖的,释放笔记可以干燥,所以我带来了增援。我询问文档团队的成员分享他们创建的新示例,并回答了一些关于为什么他们对此感兴趣的问题。请随时提出以下意见部分的问题!
新的深度网络设计师示例
深网络设计师(DND)自2018年以来一直是深度学习工具箱的旗舰应用程序。上次版本(20A)在应用程序内引入培训,但您只能为图像分类进行培训。在20B培训中,大规模扩展以涵盖更多的深入学习应用。
新功能允许导入和可视化新数据类型,这使得工作流程如时间序列,图像到图像回归和语义分段。这个例子显示如何使用DND训练语义分段网络。
给我们亮点:应用程序此版本中有更多的灵活性;您可以导入任何数据存储并培训适用的任何网络Trainnetwork.。这为培训培训和图像到图像回归工作流程开辟了。您还可以在培训之前直接在应用程序中可视化输入数据。虽然这是一个简单的例子,但它走过这些步骤,并半快速列车。
创建示例时的任何挑战?不是本身的挑战,但这个例子触及了很多组件:语义分段,图像处理,计算机愿景以及如何在应用程序的上下文中使用和解释它。此外,算法使用不平衡所以我也要读到这一点。
还有什么?
显示可视化算法的并排比较可用的可视化算法。所有算法都可以显示热图,但石灰也可以显示出漂亮的超像素区域(如上所示)。
石灰结果也可以通过显示最重要的少数特征来绘制:
创建示例时的任何挑战?此示例是一个很好的延续,从之前的其他可视化工作,因此创建此示例是相当简单的。唯一的挑战是决定函数的名称:我们应该称之为ImageLime,还是只是石灰,甚至是Depeply。我们争论了一段时间。
还有什么?
此示例使石灰几乎像动物检测的语义分段网络!
深度网络设计器可视化输入数据 |
- 我也创造了一个“概念页面“这是尝试和测试应用程序的结果。我想提供您可以立即使用该应用程序的数据。许多其他示例需要清洁和预处理,所以相反,我想提供您可以运行的箱子的禁止数据。如果您从空白MATLAB开始,您可以运行这些代码片段(时间序列,图像,像素等),这些代码片段(时间序列,图像,像素等)可以用作DND工作流的起点。这是用于快速导入数字数据的代码:
datafolder = fullfile(toolboxdir('nnet'),'nndemos','nndatasets','digitdataset');imds = imageageataStore(datafolder,'insertubfolders',true,...'labelsource','foldernames');Imageaugmenter = ImagedataAugmenter('RandRotation',[1,2]);Augimds = AugmentedimageDataStore([28 28],IMDS,'dataAugmentation',Imageaugmenter);Augimds = Shuffle(Augimds);使用这些代码片段作为起点,并尝试适应自己的数据集和应用程序!
- 还有一个图像到图像回归示例,我为那些对语义分段替代品感兴趣的人创建。这个例子使用DND使用Image Deblurring使用DND来使用DND。
- 石灰非常酷:有趣(有用)查看网络实际学习的内容(我们涵盖下面的下一个特色榜样!)
- 有一个新的风格转移例子在GitHub上提供太!
图像石灰 | Grad-Cam | 闭塞敏感性 |
链接到例 | 链接到例 | 链接到例 |
- 顾名思义,函数ImageLime.主要用于图像。但是,它适用于任何使用的网络imageInputlayer.,所以它可以使用时间序列,光谱或甚至是文本数据。
- 这是一个非常有趣的例子,我的同事用作这个例子的增强。她向算法显示了许多动物园动物的图片,然后用石灰在特定的动物身上。
net = googlenet;InputSize = Net.Layers(1).InputSize(1:2);img = imread(“动物.jpg”);IMG = IMResize(IMG,INPUTSIZE);imshow(img)classlist = [分类(“老虎”)分类(“狮子”)分类(“豹”)];[map,featmap,featim] = ImageLime(net,img,classlist);FullMask = Zeros(输入);对于j = 1:numel(classlist)[〜,idx] = max(featimp(:,j));mask = ismember(featmap,Idx);FullMask = FullMask +面具; end maskedImg = uint8(fullMask).*img; imshow(maskedImg)除了这个例子,你喜欢20b的任何其他例子?
- 小公子是新的。这不是超级顺利,但它非常有用。小公子是一种管理和处理自定义培训工作流程数据的新方法。它只是管理定制训练循环和更清洁的数据的更好方式。
- 您不能进行基于形象的卷积,但使用这样的数据,网络可能不需要像复杂一样复杂。
- 另一件需要考虑的是分类数据。传感器数据有时可以是字符串值,例如“开”或“关”而不是数值。深度学习网络不会接受这些值输入,所以你必须使用onehotencode.(也是一个新的函数,使得这种工作流可能会将分类标签转换为二进制文件。
- 此示例的另一个扩展名正在使用两个图像和特征数据在同一网络中。这个例子使用手写数字(图像),角度(特征)作为输入。它使用自定义训练循环来处理不同的输入,但它解锁了一个全新的网络类型。
- 如果您正在进行严重的低级别的东西,您将使用Model函数选项来定义和培训您的网络。这个概念页面显示所有内置层,默认初始化,以及如何自行实现。
- 还有一个新的流程图页面,表明您的特定深入学习问题最适合哪种培训方法。这将有助于您在更简单之间做出决定Trainnetwork.选项,以更高级的自定义训练循环选项。
|
评论
要发表评论,请点击这里登录您的MathWorks帐户或创建新的。