这些模型针对特定数据集进行了训练,并经过了准确性和处理速度的证明。开发人员需要评估 ML 模型,并确保它在部署之前满足预期的特定阈值和功能。有很多实验可以提高模型性能,在设计和训练模型时,可视化差异变得至关重要。TensorBoard 有助于可视化模型,使分析变得不那么复杂,因为当人们可以看到问题所在时,调试变得更加容易。
训练 ML 模型的一般实践
一般做法是使用预先训练的模型并执行迁移学习,以便为类似的数据集重新训练模型。在迁移学习期间,神经网络模型首先针对与正在解决的问题类似的问题进行训练。然后,将训练模型中的一个或多个层用于针对感兴趣的问题进行训练的新模型中。
大多数时候,预训练模型采用二进制格式,这使得获取内部信息并立即开始处理变得困难。从组织的业务角度来看,使用一些工具来深入了解模型以缩短项目交付时间是有意义的。
有几个可用选项可用于获取模型信息,例如层数和相关参数。模型摘要和模型图是基本选项。这些选项非常简单,考虑了几行实现,并提供非常基本的详细信息,如层数、层类型和每层的输入/输出。
但是,模型摘要和模型图对于以协议缓冲区的形式理解任何大型复杂模型的每个细节并不那么有效。在这种情况下,使用 TensorBoard 这个 TensorFlow 提供的可视化工具更有意义。考虑到它提供的各种可视化选项,如模型、标量和指标(训练和验证数据)、图像(来自数据集)、超参数调优等,它非常强大。
用于可视化自定义模型的模型图
此选项尤其有助于以协议缓冲区的形式接收自定义模型,并且在进行任何修改或训练之前需要了解它。如下图所示,在电路板上可视化了顺序 CNN 的概述。每个块代表一个单独的图层,选择其中一个块将在右上角打开一个窗口,其中包含输入和输出信息。
如果需要进一步的信息,关于各个块内的内容,只需双击块,这将展开块并提供更多详细信息。请注意,一个块可以包含一个或多个块,这些块可以逐层扩展。选择任何特定操作时,它还将提供有关相关处理参数的更多信息。
用于分析模型训练和验证的标量和指标
机器学习的第二个重要方面是分析给定模型的训练和验证。从精度和速度的角度来看,性能对于使其适用于现实生活中的实际应用非常重要。在下图中,可以看出模型的准确性随着周期/迭代次数的增加而提高。如果训练和测试验证不符合标准,则表明某些内容不正确。这可能是欠拟合或过度拟合的情况,可以通过修改图层/参数或改进数据集或两者来纠正。
图像数据,用于可视化数据集中的图像
顾名思义,它有助于可视化图像。它不仅限于可视化数据集中的图像,而且还以图像的形式显示混淆矩阵。此矩阵表示检测各个类对象的准确性。如下图所示,该模型将外套与套头衫混淆了。为了克服这种情况,建议改进特定类的数据集,以便为模型提供可区分的特征,以便更好地学习,从而提高准确性。
超参数调优,以实现所需的模型精度
模型的准确性取决于输入数据集、层数和相关参数。在大多数情况下,在初始训练期间,精度永远不会达到预期的精度,并且除了数据集之外,还需要考虑层数、层类型、相关参数。此过程称为超参数优化。
在此过程中,提供了一系列超参数供模型选择,并且使用这些参数的组合运行模型。每个组合的准确性都会记录在电路板上并可视化。它纠正了手动训练模型所消耗的工作量和时间,这些工作和时间将针对超参数的每个可能组合进行。
用于分析模型处理速度的分析工具
除了准确性之外,处理速度是任何模型同样重要的方面。有必要分析单个块消耗的处理时间,以及是否可以通过进行一些修改来减少处理时间。分析工具提供了具有不同时期的每个操作所消耗的时间的图形表示。通过这种可视化,人们可以轻松查明消耗更多时间的操作。一些已知的开销可能是调整输入大小,从Python转换模型代码,或者在CPU而不是GPU中运行代码。处理好这些事情将有助于实现最佳性能。
总的来说,TensorBoard是一个很好的工具,有助于开发和训练过程。来自标量和指标、图像数据和超参数优化的数据有助于提高准确性,而分析工具有助于提高处理速度。TensorBoard还有助于减少所涉及的调试时间,否则这肯定会是一个很大的时间框架。
审核编辑:郭婷
-
电路板
+关注
关注
140文章
4903浏览量
97376 -
机器学习
+关注
关注
66文章
8375浏览量
132397
发布评论请先 登录
相关推荐
评论