本发明涉及人工智能,具体涉及一种模拟计算机芯片的模型生成方法。
背景技术:
1、随着人工智能技术的兴起,能实现某些特定功能的人工智能芯片受到广泛关注和应用。
2、然而,现有技术中的人工智能芯片通常均为数字计算机芯片,其通常由图形处理器、现场可编程门阵列以及其他模块电路构成,因此,现有技术中人工智能芯片的运算单元为数字运算单元,人工智能芯片中单个运算单元需要大量的晶体管,例如每个运算单元中可能具有上万个晶体管,并且现有技术中的人工智能芯片的模型中通常仅有几千个运算单元,此时,若要实现对上万个甚至上亿个数据同时进行计算,必须采用大量的人工智能芯片并行对数据进行计算。
3、因此,上述方案中,使用数字计算机芯片作为人工智能芯片时,存在体积较大、速度较慢且功耗较高等缺点。
技术实现思路
1、有鉴于此,本发明提供了一种模拟计算机芯片的模型生成方法,克服了人工智能芯片体积较大、速度较慢且功耗较高等缺点。
2、第一方面,本发明提供了一种模拟计算机芯片的模型生成方法,所述方法包括:
3、获取训练数据集;
4、根据所述训练数据集对神经网络模型进行迭代更新,直至满足迭代条件,以获得所述神经网络模型中各个传递函数的目标参数值;
5、所述神经网络模型中包括n层运算节点,每层运算节点中的任一运算节点都与上层节点中的各个节点通过不同的传递函数连接;各个运算节点之间的传递函数的目标参数值用于对应设置模拟计算机芯片的模型中各个加法器之间的运算单元的参数,从而生成模拟计算机芯片的模型;
6、其中,所述模拟计算机芯片的模型中包括n层加法层,每层加法层中的任一加法器都与上层加法层中的各个加法器通过不同的运算单元连接;所述模拟计算机芯片的模型的拓扑结构与所述神经网络模型的拓扑结构相同。
7、在一种可选的实施方式中,所述训练数据集中包括输入数据以及标签值;所述标签值为将所述输入数据输入所述神经网络模型后,所述神经网络模型的输出节点的预期输出值;
8、根据所述训练数据集对神经网络模型进行迭代更新,包括:
9、将所述输入数据输入神经网络模型,获得所述神经网络模型的实际运算值;
10、根据所述实际运算值与所述标签值之间的误差,对所述神经网络模型中的各个传递函数的参数进行更新。
11、在一种可选的实施方式中,所述根据所述训练数据集对神经网络模型进行迭代更新之前,还包括:
12、获取所述模拟计算机芯片的模型的拓扑结构以及运算单元的电路结构;
13、根据所述模拟计算机芯片的模型的拓扑结构,确定所述神经网络模型中各个运算节点的连接关系;
14、根据所述运算单元的电路结构,确定所述神经网络模型中传递函数的公式。
15、在一种可选的实施方式中,所述神经网络模型中还包括输出层;所述输出层中的输出节点与最后一层运算节点一一对应连接;所述输出节点用于将所述最后一层运算节点的实际输出值,输出为所述神经网络模型的实际运算值。
16、在一种可选的实施方式中,所述根据所述实际运算值与所述标签值之间的误差,对所述神经网络模型中的各个传递函数的参数进行更新,包括:
17、获取第j层的各个运算节点的实际输出值与预期输出值之间的节点误差;2≥j≥n;
18、将所述第j层的各个运算节点的实际输出值与预期输出值之间的节点误差作为因变量,将第j-1层运算节点与第j层运算节点之间的各个传递函数的参数分别作为自变量进行求导,获得所述第j-1层运算节点与第j层运算节点之间的各个传递函数对应的导数值;
19、基于更新系数,以及所述第j-1层运算节点与第j层运算节点之间的各个传递函数对应的导数值,分别对所述第j-1层运算节点与第j层运算节点之间的各个传递函数的参数进行更新;
20、根据更新后的第j-1层运算节点与第j层运算节点之间的各个传递函数,以及所述第j层运算节点的预期输出值,计算所述第j-1层运算节点的预期输出值。
21、在一种可选的实施方式中,所述第j层中存在k个运算节点;其中k≥1;
22、所述根据更新后的第j-1层运算节点与第j层运算节点之间的各个传递函数,以及所述第j层运算节点的预期输出值,计算所述第j-1层运算节点的预期输出值,包括:
23、针对第j-1层运算节点中的任一目标节点,根据所述目标节点与所述第j层中k个运算节点之间的传递函数,以及所述第j层中k个运算节点的预期输出值,获得目标节点的k个更新值;
24、将所述目标节点的k个更新值的均值作为所述目标节点的预期输出值。
25、在一种可选的实施方式中,第1层运算节点的上层节点包括各个输入节点;
26、所述方法还包括:
27、获取第1层的各个运算节点的实际输出值与预期输出值之间的节点误差;
28、将所述第1层的各个运算节点的实际输出值与预期输出值之间的节点误差作为因变量,将对各个输入节点与所述第1层的各个运算节点之间的传递函数的参数分别作为自变量进行求导,获得各个输入节点与所述第1层的各个运算节点之间的传递函数对应的导数值;
29、基于更新系数,以及各个输入节点与所述第1层的各个运算节点之间的各个传递函数对应的导数值,分别对所述各个输入节点与所述第1层的各个运算节点之间的各个传递函数的参数进行更新。
30、在一种可选的实施方式中,所述方法还包括:
31、将大于等于第一阈值的所述各个传递函数的输出值设置为第一阈值,且将小于等于第二阈值的各个传递函数的输出值设置为第二阈值;所述第一阈值大于所述第二阈值。
32、在一种可选的实施方式中,所述传递函数为:
33、
34、其中,x为传递函数的输入值;y为所述传递函数的输出值;w为所述传递函数的第一可调参数;c为常数;vv为传递函数的第一阈值;0为传递函数的第二阈值。
35、在一种可选的实施方式中,所述传递函数为:
36、
37、其中,x为传递函数的输入值;y为所述传递函数的输出值;b为所述传递函数的第二可调参数;a22为增益常数;vv为传递函数的第一阈值;0为传递函数的第二阈值。
38、在一种可选的实施方式中,所述迭代条件包括以下至少一者:
39、迭代次数大于预设次数;
40、神经网络模型的实际输出值与标签值之间的误差小于误差预设阈值。
41、在一种可能的实施方式中,所述根据所述训练数据集对神经网络模型进行迭代更新,直至满足迭代条件之前,还包括:
42、获取初始参数集合;所述初始参数集合中包括各个传递函数的初始参数值;
43、将所述各个传递函数的参数设置为对应的初始参数值。
44、在一种可能的实施方式中,所述各个传递函数的初始参数值为预设的;
45、或者,所述各个传递函数的初始参数值为在指定范围内随机选取得到的。
46、在一种可能的实施方式中,所述方法还包括:
47、获取验证数据集;所述验证数据集中包括验证数据以及对应的标签值;
48、通过迭代更新后的神经网络模型对所述验证数据进行处理,获得验证预测值;
49、根据所述验证预测值以及验证数据对应的标签值,获取所述神经网络模型的预测准确度。
50、在一种可能的实施方式中,所述方法还包括,
51、确定所述各个运算节点之间的传递函数对应的运算单元的地址;
52、根据所述各个运算节点之间的传递函数的目标参数值,按照所述传递函数对应的运算单元的地址,设置所述模拟计算机芯片的模型中的各个加法器之间的运算单元的参数,以生成模拟计算机芯片的模型。
53、在一种可能的实现方式中,所述运算单元中设置有非易失存储单元;
54、所述根据所述各个运算节点之间的传递函数的目标参数值,按照所述传递函数对应的运算单元的地址,设置所述模拟计算机芯片的模型中的各个加法器之间的运算单元的参数,以生成模拟计算机芯片的模型,包括:
55、根据所述各个运算节点之间的传递函数的目标参数值,按照所述传递函数对应的运算单元的地址,设置所述模拟计算机芯片的模型中的各个加法器之间的运算单元中的非易失存储单元的存储数据,以生成模拟计算机芯片的模型。
56、第二方面,本发明提供了一种模拟计算机芯片的模型生成装置,所述装置包括:
57、数据集获取模块,用于获取训练数据集;
58、训练模块,用于根据所述训练数据集对神经网络模型进行迭代更新,直至满足迭代条件,以获得所述神经网络模型中各个传递函数的目标参数值;
59、所述神经网络模型中包括n层运算节点,每层运算节点中的任一运算节点都与上层节点中的各个节点通过不同的传递函数连接;各个运算节点之间的传递函数的目标参数值用于对应设置模拟计算机芯片的模型中各个加法器之间的运算单元的参数,从而生成模拟计算机芯片的模型;
60、其中,所述模拟计算机芯片的模型中包括n层加法层,每层加法层中的任一加法器都与上层加法层中的各个加法器通过不同的运算单元连接;所述模拟计算机芯片的模型的拓扑结构与所述神经网络模型的拓扑结构相同。
61、在一种可能的实现方式中,所述装置还包括:
62、地址确定模块,用于确定各个运算节点之间的传递函数对应的运算单元的地址;
63、参数设置模块,用于根据所述各个运算节点之间的传递函数的目标参数值,按照所述传递函数对应的运算单元的地址,设置所述模拟计算机芯片的模型中的各个加法器之间的运算单元的参数,以生成模拟计算机芯片的模型。
64、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的模拟计算机芯片的模型生成方法。
65、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的模拟计算机芯片的模型生成方法。
66、第五方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的模拟计算机芯片的模型生成方法。
67、综上所述,本技术提供一种模拟计算机芯片的模型生成方法,其利用外部计算机与模拟计算机芯片结合使用,在外部计算机中训练人工智能模型,之后根据人工智能模型的参数对模拟计算机芯片的模型中各运算单元的非易失存储单元的存储数据进行设置调节,实现对运算单元的参数的设置调节,从而生成模拟计算机芯片的模型,且模拟计算机芯片的模型可以实现与训练完成后的人工智能模型相同或相近的功能;同时,由于本技术中的运算单元均由模拟电路构成,使得在相同芯片体积的情况下,生成的模拟计算机芯片的模型具有上万个甚至上亿个运算单元,大大提高人工智能芯片的算力,可实现对上万个甚至上亿个数据同时进行计算,从而使得模拟计算机芯片在相同体积时具有更强的算力以及更快的计算速度。