一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

评估CPU多线程环境对深度学习模型训练差异影响的测试方法

2022-05-21 08:28:28 来源:中国专利 TAG:

评估cpu多线程环境对深度学习模型训练差异影响的测试方法
技术领域
1.本发明属于软件工程中深度学习模型可靠性测试领域,具体涉及一种评估cpu多线程环境对深度学习模型训练差异影响的测试方法。


背景技术:

2.深度学习广泛应用于计算机视觉、自然语言处理和虚拟助手等各个领域。可靠的深度学习系统至关重要,尤其是对安全攸关应用领域而言,例如自动驾驶和医疗诊断。
3.出于可复现性和稳定性考虑,我们通常期望深度学习模型应当能在相同条件,即相同的实现框架和硬件平台、使用相同的数据、实验设置和神经网络模型,多次训练运行中具有确定性。我们将这种确定性行为定义如下:在给定相同软件层面和硬件层面的实验条件下,多次重复训练可以生成相同的模型并获得一样的评估结果。
4.然而,深度学习系统通常是不确定性的,即在相同条件下的多次运行会产生不同的模型进而获得不一样的评估结果。这是由软件和硬件两方面引入的不确定性所致。软件层面上,模型训练设置(如权重初始化、打乱批排序)和实现框架(如tensorflow、keras、pytorch)是两个主要影响因素。例如,用户代码中的训练设置和深度学习框架的一些操作通常依赖于随机数生成器(如python random和numpy random)。
5.除了软件层面的因素,硬件环境也会引入不确定性,例如用于训练深度学习系统的gpu或cpu平台。硬件层面引入的不确定性主要是因为并行计算。为了评估cpu层面引入的不确定性影响,本发明提出了一种评估cpu多线程环境对深度学习模型训练差异影响的测试方法。


技术实现要素:

6.发明目的:本发明提出一种评估cpu多线程环境对深度学习模型训练差异影响的测试方法,有助于理解在cpu多线程环境下训练深度学习模型的不确定性影响。
7.技术方案:本发明提出一种评估cpu多线程环境对深度学习模型训练差异影响的测试方法,具体包括以下步骤:
8.(1)在计算平台上使用虚拟机软件建立不同cpu线程数的虚拟机作为测试环境;
9.(2)对步骤(1)中创建的虚拟机配置深度学习模型运行环境;
10.(3)在步骤(2)已经配置好环境的虚拟机中运行相同条件下的深度学习模型多次训练;
11.(4)以步骤(3)中得到的训练数据分析不同cpu线程数环境下深度学习模型的训练差异。
12.进一步地,所述步骤(1)包括以下步骤:
13.(11)使用虚拟机软件创建具有相同内存和硬盘储存大小,但不同cpu线程数的虚拟机;
14.(12)在创建的虚拟机中安装操作系统。
15.进一步地,步骤(2)包括以下步骤:
16.(21)在虚拟机操作系统中安装深度学习模型训练运行所需的依赖软件;
17.(22)对深度学习模型训练运行依赖软件的随机数生成器的种子进行固定设置。
18.进一步地,步骤(3)所述深度学习模型多次训练包括:
19.带有模型选择的默认相同训练:该相同训练不对深度学习模型训练运行依赖软件的随机数生成器的种子进行固定设置,并且使用默认的模型选择方法,然后在不同cpu线程数的虚拟机中使用相同的训练和测试数据运行多次模型训练;
20.带有模型选择的固定种子相同训练:该相同训练对深度学习模型训练运行依赖软件的随机数生成器的种子进行固定设置,并且使用默认的模型选择方法,然后在不同cpu线程数的虚拟机中使用相同的训练和测试数据运行多次模型训练;
21.没有模型选择的固定种子相同训练:该相同训练对深度学习模型训练运行依赖软件的随机数生成器的种子进行固定设置,但不使用任何模型选择方法,然后在不同cpu线程数的虚拟机中使用相同的训练和测试数据运行多次模型训练。
22.进一步地,所述步骤(4)的实现过程如下:
23.在相同cpu线程数环境下进行多次相同训练会产生多个模型,通过统计方法比较不同cpu线程数环境中得到的训练结果来评估cpu多线程环境对深度学习模型训练差异影响。
24.有益效果:本发明的有益效果:本发明可以有效评估cpu多线程环境对深度学习模型训练差异的不确定性影响。
附图说明
25.图1为本发明的流程图;
26.图2为评估cpu多线程环境对深度学习模型训练差异影响的测试框架图。
具体实施方式
27.下面结合附图对本发明作进一步详细描述。
28.如图1、图2所示,本发明提出一种评估cpu多线程环境对深度学习模型训练差异影响的测试方法,其具体实施步骤如下:
29.以测试开源虚拟语音助手模型honk在cpu多线程环境训练差异为例。honk是用pytorch重新实现的用于关键词定位的卷积神经网络模型(cnn)。
30.步骤1:在计算平台上使用虚拟机软件建立不同cpu线程数的虚拟机作为测试环境。
31.首先,使用虚拟机软件创建具有相同内存和硬盘储存大小,但不同cpu线程数的虚拟机。
32.例如,在cpu为intel i9-9900k、主操作系统为windows 10的计算平台上使用虚拟机软件virtualbox分别建立1线程、2线程、6线程和12线程的虚拟机,这些虚拟机均具有24gb内存和500gb硬盘空间。
33.其次,在创建的虚拟机中安装操作系统。
34.例如,虚拟机客操作系统安装linux(ubuntu 18.04)。
35.步骤2:对步骤1中创建的虚拟机配置深度学习模型运行环境;
36.首先,在虚拟机操作系统中安装深度学习模型训练运行所需的依赖软件。例如,安装honk模型运行需要的依赖软件:python、pytorch、numpy、flask等。
37.其次,对深度学习模型训练运行依赖软件的随机数生成器的种子进行固定设置。例如,将pytorch中的torch.manual_seed(seed)、python中的random.seed(seed)、以及numpy中的np.random.seed(seed)的种子(seed)设置为1。
38.步骤3:在步骤2已经配置好环境的虚拟机中运行相同条件下的深度学习模型多次训练。
39.对深度学习模型进行如下三种类型的相同训练:
40.(1)带有模型选择的默认相同训练:该相同训练不对深度学习模型训练运行依赖软件的随机数生成器的种子进行固定设置,并且使用默认的模型选择方法,然后在不同cpu线程数的虚拟机中使用相同的训练和测试数据运行多次模型训练。
41.(2)带有模型选择的固定种子相同训练:该相同训练对深度学习模型训练运行依赖软件的随机数生成器的种子进行固定设置,并且使用默认的模型选择方法,然后在不同cpu线程数的虚拟机中使用相同的训练和测试数据运行多次模型训练。
42.(3)没有模型选择的固定种子相同训练:该相同训练对深度学习模型训练运行依赖软件的随机数生成器的种子进行固定设置,但不使用任何模型选择方法,然后在不同cpu线程数的虚拟机中使用相同的训练和测试数据运行多次模型训练。
43.步骤4:以步骤3中得到的训练数据分析不同cpu线程数环境下深度学习模型的训练差异。
44.在相同cpu线程数环境下进行多次相同训练会产生多个模型,通过统计方法比较不同cpu线程数环境中得到的训练结果来评估cpu多线程环境对深度学习模型训练差异影响。
45.例如,在1线程虚拟机中运行深度学习模型训练n次,得到n个模型的准确度(或训练时间),该结果称为实验组s1;相同地,在12线程虚拟机中运行深度学习模型训练n次,得到n个模型的测试准确度(或训练时间),该结果称为实验组s2。在测试honk模型中,n设定为30。当比较两个实验组s1和s2的时候,零假设是实验组s1和s2的准确度有相似的分布。如果得到的p值小于给定的显著性水平α=0.05,就能以95%的置信度拒绝原假设,并推断该备择假设为真,即实验组s1和s2的准确度(或训练时间)在统计学上是显著不同的。
46.以上内容对本发明所述的一种评估cpu多线程环境对深度学习模型训练差异影响的测试方法的详细说明,但显然本发明的具体实现形式并不局限于此。对于本技术领域的一般技术人员来说,在不背离本发明的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献