首页 / 引导协同优化

引导协同优化实质审查 发明

技术内容

引导协同优化 背景技术 [0001] 以下一般涉及使用机器学习的数字图像处理。图像处理是指使用计算机来使用算法或处理网络来处理数字图像。图像处理的一些常见使用可以包括图像增强、恢复、完成、压缩等。在一些示例中,使用图像编辑软件来修改图像。例如,图像编辑软件可以被用于对数字图像中描绘的面部进行匿名化以获得匿名化图像。 [0002] 在诸如生成对抗网络(GAN)和GAN的变型之类的图像生成中使用机器学习模型。然而,常规模型涉及高计算负担和存储器使用并且难以在移动设备上实施。因此,在本领域中需要在推断时间和存储器使用(例如,模型尺寸)方面进行优化的改进的图像处理系统。 发明内容 [0003] 本公开描述了用于图像处理的系统和方法。本公开的实施例包括被配置为使用优化的图像生成网络来生成输出图像的图像处理装置。通过对图像生成网络(例如,CoModGAN)应用通道修剪、张量分解或两者来获得优化的图像生成网络。在一些示例中,图像处理装置的修剪部件修剪合成网络的编码器的块的通道。修剪部件还修剪分辨率与编码器的块相同的解码器的块的通道,其中解码器的块通过跳跃连接而连接到编码器的块。 [0004] 描述了一种用于图像处理的方法、装置和非暂态计算机可读介质。该方法、装置和非暂态计算机可读介质的一个或多个实施例包括:标识包括编码器和解码器的图像生成网络;修剪编码器的块的通道;修剪通过跳跃连接而连接到编码器的块的解码器的块的通道,其中基于编码器的块的修剪后的通道来修剪解码器的块的通道;以及基于编码器的块的修剪后的通道和解码器的块的修剪后的通道使用图像生成网络来生成图像。 [0005] 描述了一种用于图像处理的方法、装置和非暂态计算机可读介质。该方法、装置和非暂态计算机可读介质的一个或多个实施例包括:标识图像生成网络;对图像生成网络的层执行张量分解;基于张量分解来压缩图像生成网络的层;以及基于压缩的层使用图像生成网络来生成图像。 [0006] 描述了一种用于图像处理的装置和方法。该装置和方法的一个或多个实施例包括:处理器;存储器,其包括能够由处理器执行的指令;图像生成网络,其包括编码器和解码器;修剪部件,其被配置为修剪编码器的块的通道并且修剪通过跳跃连接而连接到编码器的块的解码器的块的通道,其中基于编码器的块的修剪后的通道来修剪解码器的块的通道;以及训练部件,其被配置为基于编码器的块的修剪后的通道和解码器的块的修剪后的通道来微调图像生成网络。 附图说明 [0007] 图1示出了根据本公开的实施例的图像处理系统的一个示例。 [0008] 图2示出了根据本公开的实施例的图像处理装置的一个示例。 [0009] 图3示出了根据本公开的实施例的图像生成模型的一个示例。 [0010] 图4示出了根据本公开的实施例的共同调制的一个示例。 [0011] 图5示出了根据本公开的实施例的基于样式的生成器的一个示例。 [0012] 图6示出了根据本公开的实施例的通道修剪的一个示例。 [0013] 图7示出了根据本公开的实施例的张量分解和tucker分解的一个示例。 [0014] 图8示出了根据本公开的实施例的图像处理的一个示例。 [0015] 图9示出了根据本公开的实施例的图像匿名化的一个示例。 [0016] 图10示出了根据本公开的实施例的用于图像生成的方法的一个示例。 [0017] 图11示出了根据本公开的实施例的用于通道修剪的方法的一个示例。 [0018] 图12示出了根据本公开的实施例的图像生成网络的通道修剪的一个示例。 [0019] 图13示出了根据本公开的实施例的通道修剪的一个示例。 [0020] 图14示出了根据本公开的实施例的用于张量分解的方法的一个示例。 [0021] 图15示出了根据本公开的实施例的张量分解的一个示例。 [0022] 图16示出了根据本公开的实施例的tucker分解的一个示例。 [0023] 图17示出了根据本公开的实施例的生成对抗网络(GAN)训练的一个示例。 具体实施方式 [0024] 本公开描述了用于图像处理的系统和方法。本公开的实施例包括被配置为使用优化的图像生成网络来生成输出图像的图像处理装置。通过对图像生成网络(例如,CoModGAN)应用通道修剪、张量分解或两者来获得优化的图像生成网络。在一些示例中,图像处理装置的修剪部件修剪合成网络的编码器的块的通道。修剪部件还修剪分辨率与编码器的块相同的解码器的块的通道,其中解码器的块通过跳跃连接而连接到编码器的块。 [0025] 在一些实施例中,图像处理装置对图像生成网络的层应用张量分解,并基于张量分解来压缩图像生成网络的层以获得优化的图像生成网络。 [0026] 近来,图像处理模型被用于诸如图像增强、恢复、完成或压缩的任务中。图像处理模型可以基于文本或原始图像来生成输出图像。例如,图像生成模型将真实图像作为输入,并生成匿名化图像,其中人的面部看起来与真实图像中描绘的人的面部不同。在面部匿名化中使用诸如生成对抗网络(GAN)和共同调制GAN(CoModGAN)的生成模型。然而,这些常规模型涉及高计算成本和存储器使用。这些常规模型不能在具有有限存储器和处理速度的移动设备上实现。 [0027] 本公开的实施例包括图像处理装置,该图像处理装置被配置为使用通道修剪和张量分解或两者来优化图像生成网络,以获得优化的图像生成网络。在一些情况下,优化的图像生成网络可以被称为输出模型。在一些示例中,图像生成网络包括CoModGAN。图像生成网络包括映射网络和合成网络。合成网络还包括编码器和解码器。 [0028] 图像处理装置的修剪部件被配置为修剪处于特定分辨率(例如,分辨率1024)的编码器的块的通道。修剪部件修剪具有层间连接的处于相同分辨率的解码器的块的通道。例如,解码器的块通过跳跃连接而连接到编码器的块。 [0029] 在一些实施例中,图像处理装置的分解部件被配置为在图像生成网络的层上应用张量分解,并且基于张量分解来压缩图像生成网络的层以减小模型尺寸,同时保留图像的重要特征。例如,张量分解涉及奇异值分解(SVD),并被应用于神经网络中的每个全连接层的权重矩阵以生成张量。在一些情况下,张量分解被应用于内核尺寸为1的卷积层(例如,1×1卷积层)。在一些示例中,对内核尺寸大于1的卷积层(例如,3×3卷积层)应用tucker分解。tucker分解是一种张量分解,其中在张量上应用两个SVD而不是一个SVD。因此,张量分解和tucker分解导致高压缩率,同时保留了图像质量。 [0030] 通过在基于GAN的图像生成网络上使用通道修剪和张量分解的非常规步骤,对于GPU云部署,模型尺寸(例如,引导CoModGAN)减小60%以上,而对于CPU云部署,减小70%以上。本公开中所描述的优化和压缩方法导致推断时间(等待时间)在GPU上快两倍并且在CPU上快四倍。本公开的实施例不限于CoModGAN。本公开的实施例可应用于其它生成模型。 [0031] 本公开的实施例可以被用于图像编辑应用的上下文中。例如,基于本公开的图像处理装置获取真实图像并更有效地生成匿名化图像(例如,更少的推断时间和更少的存储器消耗)。参考图8‑图9提供在图像处理环境中的示例应用。参考图1‑图7提供关于示例图像处理系统的架构的细节。参考图8‑图16提供关于图像处理过程的细节。参考图17描述示例训练过程。 [0032] 网络架构 [0033] 在图1‑图7中,描述了用于图像处理的装置和方法。该装置和方法的一个或多个实施例包括:处理器;存储器,其包括可由处理器执行的指令;图像生成网络,其包括编码器和解码器;修剪部件,其被配置为修剪所述编码器的块的通道并且修剪通过跳跃连接而连接到编码器的块的解码器的块的通道,其中基于编码器的块的修剪后的通道来修剪解码器的块的通道;以及训练部件,其被配置为基于编码器的块的修剪后的通道和解码器的块的修剪后的通道来微调图像生成网络。 [0034] 在一些实施例中,图像生成网络包括生成对抗网络(GAN)。在一些实施例中,图像生成网络包括共同调制GAN(CoModGAN)。在一些实施例中,图像生成网络包括合成网络和映射网络,并且其中合成网络包括编码器和解码器。 [0035] 装置和方法的一些示例还包括分解部件,其被配置为对图像生成网络的层执行张量分解,并且基于张量分解来压缩图像生成网络的层。 [0036] 图1示出了根据本公开的实施例的图像处理系统的一个示例。所示示例包括用户 100、用户设备105、图像处理装置110、云115和数据库120。图像处理装置110是参考图2描述的对应元件的一个示例,或者包括参考图2描述的对应元件的各方面。 [0037] 作为图1中所示的一个示例,用户100上传图像。图像例如经由用户设备105和云 115而被传输到图像处理装置110。在该示例中,原始图像包括女人微笑的面部(真实图像)。 图像处理装置110被配置为修剪基本模型(例如,CoModGAN)的合成网络的通道以获得输出模型(例如,优化的图像生成模型)。在一些示例中,图像处理装置110修剪处于特定分辨率(例如,分辨率1024)的编码器块和解码器块的通道,其中编码器块和解码器块具有层间连接(例如,跳跃连接)。 [0038] 附加地或备选地,图像处理装置110关于基本模型来执行张量分解和tucker分解以获得输出模型(例如,优化的图像生成模型)。图像处理装置110对图像生成网络的层执行张量分解,并压缩该层以减小模型尺寸,同时保留输入图像的重要特征。图像处理装置110使用优化的图像来生成模型来生成匿名化图像。在该示例中,匿名化图像包括不同于原始图像的女人面部的身份。例如,年龄、皮肤颜色和性别保持不变。唯一的改变是人的身份(即,输出图像不表示原始图像中的同一人)。匿名化图像例如经由云115和用户设备105而被传输到用户100。 [0039] 用户设备105可以是个人计算机、膝上型计算机、大型计算机、掌上型计算机、个人助理、移动设备或任何其它合适的处理装置。在一些示例中,用户设备105包括并入图像处理应用的软件。在一些示例中,用户设备105上的图像处理应用可以包括图像处理装置110的功能。 [0040] 用户接口可以使得用户100能够与用户设备105交互。在一些实施例中,用户接口可以包括诸如外部扬声器系统之类的音频设备,诸如显示屏之类的外部显示设备,或者输入设备(例如,直接或通过I/O控制器模块而与用户接口对接的远程控制设备)。在一些情况下,用户接口可以是图形用户界面(GUI)。在一些示例中,用户接口可以用发送到用户设备并由浏览器本地绘制的代码来表示。 [0041] 图像处理装置110包括计算机实现的网络(其包括图像生成网络)、修剪部件和分解部件。图像处理装置110还包括处理器单元、存储器单元、I/O模块和训练部件。训练部件被用于训练机器学习模型(例如,图像生成网络或分类器)。此外,图像处理装置110可以经由云115来与数据库120通信。在一些情况下,图像处理网络的架构也被称为网络或网络模型。参考图1‑图7提供关于图像处理装置110的架构的更多细节。参考图8‑图16提供关于图像处理装置110的操作的更多细节。 [0042] 在一些情况下,图像处理装置110在服务器上被实现。服务器向通过各种网络中的一者或多者来链接的用户提供一个或多个功能。在一些情况下,服务器包括单个微处理器板,其包括负责控制服务器的所有方面的微处理器。在一些情况下,服务器使用一个或多个微处理器和协议来经由超文本传送协议(HTTP)和简单邮件传送协议(SMTP)来与一个或多个网络上的其它设备/用户交换数据,尽管也可以使用诸如文件传送协议(FTP)和简单网络管理协议(SNMP)之类的其它协议。在一些情况下,服务器被配置为发送和接收超文本标记语言(HTML)格式化文件(例如,用于显示网页)。在各种实施例中,服务器包括通用计算设备、个人计算机、膝上型计算机、大型计算机、超级计算机或任何其他合适的处理装置。 [0043] 云115是被配置为提供诸如数据存储和计算能力之类的计算机系统资源的按需可用性的计算机网络。在一些示例中,云115提供资源而无需用户100的主动管理。术语“云”有时被用来描述在互联网上对许多用户(例如,用户100)可用的数据中心。一些大型云网络具有分布在来自中央服务器的多个位置上的功能。如果服务器具有到用户(例如,用户100)的直接或紧密连接,则服务器被指定为边缘服务器。在一些情况下,云115被限制为单个组织。 在其他示例中,云115可用于许多组织。在一个示例中,云115包括多层通信网络,该多层通信网络包括多个边缘路由器和核心路由器。在另一个示例中,云115基于单个物理位置中的交换机的本地集合。 [0044] 数据库120是有组织的数据集合。例如,数据库120以称为模式的指定格式来存储数据。数据库120可以被构造为单个数据库、分布式数据库、多个分布式数据库或紧急备份数据库。在一些情况下,数据库控制器可以管理数据库120中的数据存储和处理。在一些情况下,用户与数据库控制器交互。在其它情况下,数据库控制器可以在没有用户交互的情况下自动操作。 [0045] 在一些示例中,图像处理装置110可以在电子设备(例如,低存储电子设备)和云相关设备上实现。例如,图像处理装置110可以将优化的引导CoModGAN转换为用于设备上部署TM 的开放式神经网络交换 (“ ”),用于CPU云部署的OpenVino ,以及用于GPU云部TM 署的TensorRT 。 [0046] 图2示出了根据本公开的实施例的图像处理装置200的一个示例。所示示例包括图像处理装置200、处理器单元205、存储器单元210、I/O模块215、训练部件220和机器学习模型225。在一些实施例中,机器学习模型225包括图像生成网络230、修剪部件235和分解部件 240。图像处理装置200是参考图1描述的对应元件的一个示例,或者包括参考图1描述的对应元件的各方面。 [0047] 处理器单元205是智能硬件器件(例如,通用处理部件、数字信号处理器(DSP)、中央处理单元(CPU)、图形处理单元(GPU)、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件、离散门或晶体管逻辑部件、离散硬件部件或其任何组合)。在一些情况下,处理器单元205被配置为使用存储器控制器来操作存储器阵列。在其它情况下,存储器控制器被集成到处理器中。在一些情况下,处理器单元205被配置为执行存储在存储器中的计算机可读指令以执行各种功能。在一些实施例中,处理器单元205包括用于调制解调器处理、基带处理、数字信号处理或传输处理的专用部件。 [0048] 存储器单元210包括包含可由处理器单元205执行的指令的存储器。存储器单元 210的示例包括随机存取存储器(RAM)、只读存储器(ROM)或硬盘。存储器单元210的示例包括固态存储器和硬盘驱动器。在一些示例中,存储器单元210被用于存储包括指令的计算机可读、计算机可执行软件,指令在被执行时使处理器执行本文中所描述的各种功能。在一些情况下,存储器单元210尤其包含控制基本硬件或软件操作(诸如与外围部件或装置的交互)的基本输入/输出系统(BIOS)。在一些情况下,存储器控制器操作存储器单元。例如,存储器控制器可以包括行解码器、列解码器或两者。在一些情况下,存储器单元210内的存储器单元以逻辑状态的形式存储信息。 [0049] I/O模块215(例如,输入/输出接口)可以包括I/O控制器。I/O控制器可以管理设备的输入和输出信号。I/O控制器还可以管理未集成到设备中的外围设备。在一些情况下,I/O控制器可以表示到外部外围设备的物理连接或端口。在一些情况下,I/O控制器可以利用诸如 或其它已知的操作系统之类的操作系统。在其它情况下,I/O控制器可以表示调制解调器、键盘、鼠标、触摸屏或类似设备或与其交互。在一些情况下,I/O控制器可以被实现为处理器的一部分。在一些情况下,用户可以经由I/O控制器或经由由I/O控制器控制的硬件部件来与设备交互。 [0050] 在一些示例中,I/O模块215包括用户接口。用户接口可以使得用户能够与设备交互。在一些实施例中,用户接口可以包括诸如外部扬声器系统之类的音频设备,诸如显示屏之类的外部显示设备,或者输入设备(例如,直接或通过I/O控制器模块而与用户接口对接的远程控制设备)。在一些情况下,用户接口可以是图形用户界面(GUI)。在一些示例中,通信接口在通信实体和信道之间的边界处操作,并且还可以记录和处理通信。本文提供通信接口以实现耦合到收发器(例如,发射器和/或接收器)的处理系统。在一些示例中,收发器被配置为经由天线传输(或发送)和接收用于通信设备的信号。 [0051] 根据本公开的一些实施例,图像处理装置200包括计算机实现的人工神经网络(ANN)以生成一组样本的分类数据。ANN是包括数个连接节点(即,人工神经元)的硬件或软件部件,这些连接节点松散地对应于人脑中的神经元。每个连接或边缘将信号从一个节点传输到另一个节点(如大脑中的物理突触)。当节点接收到信号时,该节点处理该信号,然后将处理后的信号传输到其它连接节点。在一些情况下,节点之间的信号包括实数,并且每个节点的输出由其输入之和的函数来计算。每个节点和边缘与一个或多个节点权重相关联,该一个或多个节点权重确定如何处理和传输信号。 [0052] 根据一些实施例,图像处理装置200包括计算机实现的卷积神经网络(CNN)。CNN是一类在计算机视觉或图像分类系统中常用的神经网络。在一些情况下,CNN可以使得能够以最小的预处理来处理数字图像。CNN可以通过使用卷积(或互相关)隐藏层来表征。这些层在将结果用信号发送到下一层之前对输入应用卷积操作。每个卷积节点可以处理输入的有限域(即,接收域)的数据。在CNN的前向通过期间,在每层处的滤波器可以在输入体积上进行卷积,计算滤波器和输入之间的点积。在训练过程期间,可以修改滤波器,使得当它们检测到输入内的特定特征时激活。 [0053] 根据一些实施例,训练部件220基于编码器的块的修剪后的通道和解码器的块的修剪后的通道来微调图像生成网络230。在一些示例中,训练部件220是除图像处理装置200之外的另一装置的一部分。 [0054] 根据一些实施例,机器学习模型225包括图像生成网络230、修剪部件235和分解部件240。机器学习模型225标识包括编码器和解码器的图像生成网络230。 [0055] 根据一些实施例,图像生成网络230基于编码器的块的修剪后的通道和解码器的块的修剪后的通道来生成图像。在一些示例中,图像生成网络230标识输入图像和用于修补的输入图像的一部分。在一些示例中,图像生成网络230用于对输入图像的该部分进行修补以获得修补后的图像。在一些示例中,图像生成网络230标识面部的图像。在一些示例中,图像生成网络230生成面部的匿名化图像。在一些实施例中,图像生成网络230的编码器的块和解码器的块包括一个或多个卷积层。 [0056] 根据一个实施例,图像生成网络230基于压缩的层来生成图像。根据一些实施例,图像生成网络230包括编码器和解码器。在一些实施例中,图像生成网络230包括生成对抗网络(GAN)。在一些实施例中,图像生成网络230包括共同调制GAN(CoModGAN)。在一些实施例中,图像生成网络230包括合成网络和映射网络,并且其中合成网络包括编码器和解码器。 [0057] 根据一些实施例,修剪部件235修剪编码器的块的通道。在一些示例中,修剪部件 235修剪解码器的块的通道,该解码器的块的通道通过跳跃连接而连接到编码器的块,其中基于编码器的块的修剪后的通道来修剪解码器的块的通道。 [0058] 根据一些实施例,修剪部件235避免修剪图像生成网络230的映射网络,其中编码器和解码器是图像生成网络230的合成网络的部件。在一些示例中,修剪部件235避免修剪编码器的全局编码器块和解码器的全局解码器块。 [0059] 根据一些实施例,修剪部件235修剪编码器的块的第一层的通道。在一些示例中,修剪部件235基于编码器的块的第一层的修剪后的通道来修剪编码器的块的第二层的通道。在一些示例中,修剪部件235基于编码器的块的第一层的修剪后的通道来修剪解码器的块的第一层的通道。在一些示例中,修剪部件235基于编码器的块的第二层的修剪后的通道来修剪解码器的块的第二层的通道。 [0060] 根据一些实施例,修剪部件235被配置为修剪编码器的块的通道以及修剪通过跳跃连接而连接到编码器的块的解码器的块的通道,其中,基于编码器的块的修剪后的通道来修剪解码器的块的通道。 [0061] 根据一些实施例,分解部件240对图像生成网络230的层执行张量分解。在一些示例中,分解部件240基于张量分解来压缩图像生成网络230的层。在一些示例中,图像生成网络230的层上的张量分解包括奇异值分解(SVD)。在一些示例中,分解部件240将SVD应用于内核1的卷积层和图像生成网络230的全连接层。在一些示例中,分解部件240标识第一阈值,其中基于第一阈值来应用SVD。在一些示例中,分解部件240将tucker分解应用于大于1的内核的卷积层。在一些示例中,分解部件240标识第二阈值,其中基于第二阈值来应用tucker分解。 [0062] 根据一些实施例,分解部件240被配置为对图像生成网络230的层执行张量分解,并基于张量分解来压缩图像生成网络230的层。 [0063] 所描述的方法可以由包括以下各项的器件来实施或执行:通用处理器,数字信号处理器(DSP),专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、离散门或晶体管逻辑、离散硬件部件或其任何组合。通用处理器可以是微处理器、常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或多个微处理器或任何其它此类配置)。因此,本文所描述的功能可以在硬件或软件中实现,并且可以由处理器、固件或其任何组合来执行。如果在由处理器执行的软件中实现,则功能可以以指令或代码的形式被存储在计算机可读介质上。 [0064] 计算机可读介质包括非暂态计算机存储介质和包括便于代码或数据的传送的任何介质在内的通信介质。非暂态存储介质可以是可由计算机访问的任何可用介质。例如,非暂态计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、压缩盘(CD)或其它光盘存储装置,磁盘存储装置或用于载运或存储数据或代码的任何其它非暂态介质。 [0065] 此外,连接部件可以被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电或微波信号之类的无线技术从网站、服务器或其它远程源传输代码或数据,那么同轴电缆、光纤电缆、双绞线、DSL或无线技术被包括在介质的定义中。介质的组合也被包括在计算机可读介质的范围内。 [0066] 图3示出了根据本公开的实施例的图像生成模型的一个示例。所示示例包括映射网络300、条件编码器305、共同调制310和生成解码器315。通过嵌入条件的和随机的样式表示,CoModGAN不仅为小规模的修补而且为大规模的图像完成生成多样化且一致的内容。条件样式表示是从条件输入嵌入以增强输出的学习样式表示的类型。随机样式表示被用于大规模图像完成,并且即使当输入图像和输入蒙版都是固定的时也能够产生多样化的结果。 [0067] 参见图3,蒙版图像被采样为潜在向量。映射网络300接收潜在向量,并将随机样式应用于映射网络300的输出特征。另外,条件编码器305对蒙版图像进行编码,并将条件样式应用于条件编码器305的输出特征。 [0068] 将共同调制310应用于映射网络300的输出特征和条件编码器305的输出特征。来自共同调制310的输出被输入到生成解码器315。在一些情况下,图像生成模型将共同调制 310应用于大规模图像完成。结果,接收来自共同调制310的结果和条件编码器305的输出特征两者作为对生成解码器315的输入。在一些情况下,图像生成模型可以不对小规模图像修补应用共同调制310,并且将条件编码器305的输出特征作为对生成解码器315的输入。 [0069] 映射网络300是参考图4和图5描述的对应元件的一个示例,或者包括参考图4和图 5描述的对应元件的各方面。条件编码器305是参考图4描述的对应元件的示例,或者包括参考图4描述的对应元件的各方面。生成解码器315是参考图4、图5和图12描述的合成网络的一个示例,或者包括参考图4、图5和图12描述的合成网络的各方面。 [0070] CoModGAN的扩展是引导CoModGAN。引导CoModGAN采取“引导”向量连同输入图像和蒙版。引导CoModGAN通过从原始图像中提取引导并根据该引导填充图像中的蒙版区域来控制内容生成。引导CoModGAN被用于面部匿名化。例如,引导CoModGAN可以从输入图像中提取诸如年龄或性别之类的信息作为引导。参考图8‑图9进一步描述面部匿名化的示例。 [0071] 图4示出了根据本公开的实施例的共同调制的一个示例。所示示例包括共同调制生成器400、条件编码器405、映射网络410和生成解码器415。共同调制将来自无条件调制生成器的生成能力与图像条件生成器相结合。条件编码器405接收输入y并生成输出特征。将潜在向量z输入到映射网络410,并且映射的潜在向量通过学习的仿射变换为每个后续调制生成样式向量。在一些情况下,来自条件编码器405的输出特征和来自映射网络410的样式向量被输入到生成解码器415中。在一些情况下,来自条件编码器405的输出特征被直接输入到生成解码器415。 [0072] 条件编码器405是参考图3描述的对应元件的一个示例,或者包括参考图3描述的对应元件的实施例。映射网络410是参考图3和图5描述的对应元件的一个示例,或者包括参考图3和图5描述的对应元件的实施例。生成解码器415是参考图3描述的对应元件的一个示例,或者包括参考图3描述的对应元件的实施例。 [0073] 图5示出了根据本公开的实施例的基于样式的生成器的一个示例。所示示例包括映射网络500、全连接层505、中间潜在空间510、合成网络515、学习的仿射变换520、学习的每层缩放因子525、第一卷积层530、第二卷积层535和自适应实例归一化540。 [0074] 映射网络500是参考图3和图4描述的对应元件的一个示例,或者包括参考图3和图 4描述的对应元件的实施例。合成网络515是参考图12描述的对应元件的一个示例,或者包括参考图12描述的对应元件的实施例。 [0075] 生成对抗网络(GAN)是一组人工神经网络,其中基于彼此的竞赛来训练两个神经网络。给定训练集,网络学习生成具有与训练集相似属性的新数据。例如,在照片上训练的GAN可以生成对于人类观察者而言看起来逼真的新图像。GAN可以与监督学习、半监督学习、无监督学习和强化学习结合使用。在一些实施例中,GAN包括生成器网络和鉴别器网络。生成器网络生成候选者,而鉴别器网络对它们进行评估。生成器网络学习从潜在空间映射到感兴趣的数据分布,而鉴别器网络将由生成器所产生的候选者与真实数据分布区分开。生成器网络的训练目标是提高鉴别器网络的错误率,即,产生鉴别器网络分类为真实的新候选者。 [0076] 图5示出了基于样式的生成对抗网络(StyleGAN)的示例。StyleGAN是使用备选的生成器网络的GAN架构的扩展。StyleGAN包括使用映射网络500来将潜在空间中的点映射到中间潜在空间510,使用中间潜在空间510以控制每个点处的样式,以及在生成器网络中的每个点处引入噪声作为变化源。 [0077] 映射网络500执行对原始输入的简化编码,并且合成网络515根据简化编码来生成尽可能接近原始输入的表示。 [0078] 根据一些实施例,映射网络500包括由全连接层(例如,全连接层505)组成的深度学习神经网络。在一些情况下,映射网络500从诸如中间潜在空间510之类的潜在空间取得随机采样点作为输入,并生成样式向量作为输出。 [0079] 根据一些实施例,合成网络515包括第一卷积层530和第二卷积层535。例如,第一卷积层530包括诸如conv 3×3之类的卷积层、自适应实例归一化(AdaIN)层、或诸如4×4× 512常数值之类的常数。例如,第二卷积层535包括上采样层(例如上采样)、卷积层(例如conv 3×3)和自适应实例归一化(AdaIN)层。 [0080] 合成网络515采取例如常数4×4×512常数值之类的常数值作为输入以开始图像合成处理。从映射网络500生成的样式向量由学习的仿射变换520来进行变换,并经由诸如自适应实例归一化540之类的AdaIN操作而被并入到卷积层(例如conv 3×3)之后的合成网络515的每个块中。在一些情况下,自适应实例归一化层可以执行自适应实例归一化540。 AdaIN层首先将特征映射的输出标准化,使得潜在空间以这样的方式映射到特征,使得随机选择的特征映射将导致以高斯分布进行分布的特征,然后添加样式向量作为偏置项。这允许选择随机潜在变量,并且使得所得到的输出将不会聚成一团。在一些情况下,合成网络 515中的每个卷积层(例如conv 3×3)的输出是激活映射的块。在一些情况下,上采样层将输入的维度加倍(例如,从4×4到8×8),并且后面是另一个(多个)卷积层(例如,第三卷积层)。 [0081] 根据一些实施例,高斯噪声在自适应实例归一化540之前被添加到这些激活映射中的每一者中。为每个块生成不同的噪声样本,并使用学习的每层缩放因子525来对噪声样本进行解释。在一些实施例中,高斯噪声以给定的细节水平引入样式水平变化。 [0082] 图6示出了根据本公开的实施例的通道修剪的一个示例。在一些示例中,这些操作由包括执行一组代码以控制装置的功能元件的处理器的系统来执行。附加地或替代地,使用专用硬件来执行某些过程。通常,按照根据本公开的各方面描述的方法和过程来执行这些操作。在一些情况下,本文所描述的操作由各种子步骤组成,或者与其它操作一起执行。 [0083] 在操作600处,系统基于基本模型来执行第一张量分解。在一些情况下,该步骤的操作涉及参考图2描述的分解部件或可以由参考图2描述的分解部件来执行。 [0084] 在一些实施例中,该基本模型是经训练的引导CoModGAN模型。如图2中所示的机器学习模型225关于基本模型对全连接(“FC”)层执行张量分解。在一些情况下,张量分解被应用于映射网络中的FC层和合成网络中的解码器块中的一个或多个卷积算子。这样,模型尺寸减小20%。在一些情况下,张量分解包括奇异值分解(“SVD”)。SVD可以被应用于每个FC层的权重矩阵(例如,张量)以将其分解成两个张量。SVD基于方差对张量的分量进行分类,第一分量说明更大的方差量,因此它们包含张量的最重要的信息。结果,在SVD分解之后,通过保持低秩张量(例如,前几个分量),机器学习模型225可以用较少的参数在张量内保留最重要的信息。然后,应用微调以生成第一初步模型或“模型1”。例如,在应用第二张量分解之前应用微调。然而,在一些情况下,微调是可选的。与基本模型的尺寸相比,该操作导致模型尺寸减小20%。参考图15描述关于张量分解的一个示例的细节。 [0085] 在操作605,系统执行第二张量分解。在一些情况下,该步骤的操作涉及参考图2描述的分解部件或可以由参考图2描述的分解部件来执行。根据一个实施例,张量分解被应用于第一初步模型(即,模型1)中的内核尺寸为1(例如,Conv 1×1)的卷积层。例如,这些卷积层包括合成网络中的全局解码器中的层。在一些情况下,应用于第一初步模型的张量分解可以与应用于FC层的基本模型的张量分解相同。结果,模型尺寸又减小了20%(到目前为止总共减小了40%)。应用微调以生成第二初步模型或“模型2”。然而,在一些情况下,微调是可选的。 [0086] 根据一个实施例,通过对基本模型的FC和Conv 1×1层应用张量分解来生成第二初步模型或模型2。可以将施加在FC和Conv 1×1层上的张量分解的阈值设置为低,以在SVD之后仅保持秩1(例如,第一分量)。因此,这导致最大可能的尺寸减小。 [0087] 在操作610,系统执行修剪。在一些情况下,该步骤的操作涉及或可以由参考图2描述的修剪部件来执行。在一些实施例中,修剪部件在分辨率32到分辨率1024的编码器块和解码器块上修剪50%的通道。在一些情况下,应用微调以获得输出模型。 [0088] 图7示出了根据本公开的实施例的张量分解和tucker分解的一个示例。在一些示例中,这些操作由包括执行一组代码以控制装置的功能元件的处理器的系统来执行。附加地或替代地,使用专用硬件来执行某些过程。通常,按照根据本公开的各方面描述的方法和过程来执行这些操作。在一些情况下,本文所描述的操作由各种子步骤组成,或者与其它操作一起执行。 [0089] 在操作700,系统基于基本模型来执行第一张量分解。在一些情况下,该步骤的操作涉及参考图2描述的分解部件或可以由参考图2描述的分解部件来执行。根据实施例,如图2中所示的机器学习模型225对基本模型的FC层执行张量分解。在一些情况下,张量分解被应用于映射网络中的FC层和合成网络中的解码器块中的一个或多个卷积算子。这样,模型尺寸减小20%。SVD可以被应用于每个FC层的权重矩阵(例如,张量)以将其分解成两个张量。SVD基于方差对张量的分量进行分类,第一分量说明更大的方差量,因此它们包含张量的最重要的信息。结果,在SVD分解之后,通过保持低秩张量(例如,前几个分量),机器学习模型225可以用较少的参数在张量内保留最重要的信息。然后,在应用第二张量分解之前应用微调以生成第一初步模型或“模型1”。然而,在一些情况下,微调是可选的。该操作导致模型尺寸比基本模型的尺寸减小20%。 [0090] 在操作705,系统执行第二张量分解。在一些情况下,该步骤的操作涉及参考图2描述的分解部件或可以由参考图2描述的分解部件来执行。根据实施例,张量分解被应用于初步模型或模型1中的内核尺寸为1(例如,Conv 1×1)的卷积层。例如,这些卷积层包括合成网络中的全局解码器中的层。在一些情况下,应用于模型1的张量分解可以与应用于FC层的基本模型的张量分解相同。结果,模型尺寸又减小了20%(到目前为止总共减小了40%)。然后,应用微调以生成第二初步模型或“模型2”。然而,在一些情况下,微调是可选的。 [0091] 根据一个实施例,通过对基本模型的FC和Conv 1×1层应用张量分解来生成第二初步模型。可以将应用在FC和Conv 1×1层上的张量分解的阈值设置为低,以在SVD之后仅保持秩1(例如,仅第一分量)。因此,这导致最大可能的尺寸减小。 [0092] 在操作715,系统执行tucker分解。在一些情况下,该步骤的操作涉及参考图2描述的分解部件或可以由参考图2描述的分解部件来执行。根据一个实施例,将tucker分解应用于模型2中的内核尺寸3(Conv 3×3)的卷积层上。将tucker分解应用于合成网络的编码器块和解码器块中的层以及全局编码器层。tucker分解是一种特殊类型的张量分解,其中对张量应用两个SVD而不是一个SVD。结果,生成三个张量而不是在张量分解中生成的两个张量。在一些情况下,可以对Conv 3×3层应用tucker分解以生成神经网络的稳定和质量结果。然后,在一些情况下,可以应用微调来获得输出模型。关于tucker分解的一个示例的细节参考图16描述。 [0093] 在实施例中,通道修剪和tucker分解可以被应用于相同的基本模型以生成优化的输出模型。例如,可以一起应用通道修剪和tucker分解来优化基本模型。 [0094] 图像处理 [0095] 在图8‑图16中,描述了用于图像处理的方法、装置和非暂态计算机可读介质。该方法、装置和非暂态计算机可读介质的一个或多个实施例包括:标识包括编码器和解码器的图像生成网络;修剪编码器的块的通道;修剪通过跳跃连接而连接到编码器的块的解码器的块的通道,其中基于编码器的块的修剪后的通道来修剪解码器的块的通道;以及基于编码器的块的修剪后的通道和解码器的块的修剪后的通道使用图像生成网络来生成图像。 [0096] 该方法、装置和非暂态计算机可读介质的一些示例还包括标识输入图像和该输入图像的用于修补的部分。一些示例还包括使用图像生成网络来修补输入图像的该部分以获得修补的图像。 [0097] 该方法、装置和非暂态计算机可读介质的一些示例还包括标识面部的图像。一些示例还包括使用图像生成网络来生成面部的匿名化图像。 [0098] 该方法、装置和非暂态计算机可读介质的一些示例还包括基于编码器的块的修剪后的通道和解码器的块的修剪后的通道来微调图像生成网络。 [0099] 该方法、装置和非暂态计算机可读介质的一些示例还包括避免修剪图像生成网络的映射网络,其中编码器和解码器是图像生成网络的合成网络的部件。 [0100] 该方法、装置和非暂态计算机可读介质的一些示例还包括避免修剪编码器的全局编码器块和解码器的全局解码器块。在一些示例中,编码器的块和解码器的块包括一个或多个卷积层。 [0101] 该方法、装置和非暂态计算机可读介质的一些示例还包括修剪编码器的块的第一层的通道。一些示例还包括基于编码器的块的第一层的修剪后的通道来修剪编码器的块的第二层的通道。一些示例还包括基于编码器的块的第一层的修剪后的通道来修剪解码器的块的第一层的通道。一些示例还包括基于编码器的块的第二层的修剪后的通道来修剪解码器的块的第二层的通道。 [0102] 附加地或备选地,该方法、装置和非暂态计算机可读介质的一个或多个实施例包括:标识图像生成网络;对图像生成网络的层执行张量分解;基于张量分解来压缩图像生成网络的层;以及基于压缩层使用图像生成网络来生成图像。在一些实施例中,图像生成网络的层上的张量分解包括奇异值分解(SVD)。 [0103] 该方法、装置和非暂态计算机可读介质的一些示例还包括将SVD应用于内核1的卷积层以及图像生成网络的全连接层。该方法、装置和非暂态计算机可读介质的一些示例还包括标识第一阈值,其中基于该第一阈值来应用SVD。 [0104] 该方法、装置和非暂态计算机可读介质的一些示例还包括将tucker分解应用于大于1的内核的卷积层。该方法、装置和非暂态计算机可读介质的一些示例还包括标识第二阈值,其中基于第二阈值来应用tucker分解。 [0105] 图8示出了根据本公开的实施例的图像处理的一个示例。在一些示例中,这些操作由包括执行一组代码以控制装置的功能元件的处理器的系统来执行。附加地或替代地,使用专用硬件来执行某些过程。通常,按照根据本公开的实施例描述的方法和过程来执行这些操作。在一些情况下,本文所描述的操作由各种子步骤组成,或者与其它操作一起执行。 [0106] 在操作805,用户提供图像。在一些情况下,该步骤的操作涉及参考图1描述的用户或可以由参考图1描述的用户执行。在一些情况下,例如,用户向图像生成系统输入描绘面部的一个或多个图像。 [0107] 在操作810,系统对图像进行编码。在一些情况下,该步骤的操作涉及参考图1和图 2描述的图像处理装置或可以由参考图1和图2描述的图像处理装置来执行。在一些情况下,例如,诸如性别、年龄、种族和图像中的表情之类的某些属性保持相同,但是身份改变。在一些实施例中,图像处理装置的修剪部件对图像生成网络的编码器层和解码器层执行通道修剪。附加地或备选地,图像处理装置的分解部件对图像生成网络的一个或多个层应用张量分解和tucker分解。 [0108] 在操作815,系统基于图像编码来生成匿名化图像。在一些情况下,该步骤的操作涉及参考图1和图2描述的图像处理装置或可以由参考图1和图2描述的图像处理装置来执行。在一些实施例中,图像处理装置生成匿名化图像。在一些情况下,图像处理系统生成具有上下文意义的特征的匿名化面部。这些特征可以是属性不变的。 [0109] 在操作820,系统向用户显示匿名化图像。在一些情况下,该步骤的操作涉及参考图1和图2描述的图像处理装置或可以由参考图1和图2描述的图像处理装置来执行。在一些实施例中,图像处理装置经由用户设备上的用户接口向用户显示匿名化图像。 [0110] 图9示出了根据本公开的实施例的图像匿名化的一个示例。所示示例包括真实图像900和匿名化图像905。在图9中所示的示例中,真实图像900描绘了男孩的面部。如图2中所示的机器学习模型225将真实图像900作为输入。在一些情况下,机器学习模型225可以通过将男孩的嘴从张开的、微笑的嘴改变成闭着的嘴来将男孩的面部匿名化。此外,机器学习模型225通过修改男孩的眉毛、眼睛、鼻子和嘴而将男孩的面部匿名化。图像中包括男孩的年龄、肤色、种族和性别的某些属性是不变的。在一些示例中,将蒙版应用于男孩的面部。结果,蒙版外部的区域(例如,男孩的头发和图像的背景)保持不变。图像匿名化提供了真实图像900和匿名化图像905之间的一些差异,使得那些图像中的人看起来相似但不相同。因此,匿名化图像905中描绘的男孩具有与真实图像900中描绘的男孩不同的身份,因为机器学习模型225已经修改了(或匿名化了)男孩的身份。 [0111] 在图9中所示的另一个示例中,描绘女人面部的真实图像900被提供给机器学习模型225。机器学习模型225通过修改女人的眉毛、眼睛、鼻子和嘴而将女人的面部匿名化。例如,与真实图像900中的女人的面部相比,匿名化图像905中的女人的面部示出了更深且更重的眉毛、更小的眼睛、更窄的鼻子和更小的嘴。在一些情况下,真实图像900中描绘的女人的表情(例如,微笑)保持相同。包括人的年龄、肤色、种族和性别的某些属性不变。因此,匿名化图像905中描绘的女人具有与真实图像900中描绘的女人不同的身份。 [0112] 图10示出了根据本公开的各方面的用于图像生成的方法的一个示例。在一些示例中,这些操作由包括执行一组代码以控制装置的功能元件的处理器的系统来执行。附加地或替代地,使用专用硬件来执行某些过程。通常,按照根据本公开的各方面描述的方法和过程来执行这些操作。在一些情况下,本文所描述的操作由各种子步骤组成,或者与其它操作一起执行。 [0113] 在操作1005,系统标识包括编码器和解码器的图像生成网络。在一些情况下,该步骤的操作涉及参考图2描述的机器学习模型或可以由参考图2描述的机器学习模型来执行。 在一些示例中,图像生成网络是诸如CoModGAN之类的GAN模型。CoModGAN包括映射网络和合成网络。合成网络的结构在图12中进一步描述。合成网络包括编码器和解码器,其中在U‑net架构中,解码器的层通过跳跃连接而连接到编码器的层。 [0114] 在操作1010,系统修剪编码器的块的通道。在一些情况下,该步骤的操作涉及或可以由参考图2描述的修剪部件来执行。合成网络包括例如范围从4到1024的数个分辨率的编码器块和解码器块。处于特定分辨率(例如,分辨率1024、分辨率512、分辨率256等)的编码器块和解码器块具有层间连接。在一些情况下,在维持输入数据(例如,输入图像)的重要信息的同时,对编码器的块中的50%的通道进行修剪以减小模型尺寸。 [0115] 根据一个实施例,作为图12中所展示的示例合成网络,处于特定分辨率的编码器块的“conv 1”层的输出是对同一编码器块中的“conv 2”层的输入。另外,将编码器块中的“conv 1”层的输出添加到处于相同分辨率的解码器块中的“conv 0”层的输出,以获得组合输出。然后将组合输出馈送到处于相同分辨率的解码器块中的“conv 1”层。 [0116] 在通道修剪期间,修剪部件对分辨率为1024的编码器块的“conv1”层中50%的%通道进行修剪。修剪后的通道具有最小L‑2范数(例如,修剪最接近零的通道)。接下来,修剪部件修剪同一编码器块中的“conv 2”层的输入中的相同通道。 [0117] 在操作1015,系统修剪通过跳跃连接而连接到编码器的块的解码器的块的通道,其中基于编码器的块的修剪后的通道来修剪解码器的块的通道。在一些情况下,该步骤的操作涉及参考图2描述的修剪部件或可以由参考图2描述的修剪部件来执行。修剪部件对相同分辨率的解码器块的“conv 0”层的输出中的相同通道进行修剪。修剪部件对相同分辨率的解码器块的“conv 1”层的输入中的相同通道进行修剪。在一些示例中,还修剪与编码器块中被修剪的那些通道相对应的解码器块中的50%的通道%以减小模型尺寸。 [0118] 在操作1020,系统基于编码器的块的修剪后的通道和解码器的块的修剪后的通道使用图像生成网络来生成图像。在一些情况下,该步骤的操作涉及参考图2描述的图像或可以由参考图2描述的图像生成网络来执行。在一些情况下,图像生成网络(例如,优化的输出模型)基于通道修剪所保留的重要信息来生成输出图像。根据本公开的各方面用于生成输出图像的推断时间在GPU上快两倍并且在CPU上快四倍。 [0119] 图11示出了根据本公开的各方面的用于通道修剪的方法的一个示例。在一些示例中,这些操作由包括执行一组代码以控制装置的功能元件的处理器的系统来执行。附加地或备选地,使用专用硬件来执行某些过程。通常,按照根据本公开的各方面描述的方法和过程来执行这些操作。在一些情况下,本文所描述的操作由各种子步骤组成,或者与其它操作一起执行。 [0120] 在操作1105,系统修剪编码器的块的第一层的通道。在一些情况下,该步骤的操作涉及参考图2描述的修剪部件或可以由参考图2描述的修剪部件来执行。在一些情况下,引导CoModGAN具有层间连接(参见图12)。通过修剪编码器中的第一卷积层的输出来实现定制通道修剪。例如,如图2中所示的修剪部件235修剪编码器的块的第一层的输出。 [0121] 在操作1110,系统基于编码器的块的第一层的修剪后的通道来修剪编码器的块的第二层的通道。在一些情况下,该步骤的操作涉及参考图2描述的修剪部件或可以由参考图 2描述的修剪部件来执行。修剪部件235相应地修剪以下通道。修剪部件235修剪编码器中的第二卷积层的输入。例如,修剪部件235修剪编码器块的第二编码器层。 [0122] 在操作1115,系统基于编码器的块的第一层的修剪后的通道来修剪解码器的块的第一层的通道。在一些情况下,该步骤的操作涉及参考图2描述的修剪部件或可以由参考图 2描述的修剪部件来执行。修剪部件235修剪解码器中的第一卷积层的输出(例如,解码器块的第一层)。 [0123] 在操作1120,系统基于编码器的块的第二层的修剪后的通道来修剪解码器的块的第二层的通道。在一些情况下,该步骤的操作涉及参考图2描述的修剪部件或可以由参考图 2描述的修剪部件来执行。修剪部件修剪解码器块的第二层。 [0124] 根据一些实施例,SVD被应用在基本模型的全连接和1×1卷积层上。另外,修剪部件对高分辨率的编码器块和解码器块应用通道修剪。例如,具有高分辨率的编码器块和解码器块的范围从32到1024。修剪较高分辨率的编码器块和解码器块可以减少推断时间。另外,较低分辨率(例如,4到16)的编码器块和解码器块更有助于生成图像的全局轮廓和一致性。因此,分辨率为4到16的编码器块和解码器块不被修剪。对分辨率为32到1024的编码器块和解码器块进行修剪。机器学习模型维持全局意义上生成的图像并减少推断时间。 [0125] 编码器块和解码器块以CoModGAN彼此连接(参见图12),同时修剪每个分辨率的编码器块和解码器块。然后,在一些情况下,训练部件微调来自通道修剪的输出模型。 [0126] 图12示出了根据本公开的实施例的图像生成网络的通道修剪的一个示例。所示示例包括编码器块1200、第一编码器层1205、第二编码器层1210、解码器块1215、第一解码器层1220、第二解码器层1225和合成网络1230。合成网络1230是参考图5描述的对应元件的一个示例,或者包括参考图5描述的对应元件的实施例。在一些情况下,编码器块1200可以被称为编码器的块。因此,第一编码器层1205可以被称为编码器的块的第一层。第二编码器层 1210可以被称为编码器的块的第二层。在一些情况下,解码器块1215可以被称为解码器的块。因此,第一解码器层1220可以被称为解码器的块的第一层。第二解码器层1225可以被称为解码器的块的第二层。 [0127] 根据一个实施例,CoModGAN包括映射网络和合成网络1230。如图12中所示,图示了合成网络1230的分辨率为1024的编码器块和解码器块的一个示例。合成网络1230包含例如范围从4到1024的数个分辨率的编码器块和解码器块。每个分辨率中的编码器块和解码器块具有层间连接。在一些示例中,来自编码器和解码器的对应通道被一起修剪以保持U‑net架构中的跳跃连接。 [0128] 根据一个实施例,第一编码器层1205是分辨率为1024的编码器块1200中的卷积层(conv 1)。在一些实施例中,第一编码器层1205的输出被输入到编码器块1200的第二编码器层1210。 [0129] 根据一个实施例,第一解码器层1220是分辨率为1024的解码器块1215中的卷积层(conv 0)。将第一编码器层1205的输出添加到第一解码器层1220的输出以获得组合输出(例如,来自圆圈加号的输出)。组合输出被输入到解码器块1215的第二解码器层1225。在通道修剪期间,如图2中所示的修剪部件235修剪处于一定分辨率(例如,分辨率1024)的编码器块1200的第一编码器层1205中的50%的通道。要被修剪的通道具有最小L‑2范数(例如,要修剪最接近零的通道)。 [0130] 根据一个实施例,修剪部件235修剪第二编码器层1210的输入中的相同通道、相同分辨率的第一解码器层1220的输出中的相同通道以及相同分辨率的第二解码器层1225中的相同通道。例如,在分辨率1024下,存在32个通道。在这32个通道中,通道1到16具有为0.9的L‑2范数,并且通道17到32具有为0.001的L‑2范数。结果,编码器块1200的编码器层(例如,第一编码器层1205和第二编码器层1210)和解码器块1215的解码器层(例如,第一解码器层1220和第二解码器层1225)中的通道17‑32被修剪。因此,修剪部件修剪合成网络1230,同时保持架构与层间连接一致。 [0131] 修剪部件还以与上述相同的方式以较低分辨率(例如,分辨率512,分辨率256,分辨率128,分辨率64和分辨率32)修剪合成网络1230。在一些示例中,修剪部件235修剪具有内核尺寸为3的卷积层的分辨率为32到1024的编码器块和解码器块。 [0132] 根据一个实施例,修剪部件基于编码器块1200的修剪来修剪解码器块1215的第二层的通道。基于编码器块1200的第一层来修剪编码器块1200的第二层。 [0133] 根据一个实施例,修剪部件235不修剪合成网络1230中的全局编码器块/层和全局解码器块/层。在一些情况下,不修剪映射网络中的层。 [0134] 图13示出了根据本公开的实施例的通道修剪的一个示例。所示示例包括输入层 1300和输出层1310。在操作1305(例如,修剪1305),系统修剪输入层1300以获得输出层 1310。在一些情况下,该步骤的操作涉及参考图2描述的修剪部件或可以由参考图2描述的修剪部件来执行。例如,输入层1300包括8个卷积层。在修剪之后,50%的输入层1300被去除,并且输出层1310包括4个卷积层。输出层1310包含输入数据的重要信息。因此,就推断时间(等待时间)而言,在通道修剪之后的输出模型在GPU上快两倍并且在CPU上快四倍。 [0135] 图14示出了根据本公开的实施例的用于张量分解的方法的一个示例。在一些示例中,这些操作由包括执行一组代码以控制装置的功能元件的处理器的系统来执行。附加地或备选地,使用专用硬件来执行某些过程。通常,按照根据本公开的各方面描述的方法和过程来执行这些操作。在一些情况下,本文所描述的操作由各种子步骤组成,或者与其它操作一起执行。 [0136] 在操作1405,系统标识图像生成网络。在一些情况下,该步骤的操作涉及或可以由参考图2描述的机器学习模型来执行。在一些情况下,图像生成网络包括在U‑net架构中具有跳跃连接的编码器和解码器。 [0137] 在操作1410,系统对图像生成网络的层执行张量分解。在一些情况下,该步骤的操作涉及参考图2描述的分解部件或可以由参考图2描述的分解部件来执行。在一些情况下,SVD被应用于图像生成网络的层以生成两个张量。在一些情况下,通过保持两个张量之中的低秩张量(或修剪高秩张量),可以保留张量内的最重要的信息。 [0138] 在操作1415,系统基于张量分解来压缩图像生成网络的层。在一些情况下,该步骤的操作涉及或可以由参考图2描述的分解部件来执行。在一些示例中,该系统对图像生成网络的具有内核1×1的全连接层和卷积层执行张量分解。参考图15描述关于张量分解的更多细节。 [0139] 在操作1420,系统基于压缩的层使用图像生成网络来生成图像。在一些情况下,该步骤的操作涉及参考图2描述的图像生成网络或可以由参考图2描述的图像生成网络来执行。在一些示例中,图像生成网络生成匿名化图像(例如,包括匿名化面部的图像)。参考图9描述经由图像生成网络生成的匿名化图像的示例。 [0140] 图15示出了根据本公开的实施例的张量分解的一个示例。所示示例包括层1500、第一张量1505和第二张量1510。层1500是参考图16描述的对应元件的一个示例,或者包括参考图16描述的对应元件的各方面。第一张量1505是参考图16描述的对应元件的一个示例,或者包括参考图16描述的对应元件的各方面。第二张量1510是参考图16描述的对应元件的一个示例,或者包括参考图16描述的对应元件的各方面。 [0141] 张量是数值的多维阵列,并且是矩阵到更高维度的推广。张量及其分解在无监督设置中是有用的。由张量分解所生成的张量包含系统中的实体,其与系统中的其它实体交互,并且张量的值基于其它实体中的变化而变化。 [0142] 参见图15,SVD被应用于具有维度M×N的层1500。SVD过程输出两个张量(例如,第一张量1505和第二张量1510)。第一张量1505是具有维度M×R的向量。第二张量1510是具有维度R×N的向量。在一些情况下,通过保持低秩张量(前几个分量),如图2中所示的机器学习模型225可以用较少的参数保留张量内的最重要的信息。在一些实施例中,可以将应用于FC和Conv 1×1卷积层的张量分解的阈值设置为低,以在SVD之后仅保持秩1(例如,第一分量)。因此,该操作导致最大可能的尺寸减小。 [0143] 图16示出了根据本公开的实施例的tucker分解的一个示例。所示示例包括层 1600、第一张量1605、第二张量1610和第三张量1615。层1600是参考图15描述的对应元件的一个示例,或者包括参考图15描述的对应元件的各方面。第一张量1605是参考图15描述的对应元件的一个示例,或者包括参考图15描述的对应元件的各方面。第二张量1610是参考图15描述的对应元件的一个示例,或者包括参考图15描述的对应元件的各方面。 [0144] tucker分解是一种特殊类型的张量分解,其中将两个SVD而不是一个SVD应用于张量。结果,生成三个张量而不是由张量分解生成的两个张量。在一些情况下,可以将tucker分解应用于Conv 3×3卷积层以生成神经网络的稳定和质量结果。 [0145] 参见图16,张量(例如,张量(out,in,k,k))被重新整形为具有维度M×N的层1600。 在一些示例中,张量(例如,张量(out,in,k,k))是来自张量分解的输出张量。然后,将两个SVD应用于层1600,并生成三个张量。第一张量1605是具有维度M×R1向量,第二张量1610是具有维度R1×R2的向量,并且第三张量1615是具有维度R2×N的向量。 [0146] 在一些示例中,张量/tucker分解被用于压缩模型以获得“分解模型”(见图7)。在一些示例中,张量分解和修剪被用于获得“修剪模型”(参见图6),训练部件被配置为之后对模型进行微调。针对分解模型和修剪模型的微调是相同的。微调与训练引导Co‑Mod‑GAN兼容。即,在训练时不需要改变参数。然后在推断时使用微调后的模型。 [0147] 训练与评估 [0148] 图17示出了根据本公开的实施例的GAN训练的一个示例。所示示例包括生成器 1705和鉴别器1710。GAN包括生成器网络和鉴别器网络。生成器网络生成候选者,而鉴别器网络对它们进行评估。生成器网络学习从潜在空间映射到感兴趣的数据分布,而鉴别器网络将由生成器所产生的候选者与真实数据分布区分开。生成器网络的训练目标是提高鉴别器网络的错误率,例如,产生鉴别器网络分类为真实的新候选者。在训练中,生成器网络生成虚假数据,而鉴别器网络学习该虚假数据。 [0149] 参见图17,在操作1700(例如,采样1700),从真实图像生成样本(例如,真实数据)。 从真实图像生成的样本是对鉴别器1710的第一输入。鉴别器1710在训练期间使用真实数据作为正面示例。在一些实施例中,该步骤的操作涉及参考图2描述的训练部件或可以由参考图2描述的训练部件来执行。 [0150] 根据一个实施例,生成器1705接收随机输入并生成样本(例如,虚假数据)。由生成器1705生成的样本是对鉴别器1710的第二输入。鉴别器1710在训练期间使用虚假数据作为负面示例。 [0151] 在鉴别器训练中,生成器1705不被训练。生成器1705的权重保持恒定,而生成器 1705生成用于鉴别器1710的示例(例如,负面示例)。在一些实施例中,基于生成器损失来训练鉴别器1710。首先,鉴别器1710将由生成器1705生成的虚假数据和真实数据进行分类。然后,使用鉴别器损失来惩罚鉴别器1710将真实数据误分类为虚假数据或将虚假数据误分类为真实数据。接下来,鉴别器1710通过从通过鉴别器1710的鉴别器损失的反向传播来更新鉴别器1710的权重。 [0152] GAN训练以交替周期进行。例如,鉴别器1710被训练一个或多个时期,并且生成器 1705被训练一个或多个时期。训练部件继续以这种方式训练生成器1705和鉴别器1710。 [0153] 本文所描述的说明书和附图表示示例配置,而不表示权利要求范围内的所有实现。例如,可以重新布置、组合或以其它方式修改操作和步骤。此外,可以以框图的形式来表示结构和设备,以表示部件之间的关系并避免模糊所描述的概念。类似的部件或特征可能具有相同的名称,但是可能具有对应于不同附图的不同附图标记。 [0154] 对本公开的一些修改对于本领域技术人员而言是显而易见的,并且在不脱离本公开的范围的情况下,本文所定义的原理可以被应用于变型。因此,本公开不限于本文所描述的示例和设计,而是应符合与本文所公开的原理和新颖特征相一致的最广范围。 [0155] 在本公开和所附权利要求中,词语“或”指示包含性列表,使得例如X、Y或Z的列表意指X或Y或Z或XY或XZ或YZ或XYZ。同样,短语“基于”不被用来表示封闭的条件集。例如,被描述为“基于条件A”的步骤可以基于条件A和条件B两者。换言之,短语“基于”应被解释为意指“至少部分地基于”。此外,词语“一”或“一个”指示“至少一个”。