CN112329941B - 深度学习模型的更新方法及装置 - Google Patents
深度学习模型的更新方法及装置 Download PDFInfo
- Publication number
- CN112329941B CN112329941B CN202011217898.XA CN202011217898A CN112329941B CN 112329941 B CN112329941 B CN 112329941B CN 202011217898 A CN202011217898 A CN 202011217898A CN 112329941 B CN112329941 B CN 112329941B
- Authority
- CN
- China
- Prior art keywords
- memory area
- ith
- parameter
- current
- updating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Neurology (AREA)
- Feedback Control In General (AREA)
Abstract
本说明书实施例中提供了一种深度学习模型的更新方法及装置。该方法包括对深度学习模型进行多轮更新。在进行任意一轮更新时,可以首先确定第一内存区域,深度学习模型的N个权重参数对应的当前参数值,在第一内存区域中按照第一参数顺序依次连续存储。接着确定N个权重参数在本轮更新中各自对应的梯度值,以及确定第二内存区域。然后按照第一参数顺序,向第二内存区域依次连续写入N个权重参数各自对应的梯度值。最后通过读取N个当前参数值和N个梯度值,计算N个权重参数各自对应的目标值,利用N个目标值分别对应更新N个当前参数值,N个当前参数值通过同一逻辑算子从第一内存区域中读取,N个梯度值通过同一逻辑算子从第二内存区域中读取。
Description
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及深度学习模型的更新方法及装置。
背景技术
随着深度学习被广泛的研究,很多业务可以通过经训练的深度学习模型来执行。例如,可以通过经训练的深度学习模型,实现语音识别任务、计算机视觉任务以及自然语言处理任务等。
通常的深度学习框架/优化器,主要采用梯度下降法对深度学习模型进行多轮更新,从而完成对深度学习模型的更新/训练。其中,深度学习模型的权重参数规模较多,为了加速对训练深度学习模型,可以根据图形处理器(graphics processing unit,GPU)具有强大的并行计算能力的特点,利用GPU来执行对权重参数的大量运算逻辑。例如,可以在确定出深度学习模型中若干权重参数各自对应的梯度值后,通过在GPU上运行相应的逻辑算子,通过逻辑算子对权重参数和其对应的梯度值进行相应的运算,完成对深度学习模型的权重参数进行更新。
希望有一种新的技术方案,以期能够更为快速的更新深度学习模型。
发明内容
本说明书一个或多个实施例中提供了一种深度学习模型的更新方法及装置,可以更为快速的更新深度学习模型。
第一方面,提供了一种深度学习模型的更新方法,包括多轮更新,其中任意一轮更新包括:首先确定第一内存区域,深度学习模型的N个权重参数对应的当前参数值,在第一内存区域中按照第一参数顺序依次连续存储。接着确定N个权重参数在本轮更新中各自对应的梯度值,以及确定第二内存区域。然后按照第一参数顺序,向第二内存区域依次连续写入N个权重参数各自对应的梯度值。最后通过读取N个当前参数值和N个梯度值,计算N个权重参数各自对应的目标值,利用N个目标值分别对应更新N个当前参数值,N个当前参数值通过同一逻辑算子从第一内存区域中读取,N个梯度值通过同一逻辑算子从第二内存区域中读取。
在一种可能的实施方式中,所述第一内存区域通过第一地址信息表示,所述第一地址信息包括所述第一内存区域的起始存储地址,以及所述第一内存区域的大小。
在一种可能的实施方式中,所述第二内存区域通过第二地址信息表示,所述第二地址信息包括所述第二内存区域的起始存储地址,以及所述第二内存区域的大小。
在一种可能的实施方式中,所述内存区域为虚拟内存区域或者物理内存区域。
在一种可能的实施方式中,通过读取N个当前参数值和N个梯度值,计算N个权重参数各自对应的目标值,利用N个目标值分别对应更新N个当前参数值,具体包括:运行第一逻辑算子,所述第一逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,从所述第一内存区域中依次读取N个当前参数值;以及,根据读取的第i个当前参数值和第i个梯度值计算第i个目标值。
在一种可能的实施方式中,所述第一逻辑算子还用于执行:将第一内存区域中的第i个当前参数值更新为第i个目标值。
在一种可能的实施方式中,通过读取N个当前参数值和N个梯度值,计算N个权重参数各自对应的目标值,利用N个目标值分别对应更新N个当前参数值,具体包括:
运行第二逻辑算子,所述第二逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量计算第i个目标值。
在一种可能的实施方式中,还包括:在运行第二逻辑算子之前,确定第三内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮一阶动量,在所述第三内存区域中按照第一参数顺序依次连续存储。
在一种可能的实施方式中,所述第二逻辑算子还用于执行:确定第四内存区域,按照所述第一参数顺序,向所述第四内存区域依次连续写入所述N个权重参数各自的本轮一阶动量。
在一种可能的实施方式中,通过读取N个当前参数值和N个梯度值,计算N个权重参数各自对应的目标值,利用N个目标值分别对应更新N个当前参数值,具体包括:
运行第三逻辑算子,所述第三逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮二阶动量计算第i个目标值。
在一种可能的实施方式中,还包括:在运行第四逻辑算子之前,确定第五内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮二阶动量,在所述第五内存区域中按照第一参数顺序依次连续存储。
在一种可能的实施方式中,所述第三逻辑算子还用于执行:确定第六内存区域,按照所述第一参数顺序,向所述第六内存区域依次连续写入所述N个权重参数各自的本轮二阶动量。
在一种可能的实施方式中,通过读取N个当前参数值和N个梯度值,计算N个权重参数各自对应的目标值,利用N个目标值分别对应更新N个当前参数值,具体包括:
运行第四逻辑算子,所述第四逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值;根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量、本轮二阶动量计算第i个目标值。
在一种可能的实施方式中,一个所述逻辑算子运行在图形处理器GPU的一个方块网格上。
第二方面,提供了一种深度学习模型的更新装置,用于对深度学习模型进行多轮更新,所述装置包括:参数信息确定单元,配置为确定第一内存区域,其中,深度学习模型的N个权重参数对应的N个当前参数值,在所述第一内存区域中按照第一参数顺序依次连续存储;梯度信息确定单元,配置为确定所述N个权重参数在本轮更新中各自对应的梯度值,以及确定第二内存区域;存储处理单元,配置为按照所述第一参数顺序,向所述第二内存区域中依次连续写入所述N个权重参数对应的N个梯度值;更新处理单元,配置为通过读取所述N个当前参数值和所述N个梯度值,计算所述N个权重参数各自对应的目标值,利用N个所述目标值分别对应更新N个所述当前参数值,其中所述N个当前参数值通过同一逻辑算子从所述第一内存区域中读取,所述N个梯度值通过同一逻辑算子从所述第二内存区域中读取。
在一种可能的实施方式中,所述第一内存区域通过第一地址信息表示,所述第一地址信息包括所述第一内存区域的起始存储地址,以及所述第一内存区域的大小。
在一种可能的实施方式中,所述第二内存区域通过第二地址信息表示,所述第二地址信息包括所述第二内存区域的起始存储地址,以及所述第二内存区域的大小。
在一种可能的实施方式中,所述内存区域为虚拟内存区域或者物理内存区域。
在一种可能的实施方式中,所述更新处理单元具体包括:
第一逻辑算子,所述第一逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,从所述第一内存区域中依次读取N个当前参数值;以及,根据读取的第i个当前参数值和第i个梯度值计算第i个目标值。
在一种可能的实施方式中,所述第一逻辑算子还用于执行:将所述第一内存区域中的第i个当前参数值更新为第i个目标值。
在一种可能的实施方式中,所述更新处理单元具体包括:
第二逻辑算子,所述第二逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量计算第i个目标值。
在一种可能的实施方式中,所述更新处理单元还配置为:确定第三内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮一阶动量,在所述第三内存区域中按照第一参数顺序依次连续存储。
在一种可能的实施方式,所述第二逻辑算子还用于执行:确定第四内存区域,按照所述第一参数顺序,向所述第四内存区域依次连续写入所述N个权重参数各自的本轮一阶动量。
在一种可能的实施方式中,所述更新处理单元具体包括:
第三逻辑算子,所述第三逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮二阶动量计算第i个目标值。
在一种可能的实施方式中,所述更新处理单元还配置为:确定第五内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮二阶动量,在所述第五内存区域中按照第一参数顺序依次连续存储。
在一种可能的实施方式中,所述第三逻辑算子还用于执行:确定第六内存区域,按照所述第一参数顺序,向所述第六内存区域依次连续写入所述N个权重参数各自的本轮二阶动量。
在一种可能的实施方式中,所述更新处理单元具体包括:
第四逻辑算子,所述第四逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量、本轮二阶动量计算第i个目标值。
在一种可能的实施方式中,一个所述逻辑算子运行在GPU的一个方块网格上。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机指令,当所述计算机指令在计算设备中执行时,计算设备执行如第一方面中任一项所述的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机指令,所述处理器执行所述计算机指令时,实现如第一方面中任一项所述的方法。
通过本说明书一个或多个实施例中提供的方法及装置,将N个权重参数各自对应的当前参数值存储在同一内存区域中,将N个权重参数各自对应的梯度值存储在同一内存区域中,可以通过同一逻辑算子访问位于同一内存区域中的N个当前参数值,以及通过同一逻辑算子访问位于同一内存区域中的N个当前参数值。如此,有利于通过少量的逻辑算子,对N个权重参数各自对应的当前参数值和梯度值进行元素对元素(elements wise)的操作,更为快速的完成对N个权重参数各自对应的当前参数值进行更新,从而更为快速的完成对深度学习模型的更新。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书实施例利用GPU执行计算任务的示意图;
图2为本说明书实施例中提供的一种深度学习模型的更新方法的流程图;
图3为本说明书实施例中利用GPU更新权重参数的示意图;
图4为本说明书实施例利用权重参数的梯度值更新参数值的流程图之一;
图5为本说明书实施例利用权重参数的梯度值更新参数值的流程图之二;
图6为本说明书实施例利用权重参数的梯度值更新参数值的流程图之三;
图7为本说明书实施例中提供的一种深度学习模型的更新装置的示意图。
具体实施方式
通常的深度学习框架/优化器,比如TensorFlow和PyTorch,主要采用梯度下降法对深度学习模型进行多轮更新,完成对深度学习模型的训练。经训练的深度学习模型,能够用于执行特定的任务,比如执行语音识别任务、计算机视觉任务或者自然语言处理任务等。
通常的,可以利用GPU来加速对深度学习模型的训练过程。例如,对深度学习模型进行单个轮次的更新时,可以在确定出深度学习模型中若干权重参数各自对应的梯度值后,通过在GPU上运行相应的逻辑算子,对权重参数的参数值以及梯度值进行相应的运算,完成对深度学习模型的权重参数进行更新。
图1为利用GPU执行计算任务的示意图。如图1所示,流处理器(streamingprocessor,SP)是GPU的处理单元,一个SP对应一个线程(Thread)。逻辑意义上,GPU可以包括或者运行多个线程/方块网格(Grid),一个grid可以包括多个方块(block),一个block可以包括多个thread,属于同一grid的多个thread可以共享相同的内存区域。
对于作为主机的计算设备,GPU可以集成在该计算设备中,或者通过相应的接口装置与该计算设备通信连接。一个较大的计算任务对应一个逻辑算子(或者称为kernel),逻辑算子可以按照线程网格/方块网格的方式分配到GPU上运行,即一个逻辑算子在GPU上对应一个grid。具体地说,GPU至少可以通过多个grid并发的执行较大的计算任务;将一个较大的计算任务划分为多个较小的任务,由多个block来并发的执行多个较小的任务;将一个较小的任务划分为多个子任务,由多个thread来并发的执行多个子任务。
由于属于不同grid的thread并不共享相同的内存区域,在单次更新深度学习模型时,往往需要对深度学习模型的每个权重参数,均在GPU上启动并运行一次逻辑算子,即GPU需要执行大量的kernel launch操作。研究发现,GPU同时运行的逻辑算子的数量相对较少,而每次执行kernel launch操作均需要消耗相对较长的时间,无疑会对更新深度学习模型的时间造成负面影响。
为了实现更为快速的完成更新深度学习模型,本说明书实施例中提供了一种深度学习模型的更新方法及装置。其中,可以对深度学习模型进行多轮更新。进行任意一轮更新时,可以首先确定第一内存区域,深度学习模型的N个权重参数对应的N个当前参数值,在第一内存区域中按照第一参数顺序依次连续存储。接着确定N个权重参数在本轮更新中对应的N个梯度值,以及确定第二内存区域。然后按照该第一参数顺序,向第二内存区域依次连续写入N个权重参数对应的N个梯度值。最后,通过读取N个当前参数值和N个梯度值,计算N个权重参数各自对应的目标值,利用N个目标值分别对应更新N个当前参数值,其中N个当前参数值通过同一逻辑算子从第一内存区域中读取,N个梯度值通过同一逻辑算子从所述第二内存区域中读取。
通过将N个权重参数各自对应的当前参数值存储在同一内存区域中,将N个权重参数各自对应的梯度值存储在同一内存区域中,可以通过同一逻辑算子访问位于同一内存区域中的N个当前参数值,以及通过同一逻辑算子访问位于同一内存区域中的N个当前参数值。如此,有利于通过少量的逻辑算子,对N个权重参数各自对应的当前参数值和梯度值进行elements wise的操作,能够更为快速的完成对N个权重参数各自对应的当前参数值进行更新,即能够更为快速的完成对深度学习模型的更新。
下面结合附图,对本说明书所提供的各个非限制性实施例进行详细描述。
图2为本说明书实施例中提供的一种深度学习模型的更新方法的流程图。其中,该方法中的部分或全部步骤的执行主体,可以包括部署了深度学习模型的更新装置的计算设备;该计算设备具有或连接了GPU,该计算设备可以包括但不限于终端、服务器或者服务器集群。此外,对深度学习模型进行更新时可以包括多轮更新,任意一轮更新均可以包括如图2中所示的各步骤。
首先,在步骤201,确定第一内存区域,其中,深度学习模型的N个权重参数对应的N个当前参数值,在第一内存区域中按照第一参数顺序依次连续存储。
第一内存区域可以通过第一地址信息表示。第一地址信息可以包括但不限于第一内存区域的起始存储地址,以及第一内存区域的大小。
对深度学习模型进行第一轮更新时,可以根据深度学习模型的权重参数的数量N,以及单个当前参数值的数据量,计算N个权重参数各自对应的当前参数值在内存中需要占用的内存区域的大小;接着根据计算结果向系统内核申请相应大小的内存区域,获得由系统内核返回的第一地址信息;接着根据第一地址信息,按照第一参数顺序,将N个权重参数各自对应的当前参数值依次连续写入第一内存区域。
需要说明的是,第一内存区域是可更新的内存区域。对深度学习模型进行本轮更新,实质上是在第一存储区域中,于存储当前参数值的存储地址上重新写入相应的目标值;重新写入的目标值,可以作为对深度学习模型进行下一轮更新时,相应权重参数对应的当前参数值。
相应的,对深度学习模型进行非第一轮的更新时,本轮更新确定的第一内存区域,是第一轮更新深度学习模型时确定的第一内存区域。
接着,在步骤203,确定N个权重参数在本轮更新中各自对应的梯度值,以及确定第二内存区域。以及,
在步骤205,按照第一参数顺序,向第二内存区域中依次连续写入N个权重参数各自对应的梯度值。
第二内存区域可以通过第二地址信息表示。第二地址信息可以包括但不限于第二内存区域的起始存储地址,以及第二内存区域的大小。
在一些实施例中,可以根据梯度值的数量N,以及单个梯度值的数据量,计算N个梯度值在内存中需要占用的内存区域的大小;接着根据计算结果向系统内核申请相应大小的内存区域,获得由系统内核返回的第二地址信息。
在一些实施例中,可以通过单个GPU来使用大规模的用于训练深度学习模型的训练数据,完成对深度学习模型进行训练。根据该GPU对训练数据的使用情况,计算得到N个权重参数各自的梯度值。
在一些实施例中,可以通过多个GPU来共同使用大规模的用于训练深度学习模型的训练数据。根据多个GPU各自对训练数据的使用情况,计算多个GPU各自对应的一组梯度值。对于单个权重参数而言,每一组梯度值中各自包含一个与该权重参数对应的候选梯度值。此种情况下,需要通过相应的reduce函数,对每个权重参数各自对应的多个候选梯度值进行逻辑运算,得到每个权重参数各自对应的梯度值。
相应的,对于多个GPU中的每个GPU而言,针对该GPU计算得到的一组梯度值,可以按照第一参数顺序依次连续存储在指定的内存区域。如此,用于实现该reduce函数的功能单元,可以从多个内存区域中,快速获取每个权重参数各自对应的多个候选的梯度值,并实施reduce操作。
接着,在步骤207,通过读取N个当前参数值和N个梯度值,计算N个权重参数各自对应的目标值,利用N个目标值分别对应更新N个当前参数值,其中N个当前参数值通过同一逻辑算子从第一内存区域中读取,N个梯度值通过同一逻辑算子从第二内存区域中读取。
依赖于所采用梯度下降更新策略的不同,步骤207中可以启动并运行不同的逻辑算子,不同的逻辑算子各自实现的功能也有所差异。其中,一个逻辑算子运行在GPU的一个grid上。
在一些实施例中,步骤207采用的梯度下降更新策略可以为,根据预设的学习率、权重参数对应的当前参数值和梯度值,确定权重参数的目标值。示例性的,可以根据如下公式1或者其变形确定权重参数对应的目标值。
Ci=Bi-d*Gi (1)
其中,Ci表征第i个权重参数对应的第i个目标值,Bi表征第i个权重参数对应的当前参数值,Gi表征第i个权重参数对应的梯度值,d表征预设的学习率。
相应的,步骤207具体可以包括:在GPU上启动并运行第一逻辑算子,第一逻辑算子用于执行:从第二内存区域中依次读取N个梯度值,从第一内存区域中依次读取N个当前参数值;根据读取的第i个当前参数值和第i个梯度值计算第i个目标值,并且将第一内存区域中的第i个当前参数值更新为第i个目标值。
在一个例子中,参考图3,B1、B2、B3、B4、…、BN共N个当前参数值依次连续存储在第一内存区域,G1、G2、G3、G4、…、GN共N个梯度值依次连续存储在第二内存区域;第一内存区域中的第i个当前参数值、第二内存区域中的第i个梯度值对应N个权重参数中的第i个权重参数。
假设GPU的一个grid包括M个block。该grid运行第一逻辑算子时,block1用于实现从内存中读取数据;block 2至block M-1共M-2个blocks,用于实现对相互对应的当前参数值和梯度值进行elements wise操作;block M用于实现向内存中写入数据。并且,假设单个block包括512个thread,单个当前参数值的数据量为K1 bit,单个梯度值的数据量为K2bit。
在以上假设例子中,该grid上启动并运行第一逻辑算子后,block 1可以从第一内存区域的起始存储地址开始,依次读取大小为(M-2)*512*K1 bit大小的内存区域;以及从第二内存区域的起始存储地址开始,依次读取大小为(M-2)*512*K2 bit大小的内存区域,获得第1~(M-2)*512个权重参数各自对应的当前参数值和梯度值。接着,其中的M-2个blocks各自包含的512个thread,对(M-2)*512个相互对应的当前参数值和梯度值并发的执行逻辑运算,得到第1~(M-2)*512个权重参数各自对应的目标值。最后,由block M将第一内存区域中的第1~(M-2)*512个当前参数值,更新为相应的目标值。
可以理解,该grid可以通过多次执行与前述示例相似的过程,直到完成对N个权重参数各自对应的当前参数值进行更新。这样,在第二内存区域中,当前参数值B1所在地址,会被重新写入第1个目标值C1,即B1会被更新为C1;类似的,B2会被更新C2、B3会被更新为C3、B4会被更新为C4、BN会被更新为CN。
可以理解,以上对grid的相关描述是示例性的,可以分配更多或更少的block,实现从内存区域读取数据、向内存区域写入数据或者其它业务目的;同一个block中可能分配更多或更少的thread来实现elements wise操作。
在一些实施例中,步骤207中可以采用基于一阶动量的自适应梯度下降更新策略。如图4所示,步骤207可以包括如下步骤2071和步骤2072。
步骤2071,确定第三内存区域,对深度学习模型进行上一轮更新时得到的N个权重参数各自的上一轮一阶动量,在第三内存区域中按照第一参数顺序依次连续存储。
其中,对深度学习模型进行第一轮更新时,上一轮一阶动量为0。
步骤2072,在GPU上启动并运行第二逻辑算子,第二逻辑算子用于执行:从第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;从第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量计算第i个目标值。
其中,第i个权重参数在上一轮更新时的上一轮一阶动量,可以由第二逻辑算子从第三内存区域中读取。
示例性的,可根据如下公式2或者其变形确定权重参数的本轮一阶动量。
m(i,t)=E1*m(i,t-1)+(1-E1)*Gi (2)
其中,m(i,t)表征第i个权重参数的本轮一阶动量,E1为常数,m(i,t-1)表征第i个权重参数的上一轮一阶动量,Gi表征第i个权重参数对应的梯度值。
示例性的,可以根据如下公式3或者其变形确定权重参数对应的目标值。
Ci=Bi-d*m(i,t) (3)
其中,Ci表征第i个权重参数对应的第i个目标值,Bi表征第i个权重参数对应的当前参数值,d表征预设的学习率。
相应的,第二逻辑算子还可以用于执行:确定第四内存区域,并按照所述第一参数顺序,向第四内存区域依次连续写入N个权重参数各自的本轮一阶动量。如此,使得N个权重参数各自的本轮一阶动量,能够用于支持深度学习模型的下一轮更新。
在一些实施例中,步骤207中可以采用基于二阶动量的自适应梯度下降更新策略。如图5所示,步骤207可以包括如下步骤2073和步骤2074。
步骤2073,确定第五内存区域,对深度学习模型进行上一轮更新时得到的N个权重参数各自的上一轮二阶动量,在第五内存区域中按照第一参数顺序依次连续存储。
其中,对深度学习模型进行第一轮更新时,上一轮一阶动量为0。
步骤2074,在GPU上启动并运行第三逻辑算子,第三逻辑算子用于执行:从第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮二阶动量计算第i个目标值。
其中,第i个权重参数在上一轮更新时的上一轮二阶动量,可以由第三逻辑算子从第五内存区域中读取。
示例性的,可根据如下公式4或者其变形确定权重参数对应的二阶动量。
V(i,t)=E2*V(i,t-1)+(1-E2)*(Gi) (4)
其中,V(i,t)表征第i个权重参数的本轮二阶动量,E2为常数,V(i,t-1)表征第i个权重参数的上一轮二阶动量,Gi表征第i个权重参数对应的梯度值。
相应的,第三逻辑算子还可以用于执行:确定第六内存区域,并按照第一参数顺序,向第六内存区域依次连续写入N个权重参数各自的本轮二阶动量。如此,使得N个权重参数各自的本轮二阶动量,能够用于支持深度学习模型的下一轮更新。
在一些可能的实施例中,步骤207中可以采用基于一阶动量和二阶动量的自适应梯度下降更新策略。如图6所示,步骤207除了包括前述步骤2071和2073以外,还可以包括步骤2075:运行第四逻辑算子,第四逻辑算子用于执行:从第二内存区域中依次读取N个梯度值;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量、本轮二阶动量计算第i个目标值。
其中,第i个权重参数在上一轮更新时的上一轮一阶动量,可以由第四逻辑算子从第三内存区域中读取的;第i个权重参数在上一轮更新时的上一轮二阶动量,可以由第四逻辑算子从第五内存区域中读取。
示例性的,可通过如下公式5或者其变形确定权重参数对应的目标值。
其中,Ci表征第i个权重参数对应的第i个目标值,Bi表征第i个权重参数对应的当前参数值,d表征预设的学习率,m(i,t)表征第i个权重参数的本轮一阶动量,V(i,t)表征第i个权重参数的本轮二阶动量E为常数。
依赖于计算设备所采用的内存管理方案,前述各个实施例中所述的内存区域,可以是物理内存区域,或者是与物理内存区域相对应的虚拟内存区域。
需要说明的是,在实际应用时,前述的第二逻辑算子、第三逻辑算子以及第四逻辑算子中的任一逻辑算子,还可能被进一步拆分为多个逻辑算子。
在一个例子中,第二逻辑算子包括逻辑算子1和逻辑算子2。逻辑算子1用于实现:从第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量。逻辑算子2用于实现从第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量计算第i个目标值。
基于与前述各个方法实施例相同的构思,本说明书实施例中还提供了一种深度学习模型的更新装置,该装置可以部署在计算设备中,使得该计算设备能够对深度学习模型进行多轮更新。如图7所示,该装置至少可以包括:
参数信息确定单元701,配置为确定第一内存区域,其中,深度学习模型的N个权重参数对应的N个当前参数值,在所述第一内存区域中按照第一参数顺序依次连续存储;
梯度信息确定单元703,配置为确定所述N个权重参数在本轮更新中各自对应的梯度值,以及确定第二内存区域;
存储处理单元705,配置为按照所述第一参数顺序,向所述第二内存区域中依次连续写入所述N个权重参数对应的N个梯度值;
更新处理单元707,配置为通过读取所述N个当前参数值和所述N个梯度值,计算所述N个权重参数各自对应的目标值,利用N个所述目标值分别对应更新N个所述当前参数值,其中所述N个当前参数值通过同一逻辑算子从所述第一内存区域中读取,所述N个梯度值通过同一逻辑算子从所述第二内存区域中读取。
在一些实施例中,所述第一内存区域通过第一地址信息表示,所述第一地址信息包括所述第一内存区域的起始存储地址,以及所述第一内存区域的大小。
在一些实施例中,所述第二内存区域通过第二地址信息表示,所述第二地址信息包括所述第二内存区域的起始存储地址,以及所述第二内存区域的大小。
在一些实施例中,所述内存区域为虚拟内存区域或者物理内存区域。
在一些实施例中,所述更新处理单元707具体包括:
第一逻辑算子,所述第一逻辑算子用于执行:从所述第一内存区域中依次读取N个当前参数值,从所述第二内存区域中依次读取N个梯度值;以及,根据读取的第i个当前参数值和第i个梯度值计算第i个目标值。
在一些实施例中,所述第一逻辑算子还用于执行:将所述第一内存区域中的第i个当前参数值更新为第i个目标值
在一些实施例中,所述更新处理单元707具体包括:
第二逻辑算子,所述第二逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量计算第i个目标值。
在一些实施例中,所述更新处理单元707还配置为:确定第三内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮一阶动量,在所述第三内存区域中按照第一参数顺序依次连续存储。
在一些实施例中,所述第二逻辑算子还用于执行:确定第四内存区域,按照所述第一参数顺序,向所述第四内存区域依次连续写入所述N个权重参数各自的本轮一阶动量。
在一些实施例中,所述更新处理单元707具体包括:
第三逻辑算子,所述第三逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮二阶动量计算第i个目标值。
在一些实施例中,所述更新处理单元707还配置为:确定第五内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮二阶动量,在所述第五内存区域中按照第一参数顺序依次连续存储。
在一些实施例中,所述第三逻辑算子还用于执行:确定第六内存区域,按照所述第一参数顺序,向所述第六内存区域依次连续写入所述N个权重参数各自的本轮二阶动量。
在一些实施例中,所述更新处理单元707具体包括:
第四逻辑算子,所述第二逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值;根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量、本轮二阶动量计算第i个目标值。
在一些实施例中,一个所述逻辑算子运行在GPU的一个方块网格上。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能所对应的计算机指令存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令/代码进行传输,以便这些功能所对应的计算机指令被计算机执行时,通过计算机实现本说明书任意一个实施例中所述的方法。
本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机指令,当所述计算机指令在计算设备中被处理器执行时,计算设备执行本说明书任意一个实施例中提供的深度学习模型的更新方法。
本说明书实施例中还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机指令,所述处理器执行所述计算机指令时,实现本说明书任意一个实施例中提供的深度学习模型的更新方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例中相同、相似的部分互相参见即可,每个实施例中重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (14)
1.一种深度学习模型的更新方法,包括多轮更新,其中任意一轮更新包括:
确定第一内存区域,其中,深度学习模型的N个权重参数对应的N个当前参数值,在所述第一内存区域中按照第一参数顺序依次连续存储;
确定所述N个权重参数在本轮更新中各自对应的梯度值,以及确定第二内存区域;
按照所述第一参数顺序,向所述第二内存区域中依次连续写入所述N个权重参数对应的N个梯度值;
通过读取所述N个当前参数值和所述N个梯度值,计算所述N个权重参数各自对应的目标值,利用N个所述目标值分别对应更新N个所述当前参数值,其中所述N个当前参数值通过同一逻辑算子从所述第一内存区域中读取,所述N个梯度值通过同一逻辑算子从所述第二内存区域中读取;
其中,所述通过读取所述N个当前参数值和所述N个梯度值,计算所述N个权重参数各自对应的目标值,具体包括:
运行第二逻辑算子,所述第二逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量计算第i个目标值;
或者,
运行第三逻辑算子,所述第三逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮二阶动量计算第i个目标值;
或者,运行第四逻辑算子,所述第四逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量、本轮二阶动量计算第i个目标值。
2.根据权利要求1所述的方法,其中,
所述第一内存区域通过第一地址信息表示,所述第一地址信息包括所述第一内存区域的起始存储地址,以及所述第一内存区域的大小;
和/或,
所述第二内存区域通过第二地址信息表示,所述第二地址信息包括所述第二内存区域的起始存储地址,以及所述第二内存区域的大小。
3.根据权利要求1所述的方法,其中,所述内存区域为虚拟内存区域或者物理内存区域。
4.根据权利要求1所述的方法,其中,
还包括:在运行第二逻辑算子之前,确定第三内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮一阶动量,在所述第三内存区域中按照所述第一参数顺序依次连续存储;
和/或,
所述第二逻辑算子还用于执行:确定第四内存区域,按照所述第一参数顺序,向所述第四内存区域依次连续写入所述N个权重参数各自的本轮一阶动量。
5.根据权利要求1所述的方法,其中,
还包括:在运行第三逻辑算子之前,确定第五内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮二阶动量,在所述第五内存区域中按照所述第一参数顺序依次连续存储;
和/或,
所述第三逻辑算子还用于执行:确定第六内存区域,按照所述第一参数顺序,向所述第六内存区域依次连续写入所述N个权重参数各自的本轮二阶动量。
6.根据权利要求1至5中任一所述的方法,其中,一个所述逻辑算子运行在图形处理器GPU的一个方块网格上。
7.一种深度学习模型的更新装置,用于对深度学习模型进行多轮更新,所述装置包括:
参数信息确定单元,配置为确定第一内存区域,其中,深度学习模型的N个权重参数对应的N个当前参数值,在所述第一内存区域中按照第一参数顺序依次连续存储;
梯度信息确定单元,配置为确定所述N个权重参数在本轮更新中各自对应的梯度值,以及确定第二内存区域;
存储处理单元,配置为按照所述第一参数顺序,向所述第二内存区域中依次连续写入所述N个权重参数对应的N个梯度值;
更新处理单元,配置为通过读取所述N个当前参数值和所述N个梯度值,计算所述N个权重参数各自对应的目标值,利用N个所述目标值分别对应更新N个所述当前参数值,其中所述N个当前参数值通过同一逻辑算子从所述第一内存区域中读取,所述N个梯度值通过同一逻辑算子从所述第二内存区域中读取;其中,
所述更新处理单元具体包括第二逻辑算子,所述第二逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量计算第i个目标值;
或者,
所述更新处理单元具体包括第三逻辑算子,所述第三逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值,根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮二阶动量计算第i个目标值;
或者,
所述更新处理单元具体包括第四逻辑算子,所述第四逻辑算子用于执行:从所述第二内存区域中依次读取N个梯度值;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮一阶动量,计算第i个权重参数的本轮一阶动量;根据读取的第i个梯度值和第i个权重参数在上一轮更新时的上一轮二阶动量,计算第i个权重参数的本轮二阶动量;从所述第一内存区域中依次读取N个当前参数值,根据读取的第i个当前参数值和第i个权重参数的本轮一阶动量、本轮二阶动量计算第i个目标值。
8.根据权利要求7所述的装置,其中,
所述第一内存区域通过第一地址信息表示,所述第一地址信息包括所述第一内存区域的起始存储地址,以及所述第一内存区域的大小;
和/或,
所述第二内存区域通过第二地址信息表示,所述第二地址信息包括所述第二内存区域的起始存储地址,以及所述第二内存区域的大小。
9.根据权利要求7所述的装置,其中,所述内存区域为虚拟内存区域或者物理内存区域。
10.根据权利要求7所述的装置,其中,所述更新处理单元还配置为:
确定第三内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮一阶动量,在所述第三内存区域中按照第一参数顺序依次连续存储;
和/或,
所述第二逻辑算子还用于执行:确定第四内存区域,按照所述第一参数顺序,向所述第四内存区域依次连续写入所述N个权重参数各自的本轮一阶动量。
11.根据权利要求7所述的装置,其中,
所述更新处理单元还配置为:确定第五内存区域,对所述深度学习模型进行上一轮更新时得到的所述N个权重参数各自的上一轮二阶动量,在所述第五内存区域中按照第一参数顺序依次连续存储;
和/或,
所述第三逻辑算子还用于执行:确定第六内存区域,按照所述第一参数顺序,向所述第六内存区域依次连续写入所述N个权重参数各自的本轮二阶动量。
12.根据权利要求7至11中任一所述的装置,其中,一个所述逻辑算子运行在图形处理器GPU的一个方块网格上。
13.一种计算设备,包括存储器和处理器,所述存储器中存储计算机指令,所述处理器执行所述计算机指令时,实现权利要求1-6中任一项所述的方法。
14.一种计算机可读存储介质,用于存储计算机指令,当所述计算机指令在计算设备中运行时,所述计算设备执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011217898.XA CN112329941B (zh) | 2020-11-04 | 2020-11-04 | 深度学习模型的更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011217898.XA CN112329941B (zh) | 2020-11-04 | 2020-11-04 | 深度学习模型的更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112329941A CN112329941A (zh) | 2021-02-05 |
CN112329941B true CN112329941B (zh) | 2022-04-12 |
Family
ID=74323903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011217898.XA Active CN112329941B (zh) | 2020-11-04 | 2020-11-04 | 深度学习模型的更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112329941B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794411B (zh) * | 2022-12-27 | 2023-05-30 | 阿里巴巴(中国)有限公司 | 模型的数据处理系统、方法和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017185257A1 (zh) * | 2016-04-27 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行Adam梯度下降训练算法的装置及方法 |
CN107341132B (zh) * | 2016-04-29 | 2021-06-11 | 中科寒武纪科技股份有限公司 | 一种用于执行AdaGrad梯度下降训练算法的装置和方法 |
CN107341541B (zh) * | 2016-04-29 | 2021-01-29 | 中科寒武纪科技股份有限公司 | 一种用于执行全连接层神经网络训练的装置和方法 |
US11934945B2 (en) * | 2017-02-23 | 2024-03-19 | Cerebras Systems Inc. | Accelerated deep learning |
JP7211020B2 (ja) * | 2018-11-05 | 2023-01-24 | 株式会社リコー | 学習装置および学習方法 |
EP3889846A4 (en) * | 2019-01-16 | 2022-06-01 | Huawei Cloud Computing Technologies Co., Ltd. | METHOD AND SYSTEM FOR TRAINING DEEP LEARNING MODELS |
-
2020
- 2020-11-04 CN CN202011217898.XA patent/CN112329941B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112329941A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230229978A1 (en) | Debugging correctness issues in training machine learning models | |
US11461637B2 (en) | Real-time resource usage reduction in artificial neural networks | |
US11928595B2 (en) | Method of managing data representation for deep learning, method of processing data for deep learning and deep learning system performing the same | |
WO2021057807A1 (zh) | 深度学习模型生成方法、装置、设备及存储介质 | |
CN112052958A (zh) | 模型训练的方法、装置、设备及计算机可读存储介质 | |
EP2738675B1 (en) | System and method for efficient resource management of a signal flow programmed digital signal processor code | |
US20210357740A1 (en) | Second-order optimization methods for avoiding saddle points during the training of deep neural networks | |
US20230196113A1 (en) | Neural network training under memory restraint | |
CN112329941B (zh) | 深度学习模型的更新方法及装置 | |
CN111782181A (zh) | 代码生成方法、装置、电子设备以及存储介质 | |
JP5782265B2 (ja) | 行列計算処理方法、プログラム及びシステム | |
CN112306452A (zh) | 归并排序算法处理业务数据的方法、装置及系统 | |
CN108460453B (zh) | 一种用于ctc训练的数据处理方法、装置及系统 | |
JP2020190895A (ja) | 情報処理装置、情報処理プログラム及び情報処理方法 | |
CN114298329A (zh) | 一种模型训练方法、装置、设备及存储介质 | |
CN113986488A (zh) | 计算任务的调度方法、装置、计算机设备及存储介质 | |
CN114723024A (zh) | 用于存算一体芯片的基于线性规划的神经网络映射方法 | |
JP2020190896A (ja) | 情報処理装置、情報処理プログラム及び制御方法 | |
JP6548209B2 (ja) | 処理装置、処理方法、及び、プログラム | |
CN116187458B (zh) | 量子电路处理方法、装置及电子设备 | |
WO2023199479A1 (ja) | 学習装置、学習方法、および、学習プログラム | |
CN116167447B (zh) | 量子电路处理方法、装置及电子设备 | |
CN114996008B (zh) | Ai计算图多后端协同计算方法及装置 | |
WO2024023947A1 (ja) | 学習装置、学習方法、および、学習プログラム | |
US11468304B1 (en) | Synchronizing operations in hardware accelerator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |