神经网络的训练方法、装置、电子设备及存储介质

文档序号:32255386发布日期:2022-11-19 07:15阅读:109来源:国知局
神经网络的训练方法、装置、电子设备及存储介质

1.本技术涉及神经网络技术领域,特别涉及一种神经网络的训练方法、装置、电子设备及存储介质。


背景技术:

2.信息时代的基础设施是集成电路电子芯片,过去几十年,集成电路工艺技术的进步是提高计算芯片性能和能效的主要措施之一。然而,随着摩尔定律和登纳德缩放比例定律放缓甚至走向终结,这一方法正在逐渐失效,计算芯片的性能和能效面临瓶颈。光具有物理空间最快的传播速度以及多维多尺度的优势,采用光子替代传统电子进行信息处理的光计算有望构建新一代高性能计算芯片,成为新一代信息产业的重要支撑。尤其随着人工智能算法的深度发展,光在介质中受限传播的物理过程在数学上的表达与深度神经网络算法具有高度的相似性,采用光电神经网络实现逻辑运算有望突破传统电子芯片的能效瓶颈,是实现光电计算机的重要基础。
3.相关技术通过训练可以利用神经网络实现相应的逻辑运算,神经网络训练的本质是网络权重参数的调优。训练过程由信号的正向传播与误差的反向传播两个过程组成。通常,在训练开始时采用对整体网络参数进行全0或随机的方式实现初始化,用于第一次信号正向传播的计算,这种方法对于面向图像识别等智能推理任务具有普适性。
4.然而,当神经网络的训练的目标是实现逻辑运算时,尤其是当输入层神经元规模大,即逻辑运算的位宽较宽时,这种整体网络参数初始化的方法,尚未充分挖掘逻辑运算任务本身的可复用性,训练复杂度高,训练时间长,效率低。


技术实现要素:

5.本技术提供一种神经网络的训练方法、装置、电子设备及存储介质,以解决相关技术利用整体网络参数初始化的方法,无法充分挖掘逻辑运算任务本身的可复用性,训练复杂度高,训练时间长,效率低等问题。
6.本技术第一方面实施例提供一种神经网络的训练方法,包括以下步骤:确定待训练的目标神经网络;按照预设拆分策略将所述目标神经网络拆分成多个结构相同的子网络,并对任意一个子网络进行逻辑运算训练,得到该子网络的权重参数;利用预设拼接策略将每个子网络拼接成整体网络,利用所述整体网络实现相应的逻辑运算,和/或者,将所述整体网络的权重参数作为初始权重参数训练所述目标神经网络,并利用训练完成的所述目标神经网络实现相应的逻辑运算。
7.可选地,在本技术的一个实施例中,所述按照预设拆分策略将所述目标神经网络拆分成多个子网络,包括:按照每个子网络包括第一输入节点、第二输入节点和输出节点的结构,将所述目标神经网络拆分成多个子网络。
8.可选地,在本技术的一个实施例中,对任意一个子网络进行逻辑运算训练,得到该子网络的权重参数,包括:将训练数据输入至所述第一输入节点和所述第二输入节点,通过
所述第一输入节点和所述第二输入节点进行与运算、或运算、非运算中的一种或多种组合逻辑运算训练,直到满足预设条件,停止训练,并得到所述每个子网络的权重参数。
9.可选地,在本技术的一个实施例中,所述目标神经网络包括光学神经网络、电学神经网络和光电混合神经网络中的一种或多种。
10.本技术第二方面实施例提供一种神经网络的训练装置,包括:确定模块,用于确定待训练的目标神经网络;处理模块,用于按照预设拆分策略将所述目标神经网络拆分成多个结构相同的子网络,并对任意一个子网络进行逻辑运算训练,得到该子网络的权重参数;训练模块,用于利用预设拼接策略将每个子网络拼接成整体网络,利用所述整体网络实现相应的逻辑运算,和/或者,将所述整体网络的权重参数作为初始权重参数训练所述目标神经网络,并利用训练完成的所述目标神经网络实现相应的逻辑运算。
11.可选地,在本技术的一个实施例中,所述处理模块,进一步用于按照每个子网络包括第一输入节点、第二输入节点和输出节点的结构,将所述目标神经网络拆分成多个子网络。
12.可选地,在本技术的一个实施例中,所述处理模块,进一步用于将训练数据输入至所述第一输入节点和所述第二输入节点,通过所述第一输入节点和所述第二输入节点进行与运算、或运算、非运算中的一种或多种组合逻辑运算训练,直到满足预设条件,停止训练,并得到所述每个子网络的权重参数。
13.可选地,在本技术的一个实施例中,所述目标神经网络包括光学神经网络、电学神经网络和光电混合神经网络中的一种或多种。
14.本技术第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的神经网络的训练方法。
15.本技术第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的神经网络的训练方法。
16.由此,本技术至少具有如下有益效果:
17.通过将目标神经网络进行拆分成二输入一输出的子网络,对任意一个子网络进行逻辑运算训练得到的权重参数可以作为网络的初始值,通过拼接得到目标神经网络或训练初始权重参数,可大幅度降低训练复杂度,提升训练速度。由此,解决了相关技术利用整体网络参数初始化的方法,无法充分挖掘逻辑运算任务本身的可复用性,训练复杂度高,训练时间长,效率低等问题。
18.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
19.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
20.图1为根据本技术实施例提供的一种神经网络的训练方法的流程图;
21.图2为根据本技术实施例提供的面向逻辑运算的神经网络训练示意图;
22.图3为根据本技术实施例提供一种神经网络的训练装置的方框示意图;
23.图4为根据本技术实施例提供的电子设备的结构示意图。
24.附图标记说明:确定模块-100、处理模块-200、训练模块-300、存储器-401、处理器-402、通信接口-403。
具体实施方式
25.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
26.下面参考附图描述本技术实施例的神经网络的训练方法、装置、电子设备及存储介质。针对上述背景技术中提到的问题,本技术提供了一种神经网络的训练方法,在该方法中,通过将目标神经网络进行拆分成二输入一输出的子网络,对任意一个子网络进行逻辑运算训练得到的权重参数可以作为网络的初始值,通过拼接得到目标神经网络或训练初始权重参数,可大幅度降低训练复杂度,提升训练速度。由此,解决了相关技术利用整体网络参数初始化的方法,无法充分挖掘逻辑运算任务本身的可复用性,训练复杂度高,训练时间长,效率低等问题。
27.具体而言,图1为本技术实施例所提供的一种神经网络的训练方法的流程示意图。
28.如图1所示,该神经网络的训练方法包括以下步骤:
29.在步骤s101中,确定待训练的目标神经网络。
30.本技术实施例可以训练神经网络实现逻辑运算,将有效提高系统的性能,降低功耗,实现能量效率的指数级增长。其中,目标神经网络包括但不限于光学神经网络、电学神经网络和光电混合神经网络中的一种或多种。
31.在步骤s102中,按照预设拆分策略将目标神经网络拆分成多个结构相同的子网络,并对任意一个子网络进行逻辑运算训练,得到该子网络的权重参数。
32.其中,预设拆分策略为按照每个子网络包括第一输入节点、第二输入节点和输出节点的结构,从而将目标神经网络拆分成多个子网络。
33.可以理解的是,神经网络训练的本质是网络权重参数的调优,当神经网络的训练的目标是实现逻辑运算时,尤其是当输入层神经元规模大,即逻辑运算的位宽较宽时,本技术实施例可以将待训练的目标神经网络进行拆分,子网络训练得到的权重参数可以作为网络的初始值,相比于在训练开始时采用对整体网络参数进行全0或随机的方式实现初始化,大大降低了训练的复杂度。
34.在本技术的一个实施例中,对任意一个子网络进行逻辑运算训练,得到该子网络的权重参数,包括:将训练数据输入至第一输入节点和第二输入节点,通过第一输入节点和第二输入节点进行与运算、或运算、非运算中的一种或多种组合逻辑运算训练,直到满足预设条件,停止训练,并得到该子网络的权重参数。
35.本技术实施例的面向算术逻辑运算的神经网络不同于传统面向智能推理任务的神经网络,逻辑运算一般采用按位进行运算,因此每一个输出节点只与两个输入节点相关,通过将目标网络进行拆分成多个二输入一输出的结构和参数相同的子网络,子网络训练得到的权重参数,从而实现相应的逻辑运算。
36.具体而言,如图2所示,逻辑运算的操作数分别是b
x

b1b0和a
x

a1a0,输出是c
x

c1c0。可以直接训练以b0和a0为输入,c0为输出的神经网络实现相应的逻辑运算,将有效提高系统的性能,降低功耗,实现能量效率的指数级增长。
37.在步骤s103中,利用预设拼接策略将每个子网络拼接成整体网络,利用整体网络实现相应的逻辑运算,和/或者,将整体网络的权重参数作为初始权重参数训练目标神经网络,并利用训练完成的目标神经网络实现相应的逻辑运算。
38.其中,预设拼接策略可以根据实际情况进行选择,不作具体限定。
39.可以理解的是,本技术实施例在得到任意子网络的权重参数后,即可利用预设拼接策略将多个同样的子网络拼接成一个整体的目标神经网络,从而可以直接实现相应的逻辑运算。和/或者,将子网络训练得到的权重参数通过拼接得到整体神经网络初始权重参数,并利用初始权重参数训练目标神经网络,可大幅度提升训练速度,使得大规模的网络可以通过拼接多个这样的子网络实现,相比于从随机权重初始值直接训练整个神经网络具有更高的效率,而且能够降低神经网络的训练复杂度,从而减少训练时间,尤其是针对大规模神经网络训练,性能提升更为明显。
40.具体而言,由于逻辑运算是按位进行运算的,多位逻辑运算的神经网络可以通过拆分成多个一位逻辑运算的子网络,拆分成的多个二输入一输出子网络都是一样的结构和参数从而实现相应的逻辑运算。本技术实施例只需要训练一个子网络得到初始权重参数后,即可将多个同样的子网络拼接成一个整体的目标神经网络,这个拼接得到的神经网络如果采用电学神经网络和部分光学神经网络,可以直接实现相应的逻辑运算,对于部分光学神经网络,可以用这个拼接而成的神经网络作为训练的原始参数值进行训练可提高训练的速率。
41.根据本技术实施例提出的神经网络的训练方法,通过将目标神经网络进行拆分成二输入一输出的子网络,对任意一个子网络进行逻辑运算训练得到的权重参数可以作为网络的初始值,通过拼接得到目标神经网络初始权重参数,可大幅度降低训练复杂度,提升训练速度。由此,解决了相关技术利用整体网络参数初始化的方法,无法充分挖掘逻辑运算任务本身的可复用性,训练复杂度高,训练时间长,效率低等问题。
42.其次参照附图描述根据本技术实施例提出的一种神经网络的训练装置。
43.图3是本技术实施例的一种神经网络的训练装置的方框示意图。
44.如图3所示,该神经网络的训练装置10包括:确定模块100、处理模块200和训练模块300。
45.其中,确定模块100,用于确定待训练的目标神经网络;处理模块200,用于按照预设拆分策略将目标神经网络拆分成多个结构相同的子网络,并对任意一个子网络进行逻辑运算训练,得到该子网络的权重参数;训练模块300,用于利用预设拼接策略将每个子网络拼接成整体网络,利用整体网络实现相应的逻辑运算,和/或者,将整体网络的权重参数作为初始权重参数训练目标神经网络,并利用训练完成的目标神经网络实现相应的逻辑运算。
46.在本技术的一个实施例中,处理模块200,进一步用于按照每个子网络包括第一输入节点、第二输入节点和输出节点的结构,将目标神经网络拆分成多个子网络。
47.在本技术的一个实施例中,处理模块200,进一步用于将训练数据输入至第一输入节点和第二输入节点,通过第一输入节点和第二输入节点进行与运算、或运算、非运算中的
一种或多种组合逻辑运算训练,直到满足预设条件,停止训练,并得到每个子网络的权重参数。
48.在本技术的一个实施例中,目标神经网络包括光学神经网络、电学神经网络和光电混合神经网络中的一种或多种。
49.需要说明的是,前述对神经网络的训练方法实施例的解释说明也适用于该实施例的神经网络的训练装置,此处不再赘述。
50.根据本技术实施例提出的神经网络的训练装置,通过将目标神经网络进行拆分成二输入一输出的子网络,对任意一个子网络进行逻辑运算训练得到的权重参数可以作为网络的初始值,通过拼接得到目标神经网络初始权重参数,可大幅度降低训练复杂度,提升训练速度。由此,解决了相关技术利用整体网络参数初始化的方法,无法充分挖掘逻辑运算任务本身的可复用性,训练复杂度高,训练时间长,效率低等问题。
51.图4为本技术实施例提供的电子设备的结构示意图。该电子设备可以包括:
52.存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序。
53.处理器402执行程序时实现上述实施例中提供的神经网络的训练方法。
54.进一步地,电子设备还包括:
55.通信接口403,用于存储器401和处理器402之间的通信。
56.存储器401,用于存放可在处理器402上运行的计算机程序。
57.存储器401可能包含高速ram(random access memory,随机存取存储器)存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
58.如果存储器401、处理器402和通信接口403独立实现,则通信接口403、存储器401和处理器402可以通过总线相互连接并完成相互间的通信。总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component,外部设备互连)总线或eisa(extended industry standard architecture,扩展工业标准体系结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
59.可选的,在具体实现上,如果存储器401、处理器402及通信接口403,集成在一块芯片上实现,则存储器401、处理器402及通信接口403可以通过内部接口完成相互间的通信。
60.处理器402可能是一个cpu(central processing unit,中央处理器),或者是asic(application specific integrated circuit,特定集成电路),或者是被配置成实施本技术实施例的一个或多个集成电路。
61.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的神经网络的训练方法。
62.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行
结合和组合。
63.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
64.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
65.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列,现场可编程门阵列等。
66.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1