1.一种用于执行生成对抗网络的处理装置,其特征在于,包括:
存储器,用于接收输入数据,所述输入数据包括随机噪声和参考数据,以及存储判别器神经网络参数与生成器神经网络参数;
运算器,用于将随机噪声输入数据传入生成器神经网络进行运算,得到噪声生成结果;还用于将噪声生成结果和参考数据共同输入判别器神经网络进行运算,得到判别结果;还用于根据所述判别结果更新所述判别器神经网络参数与生成器神经网络参数。
2.根据权利要求1所述的处理装置,其特征在于,所述存储器还用于存储计算指令,所述处理装置还包括:
控制器,用于根据提取所述计算指令并解析为运算指令,并发送至所述运算器。
3.根据权利要求1所述的处理装置,其特征在于,所述存储器包括:
判别器参数存储单元,用于存储判别器神经网络参数;
生成器参数存储单元,用于存储生成器神经网络参数;
判别器指令存储单元,用于存储进行判别器神经网络运算的计算指令;
生成器指令存储单元,用于存储进行生成器神经网络运算的计算指令;
数据存储单元,用于存储噪声生成结果、随机噪声以及参考数据。
4.根据权利要求2所述的处理装置,其特征在于,所述控制器包括:
指令缓存单元,用于缓存进行判别器神经网络运算的计算指令和/或进行生成器神经网络运算的计算指令;
指令处理单元,用于对计算指令解析得到多个运算指令;
存储队列单元,用于存储多个运算指令形成的指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令;
依赖关系处理单元,用于在具有多个运算指令时,确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,则将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算器;
优选的,所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第零运算指令不具有关联关系。
5.根据权利要求1所述的处理装置,其特征在于,所述参考数据包括图片、视频、语音和/或文字;优选的,所述处理装置还包括输入/输出单元,用于获取外部数据以及将内部计算结果输出至外部设备。
6.根据权利要求2所述的处理装置,其特征在于,所述计算指令包括操作码和至少一个操作域;
所述计算指令包括:
config指令,在每层人工神经网络计算开始前配置当前层计算需要的各种常数;
compute指令,完成每层人工神经网络的算术逻辑计算;
io指令,实现从外部地址空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间;
nop指令,负责清空当前装至内部所有微指令缓存队列中的微指令,保证nop指令之前的所有指令全部指令完毕;
jump指令,负责控制器将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转;
move指令,负责将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源;
所述compute指令包括一个操作码和五个操作域,五个操作域分别对应输入数据起始地址、输入数据长度、权值起始地址、权值长度和激活函数插值表地址;
所述io指令包括一个操作码和三个操作域,三个操作域分别对应数据外部存储地址、数据长度和数据内部存储器地址;
所述jump指令包括一个操作码和一个操作域,一个操作域对应目标地址;
所述move指令包括一个操作码和三个操作域,三个操作域分别对应输入地址、数据大小和输出地址。
7.根据权利要求1所述的处理装置,其特征在于,还包括dma,用于将生成器神经网络参数从存储器转发给运算器,还用于把随机噪声和参考数据从转发给运算器。
8.应用权利要求1-7任一所述处理装置进行机器创作的方法,其特征在于包括:
输入随机噪声和参考数据至存储器;
运算器将随机噪声输入数据和生成器神经网络参数进行生成器神经网络运算,得到噪声生成结果;
运算器将噪声生成结果和参考数据进行判别器神经网络运算,得到判别结果;
运算器根据所述判别结果更新所述判别器神经网络参数与生成器神经网络参数。
9.根据权利要求8所述的方法,其特征在于,所述运算器根据所述判别结果更新所述判别器神经网络参数与生成器神经网络参数,包括:
根据判别结果分别计算的生成器神经网络与判别器神经网络的损失值;
然后根据损失值减小的最大梯度方向,自适应地更新判别器神经网络中的参数,进而提高判别器的判别精度;
根据判别器判别的损失值增大的最大梯度方向,自适应地更新同时生成器神经网络中的参数。
10.根据权利要求8所述的方法,其特征在于,包括:重复进行权利要求8所述的方法步骤,直至当判别器神经网络的判别精度在设定范围内变化时,输出生成器神经网络进行运算所得到噪声生成结果作为最终创作结果。
11.根据权利要求10所述的方法,其特征在于,还包括:
控制器根据提取所述计算指令并解析为运算指令,并发送至所述运算器;和/或
通过dma将生成器神经网络参数从存储器转发给运算器,还用于把随机噪声和参考数据从转发给运算器。
12.根据权利要求11所述的方法,其特征在于,还包括:
判别器参数存储单元存储判别器神经网络参数;
生成器参数存储单元存储生成器神经网络参数;
判别器指令单元存储进行判别器神经网络运算的计算指令;
生成器指令单元存储进行生成器神经网络运算的计算指令;
数据存储单元存储输入数据。
13.根据权利要求11所述的方法,其特征在于,所述控制器根据提取所述计算指令并解析为运算指令,并发送至所述运算器,具体包括:
通过指令缓存单元缓存进行判别器神经网络运算的计算指令和/或进行生成器神经网络运算的计算指令;
通过指令处理单元对计算指令解析得到多个运算指令;
通过存储队列单元存储多个运算指令形成的指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令;
其中,所述通过控制器,根据提取所述计算指令并解析为运算指令,并发送至所述运算器,还包括:
通过依赖关系处理单元在具有多个运算指令时,确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,则将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算器。
14.根据权利要求13所述的方法,其特征在于,所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第零运算指令不具有关联关系。
15.根据权利要求8所述的方法,其特征在于,所述参考数据包括图片、视频、语音和/或文字。
16.根据权利要求9所述的方法,其特征在于,所述计算指令包括操作码和至少一个操作域;
所述计算指令包括:
config指令,在每层人工神经网络计算开始前配置当前层计算需要的各种常数;
compute指令,完成每层人工神经网络的算术逻辑计算;
io指令,实现从外部地址空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间;
nop指令,负责清空当前装至内部所有微指令缓存队列中的微指令,保证nop指令之前的所有指令全部指令完毕,;
jump指令,负责控制器将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转;
move指令,负责将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源。
17.根据权利要求16所述的方法,其特征在于,
所述compute指令包括一个操作码和五个操作域,五个操作域分别对应输入数据起始地址、输入数据长度、权值起始地址、权值长度和激活函数插值表地址;
所述io指令包括一个操作码和三个操作域,三个操作域分别对应数据外部存储地址、数据长度和数据内部存储器地址;
所述jump指令包括一个操作码和一个操作域,一个操作域对应目标地址;
所述move指令包括一个操作码和三个操作域,三个操作域分别对应输入地址、数据大小和输出地址。
18.一种电子设备,包括权利要求1-7任一所述的处理装置。