一种拖拽式PyTorch神经网络模型可视化系统

文档序号:31116937发布日期:2022-08-12 22:15阅读:491来源:国知局
一种拖拽式PyTorch神经网络模型可视化系统
一种拖拽式pytorch神经网络模型可视化系统
技术领域
1.本发明涉及机器学习领域,尤其涉及一种拖拽式搭建及调试pytorch神经网络模型的可视化系统。


背景技术:

2.深度学习已经被广泛应用到很多领域,例如图像分类,语音识别以及自然语言处理等,并且都取得了很好的效果,在某些领域已经达到甚至超越了人类的表现。
3.然而深度学习的理解及研究并不容易,有很高的入门条件。以代码形式展现的深度学习模型有着较低的可理解性,模型规模越大模型可理解性越来越低,虽然有tensorboard、netron等框架能够在事后可视化模型结构,然而在编写模型代码过程中对结构的理解依旧存在着难题。同时,由于模型行为的不透明性,模型的调试往往是一个极度依赖经验的过程。目前有很多深度学习相关书籍,入门者仍然很难清晰了解其过程。且当前深度学习网络模型层出不穷,面临着模型结构复杂、参数量级高、测试数据量大等难题,在一定程度上限制了深度学习方法的快速推广。


技术实现要素:

4.本发明的目的在于提供一种拖拽式搭建及调试pytorch神经网络模型的可视化系统,该系统方便用户交互式手动拖拽模块搭建神经网络以及反复测试调试方案以选取较优方法修剪模型及调整训练超参数。技术方案如下:
5.一种拖拽式pytorch神经网络模型可视化系统,包括:模型局部模块、整体构建模块、pytorch数据生成模块和调试模块;
6.模型局部模块和整体构建模块用于模型局部模块及整体的构建;用户在模型构建页面拖拽工具栏中的网络层以及模块栏中的局部模块到主页面,在弹出窗口中设置网络层参数,设置主页面内网络层之间连接关系,结构保存为新的局部模块或者作为完整模型;
7.pytorch数据生成模块用于在服务端按照以下步骤生成模型结构数据文件;步骤1,系统深度优先遍历模型结构节点,为模块节点生成对应的结构数据;
8.步骤2,服务端生成pytorch深度学习模型;系统根据模块uid对模块排序,按照顺序逐个生成模块,
9.步骤3,模型生成后进入训练状态;
10.调试模块,用于调试pytorch数据生成模块生成的模型,包括:剪枝模块、历史模块和对比模块;系统跳转到模型调试页面,调试页面展示模型训练过程中准确度以及损失值变化曲线,提供超参数设置工具栏以及模型剪枝模块干预训练过程,历史模块保存用户调试历史,对比模块比较不同调试策略下模型训练情况。
11.作为优选,所述整体构建模块中,所述的网络层及模型局部模块以矩形节点展示,拖拽网络层及模型局部模块时,系统生成uid作为节点的识别标志;局部模块及完整模型中需要包含一个“input”层和一个“output”层分别作为结构的输入口和输出口。
12.作为优选,所述步骤1,深度优先遍历模型结构节点方法中,模型结构包含网络层节点和模块节点,遍历到模块节点时,对相应的模块结构数据遍历,同时使用“/”作为连接符号,将模块节点uid和模块内部节点原uid拼接生成新uid,遍历结束后生成新的结构数据加入到模块字典,key值为模块节点名,value值为模块的数据结构。
13.作为优选,所述步骤2中按模块uid对模块排序,模块uid按“/”分割,根据分割后生成的数组长度对模块降序排序,系统按照排序结果逐个生成模块,生成的模块存入模块字典中,key值为模块uid,value为生成完毕的模块;所述的生成模块,将模块内节点按输入关系拓扑排序,按照拓扑顺序生成网络层或模块,遇见模块节点时,根据模块节点uid从模块字典中取出相应模块;模块全部生成结束后,遍历模型结构数据生成最终模型。
14.作为优选,调试模块还包括:性能模块、模型结构模块和测试模块;性能模块显示模型训练过程中准确度和损失值的变化曲线;历史模块为树形视图,提供了迭代模型调试过程的概述,树的每个分支都链接了来自调试过程的一系列中间模型;对比模块比较来自不同调试策略下模型的性能变化曲线;模型结构模块以流程图显示模型结构;剪枝模块使用两种方式计算卷积层通道重要,以散点图显示,通过刷子选取卷积通道进行剪枝;测试模块分析当前模型在测试数据上的准确性。
15.在上文中结合具体的示例性实施例详细描述了本发明。但是,应当理解,可在不脱离由所附权利要求限定的本发明的范围的情况下进行各种修改和变型。详细的描述和附图应仅被认为是说明性的,而不是限制性的,如果存在任何这样的修改和变型,那么它们都将落入在此描述的本发明的范围内。此外,背景技术旨在为了说明本技术的研发现状和意义,并不旨在限制本发明或本技术和本发明的应用领域。
附图说明
16.为了更清楚地说明本发明中的技术方案,下面将对本发明中的技术使用附图做出简单的说明,将会给本领域的人员更加清晰的认识本技术的性能。
17.图1为本发明中模型构建页面搭建模型流程图;
18.图2为本发明中后端处理流程图;
19.图3为本发明中调试界面;
20.图4为本发明中模型构建页面;
21.图5为本发明中性能模块;
22.图6为本发明中历史模块;
23.图7为本发明中模型结构模块;
24.图8为本发明中剪枝模块;
25.图9为本发明中测试模块;
26.图10为本发明中对比模块。
具体实施方式
27.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
28.如图1-10所示,本发明提出一种拖拽式搭建及调试pytorch神经网络模型的可视
化系统。此系统方便用户交互式手动拖拽模块搭建神经网络以及反复测试调试方案以选取较优方法修剪模型及调整训练超参数。
29.一种拖拽式pytorch神经网络模型可视化系统,包括:模型局部模块、整体构建模块、pytorch数据生成模块和调试模块。
30.具体地,一种拖拽式搭建及调试pytorch神经网络模型的可视化系统,包括以下步骤:
31.(1)模型局部模块及整体构建
32.本发明提供模型构建页面,其中网络层及模块以矩形节点展示,用户拖拽工具栏中的网络层以及模块栏中的模块到主页面,用户手动在弹出窗口中设置网络层参数,设置主页面内网络层之间连接关系,结构可以被保存为新的局部模块或者作为完整模型;拖拽网络层及模块时,系统生成uid作为节点的识别标志;模块及完整模型中需要包含一个“input”层和一个“output”层分别作为结构的输入口和输出口,结构生成新模块后,该模块存入模块栏,用户可以多次重复使用模块搭建更复杂的模型。
33.(2)生成模型结构数据文件
34.系统深度优先遍历模型结构节点,模型结构包含网络层节点和模块节点,遍历到模块节点时,深度拷贝对相应的模块结构数据并进行遍历,同时使用“/”作为连接符号,将模块节点uid和模块内部节点原uid拼接生成新uid,遍历结束后将该结构数据加入到模块字典,key值为模块节点uid,value值为模块的数据结构。具体数据结构如下所示:
35.[0036][0037]
(3)服务端生成pytorch深度学习模型
[0038]
考虑到模块之间存在包含的关系,由于所有节点的实际uid由所在模块uid以及原uid拼接而成,因此通过uid可以计算模块所在层次。首先系统设置module字典用于保存生成的模块实例,获取模块字典的key值列表,将key值按“/”分割,根据分割后生成的数组长度对模块降序排序,按照排序结果逐个生成模块,生成的模块的放入module字典,key值为模块的uid。考虑到模块内各个节点之间存在依赖性,一个节点的输入依赖于另一个节点的输出,因此需要对节点进行排序。本方法设置一个res字典用于保存节点的输出数据,将节点按照输入关系进行拓扑排序,按排序结果逐步生成网络层,网络层的输出存入res字典,key值为节点uid,由于节点中存在模块节点和网络层节点,当检索模块层时,由于更深层的模块已经生成并保存在module字典中,可以直接从module中取出使用。所有模块生成完毕后,从module字典中取出key值为
“”
的最终模型。
[0039]
(4)客户端调试模型
[0040]
调试页面提供数据统计信息可视化功能及超参数调整和修剪模型,依据功能分为6个简洁的可视化交互模块:性能模块、历史模块、对比模块、模型结构图模块、剪枝模块和测试模块;
[0041]
性能模块使用双纵坐标轴显示模型训练过程精确度和损失值变化,蓝色表示精确度变化曲线,绿色表示损失值变化曲线,用户通过上述两个指标的波动情况可以推测模型的训练状态,譬如是否达到最佳状态。
[0042]
历史模块为树形视图,提供了迭代模型调试过程的概述,树的每个分支都链接了来自调试过程的一系列中间模型。模块使用矩形节点表示保存的模型训练状态,节点显示lr、batch、step、acc、loss五个属性,分别表示学习率、数据批大小、训练迭代步、准确度、损失值,其中准确度以进度条形式展示,当前的历史节点以高亮效果突出,节点名为保存训练状态方式。客户端提供两种保存训练状态方式:用户通过save按键手动保存模型状态,生成的历史节点名为“saved”;使用剪枝模块后自动保存模型状态,生成的历史节点名为剪枝卷积层的通道变化状态。选择多个历史节点,被选择的节点使用圆点标记,各自对应的准确度以及损失值变化曲线绘制在对比模块内比较以选择较优方式调试模型。用户通过改变当前历史节点,模型还原到该节点对应的训练状态,然后可以采取其他策略进行调试。
[0043]
对比模块将多个性能变化曲线绘制在同个坐标轴内对比,通过右侧按键可以选择对比准确度变化或者损失值变化,曲线颜色与历史模块内标记圆点一致,用户通过比较性能差异可以选取更好的策略干预模型训练。
[0044]
剪枝模块使用hrank和泰勒展开两种方法计算通道重要性,使用散点图绘制卷积通道,横坐标为泰勒展开结果,纵坐标为hrank结果。用户点击模型结构模块内某卷积层,剪枝模块显示卷积层内各通道重要性,然后使用刷子在散点图中选择部分评分较低的通道,下方进度条表示选取卷积核数量在卷积层内的占比,然后点击右下角绿色按钮进行剪枝。
剪枝后系统自动生成历史节点保存模型状态,节点名称为剪枝卷积层的通道变化状态。
[0045]
模型结构模块使用复合流程图显示模型结构,不同颜色代表不同的网络层类型,与搭建页面的模型结构对比,由于不存在搭建模型操作,无需占用大页面空间,整体布局紧凑,方便用户观察模型结构。
[0046]
测试模块显示模型在测试数据上的准确度,模块显示200张测试图片,蓝色高亮边框表示正确分类图片,红色高亮边框表示错误分类图片。用户点击历史模块右上角按键后,历史模块切换到测试模块。
[0047]
以上所述仅是本发明的优选实施方式,并不用于限制本发明,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1