从系列:深层神经网络
乔•Hicklin MathWorks
实验管理是一个应用程序训练,微调,并解释你的深度学习网络在各种初始条件下。看看如何使用深度学习实验:
嗨。我叫乔·希克林。我是MathWorks的高级开发人员。我将向您展示如何使用实验管理器使您的深度学习项目产生更好的结果,速度更快,花费更少的工作。
当我想要创造出最好的深度学习解决方案时,我会进行大量实验,看看哪种策略最有效。我会尝试不同的训练数据集或训练数据的不同处理,我会尝试不同的网络架构或网络中的不同参数,我会尝试不同的训练选项,看看哪种策略能产生最好的结果。
所有这些实验是我的项目中最耗时的部分,在实验经理出现之前,我做了一个相当混乱的工作。我将编写这样一个脚本,用于设置训练数据、设置网络、设置训练选项,最后训练网络。
我会运行它,看看网络的运行情况,然后再尝试其他方法。我会编辑脚本,然后再运行一次。我会说,如果我想在这一层尝试更多渠道,或者如果我想要一个不同的学习速度呢?
我会通过各种选择的不同组合来找出哪个网络表现最好。当我全部完成时,我认为我已经覆盖了大部分领域,但我不是很确定。为了验证或恢复之前的结果,我会反复进行一些实验。
实验经理解决了所有这些问题。让我们看看我一直在做的一个实验经理项目。到应用程序库,选择实验管理器。当出现Experiment Manager时,我将打开一个预先存在的项目。在这里。
这是我的项目。我的项目有三个实验,一个叫数据集,一个叫网络,一个叫训练选项。我们要看看第一个实验的结果,数据集。
在这个实验中,我试图弄清楚我是否使用了足够的数据。所以我做了四个不同的试验。每一个都使用不同数量的数据或有或没有增加。这些试验已经进行了,而且已经结束了。
对于每一个试验,我都能看到它们花费了多长时间,训练的准确性是多少,验证的准确性是多少,以及其他一些东西。对于任何我想要的试验,我都可以看训练图。我们会重现那个场景,这是那次审判的训练场景。这是这次审判的训练场地。
我也可以看看每次试验的混淆矩阵。那是一组——那是一个实验,一组我做的实验的实验。我做了另一个实验。我们将看看这些结果。这是在尝试不同的网络。
我尝试了一个基本的网络。我尝试了MobileNet,两层网络和三层网络。同样的,对于每一个,我可以看训练网络,我可以看训练图之类的东西。
其中一个网络没有工作。我试过MobileNet,但我的机器上没有MobileNet。但这并不能阻止实验经理。它注意到了这个错误,并继续进行这四个实验。
在我的第三个实验中,你可以看到我没有任何结果。我还没做过这个。我们现在就开始吧。如果双击Training Options,就会看到前面编写的实验描述。
在这个实验中,我将对四个参数进行详尽的扫描。我在这里给它们命名。每个参数都有一组要覆盖的值。这意味着它将对这四个参数的每一个值组合进行试验。
我想这将导致48个不同的试验。这很多,所以我要使用并行并行地运行这些东西。我现在就开始。
所以我们在这里看到的是这个表格包含了它将要运行的48次试验。开始了前12个,剩下的还在等着。如果我们看这里,我们可以看到它结束于0。现在有12个人在跑步。42个已经排好了,还没有崩溃。总共有54次试验。
这12项试验已经开始。我们可以看着他们进步,看着他们离去。这些试验结束后,就会开始下一个试验。它会慢慢地通过我们需要完成的所有不同的试验。
你可以看到每次试验都使用了哪些特定的参数组合。第一次试验使用该求解器的两个史诗,学习率和最小批大小。当它完成的时候,它会遍历我要求的54种不同排列。
这要花很长时间。所以我们不会坐在这里等它。但是当它完成的时候,我们就能看到所有这些了。让我们让时钟走一到两分钟。
(时钟的滴答声)
好的。这是完成了。实验经理已经为我们训练了54个神经网络。在现实生活中,我们可能得出去吃午饭,或者晚上回家,第二天再回来。但它已经完成了所有54项。
这些结果是可重复的,因为实验管理器已经保存了运行所有内容的脚本。它保存了每次试验所用的参数。它甚至保存了训练有素的网络,你可以导出到工作空间,以进一步工作。
如果我们想知道什么是最好的,我们可以根据验证精度排序看上面那个用了这个求解器,这么多,这个学习率,诸如此类的东西。你可以比较一下,看看哪种策略效果最好。
这就是实验管理器可以为你自动化的实验的一个例子。在下一个视频中,我将向你展示如何让实验经理为我做这件事。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。