CN113392968A - 针对神经网络的迭代式小样本精细化的微训练 - Google Patents

针对神经网络的迭代式小样本精细化的微训练 Download PDF

Info

Publication number
CN113392968A
CN113392968A CN202011083316.3A CN202011083316A CN113392968A CN 113392968 A CN113392968 A CN 113392968A CN 202011083316 A CN202011083316 A CN 202011083316A CN 113392968 A CN113392968 A CN 113392968A
Authority
CN
China
Prior art keywords
neural network
training
parameters
hyper
micro
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.)
Pending
Application number
CN202011083316.3A
Other languages
English (en)
Inventor
A·帕特尼
B·L·罗利特
徐英浩
A·L·艾德斯登
A·E·勒福恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN113392968A publication Critical patent/CN113392968A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0012Biomedical image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Radiology & Medical Imaging (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了针对神经网络的迭代式小样本精细化的微训练。所公开的微训练技术通过使用相对短的系列微训练步骤以低学习率执行迭代精细化来提高训练的神经网络的准确性。神经网络训练框架接收训练后的神经网络以及第二训练数据集和超参数集。神经网络训练框架通过使用较低的学习率来调整训练后的神经网络的一个或更多个权重,从而促进增量精度的提高,而本质上不改变训练后的神经网络的计算结构,从而产生微训练的神经网络。可以评估微训练的神经网络的准确性和/或质量的变化。可以在微训练的神经网络上执行其他微训练会话,以进一步提高准确性或质量。

Description

针对神经网络的迭代式小样本精细化的微训练
技术领域
本公开涉及神经网络训练,并且更具体地,涉及对神经网络的迭代式小样本精细化的微训练。
背景技术
常规的神经网络训练技术有时在准确性或质量方面产生不足的结果。当训练基于可能不足、片面的或其组合的数据集时,尤其如此。此外,传统的训练技术通常在训练损失不准确或数据不足导致再训练不切实际或无效的受限情况下无法提供其他改进机会。在生成型神经网络图像合成应用程序中,以生成的图像中的图像伪影的形式出现的结果可能不充分。需要解决这些问题和/或与现有技术相关联的其他问题。
发明内容
公开了一种方法、计算机可读介质和系统,用于微训练神经网络以提高准确性和/或质量。该方法包括使用第一组超参数和第一训练数据集接收训练为满足损失函数的神经网络,接收第二训练数据集,以及接收第二组超参数。在一个实施例中,与第一组超参数中的对应的第一学习参数相比,在第二组超参数中指定的第二学习参数限制了神经网络使用的一个或更多个权重的调整。该方法还包括根据第二组超参数将第二训练数据集应用于神经网络,以通过调整神经网络用来处理第二训练数据集的一个或更多个权重来产生第一微训练神经网络。在某些应用程序中,经训练的神经网络会生成包括视觉伪影的输出数据,并且,根据该方法产生的第一微训练神经网络减少了视觉伪像。
附图说明
图1A示出了根据一个实施例的用于微训练神经网络的方法的流程图。
图1B示出了根据一个实施例的在整个假设空间内的微训练。
图1C示出了根据一个实施例的神经网络框架。
图2A示出了根据一个实施例的用于使用微训练来改善神经网络训练的方法的流程图。
图2B示出了根据一个实施例的各种微训练网络的层之间的平均差的图。
图3示出了根据一个实施例的并行处理单元。
图4A示出了根据一个实施例的在图3的并行处理单元内的一般处理集群。
图4B示出了根据一个实施例的图3的并行处理单元的存储器分区单元。
图5A示出了根据一个实施例的图4A的流式多处理器。
图5B是根据实施例的使用图3的PPU实现的处理系统的概念图。
图5C示出了其中可以实现各种先前实施例的各种架构和/或功能的示例性系统。
具体实施方式
所公开的技术,在本文中称为微训练,通过使用一系列小样本(few-shot)微训练步骤以低学习率执行迭代式精细化来提高训练的神经网络的准确性。微训练步骤包括比对训练的神经网络的初始训练少得多的训练迭代。在这种情况下,较低的学习率有助于在不显著改变训练后的神经网络的计算结构的情况下逐步提高准确性。在本文中,计算结构既指神经网络拓扑又指其中内部表示的各种分布(例如,通过激活权重,激活函数等)。给定的网络拓扑可以指定内部人工神经元节点如何组织成层并相互连接。每个微训练步骤之后可以是评估步骤(例如,来自操作员通过用户界面的输入),以评估增量质量变化。例如,与细线相关联的少量像素(例如,在室外场景中,黑暗的电话线对着明亮的天空)可能会呈现出对人工操作者(查看者)可见的混叠伪像,而这些伪像伪影在常规自动训练中已被忽略;但是,可以在微训练期间对这些像素进行优化,以使其具有适当的抗锯齿效果(antialiased)。在这种情况下,微训练精细化了先前训练的网络,以减少或消除这种视觉上重要的伪像(例如混叠)。
图1A示出了根据一个实施例的用于微训练神经网络的方法110的流程图。尽管在处理单元的上下文中描述了方法110,但是方法110也可以由程序、定制电路或定制电路与程序的组合来执行。例如,方法110可以由GPU(图形处理单元)、CPU(中央处理单元)或能够执行用于评估和训练神经网络的操作的任何处理器执行。此外,本领域普通技术人员将理解,执行方法110的任何系统都在本公开的实施例的范围和精神内。在一个实施例中,处理单元结合神经网络训练框架和/或神经网络运行系统的各种操作来执行方法110。在某些实施例中,处理单元包括并行处理单元的一个或更多个实例,例如图3的并行处理单元300。
方法110在步骤111处开始,其中处理单元使用第一组超参数(HS)和第一训练数据集(DS)接收训练为满足损失函数(LS)的神经网络(GS)。在一个实施例中,神经网络是被配置为生成图像的深度生成型神经网络。在一个实施例中,第一组超参数包括至少一个模型规模参数,诸如时期计数、批处理大小、训练迭代计数、学习率和损失函数。在一个实施例中,历元计数指定所有指定的训练样本上的训练次数。给定训练样本上的每个训练遍历包括一个前向遍历和一个后向遍历。可以将指定的训练样本组织为批次,其中批次大小指定每批次的训练样本数量。训练迭代次数指定了对不同批次进行的、用以一次性在所有可用训练样本上训练给定的神经网络的训练遍历次数。例如,对于1000个训练样本和200个批处理量,需要5次迭代才能完成一个时期。在一个实施例中,给定的一组超参数可以参考训练样本的一个或更多个集合。此外,学习率是一个值,该值可缩放给定神经网络在给定遍历中调整权重的速度。另外,损失函数可以指定由神经网络计算的预测输出与实际输出之间的差。在超参数的情况下,损失函数可以指定用于计算差的函数。
在某些使用情况下,通过使用第一组超参数(HS)和第一训练数据集(DS)优化损失函数(LS),训练神经网络(GS)生成新图像。但是,当使用不同的测试数据集(DT)评估神经网络时,结果可能不令人满意(例如,生成的图像中可见的伪像)。由于一个或更多个原因,可能会导致结果不令人满意。当损失函数LS与测试损失函数(LT)不同时,发生第一示例性原因。因此,当针对测试损失函数LT进行评估时,针对损失函数LS进行优化的训练可能不足。在这种情况下,损失函数(LS)可能会提供不充分的损失反馈,从而以避免视觉伪影的方式训练神经网络GS,而视觉伪影可能仅对LT是重要的。当测试损失函数涉及主观的人类观看者时,这种情况尤其具有挑战性。
当第一训练数据集(DS)的分布与测试数据集(DT)的分布足够不同时,可能会出现结果不令人满意的第二个示例性原因。在这种情况下,第一训练数据集可能缺乏足够的代表性数据来以避免视觉伪像的方式训练神经网络GS。当对第一组超参数(HS)进行次优化调谐时,可能会出现结果不令人满意的第三个示例性原因。但是,仅优化超参数(HS)以克服训练不足通常可能是不切实际的。
当结果不令人满意的上述三个原因中的任何一个在神经网络训练使用情况下可操作时,常规上简单地重新训练神经网络GS不一定可以改善评估结果的质量。改善LS以匹配LT可能是不切实际的;捕获足够大的训练数据集可能是不切实际的;并且,优化HS可能是不切实际的。然而,本文公开的微训练技术提供了一种在不克服不切实际的障碍的情况下改善结果的机制。
在一个实施例中,S等于零,并且神经网络GS是训练后的神经网络(G0),其使用第一训练数据集(D0)和第一组超参数(H0)进行了训练。在各种使用情况下,训练后的神经网络可以生成包括视觉伪像的输出数据。伪像可以包括但不限于几何混叠伪像(例如锯齿状边缘、块状外观)、噪声伪像(例如渲染噪声伪像)、照明效果伪像(例如水反射伪像)和时间伪像(例如闪烁、游泳外观(swimming appearance))。
在步骤113中,处理单元接收第二训练数据集(D1)。第二训练数据集D1可以包括被选择以专门训练神经网络以抑制视觉伪像的附加训练样本。例如,为了改善抗锯齿质量,可以获取描绘细高对比度线条的其他图像,并将其与第二训练数据集(D1)混合,以在微训练期间使用,从而引导神经网络G1产生更连续且美观的抗锯齿线,而不会打扰其他有价值的训练。在步骤115中,处理单元接收第二组超参数(H1)。在一个实施例中,在第二组超参数中指定第二学习参数,以与第一组超参数中的对应的第一学习参数相比,限制由神经网络使用的一个或更多个权重的调整。在一个实施例中,第一学习参数包括第一学习率,并且第二学习参数包括小于第一学习率的第二学习率。在某些实施例中,第二学习率比第一学习率低十倍到低一千倍。例如,第一学习率可以在1e-3至1e-5的范围内,而第二学习率可以在1e-4至1e-8的范围内。
在一个实施例中,第一组超参数包括第一训练迭代计数,并且第二组超参数包括小于第一训练迭代计数的第二训练迭代计数。在某些实施例中,第二训练迭代计数比第一训练迭代计数小一千倍(或更多)。更一般地,第二组超参数可以指定用于训练的总计算量,该总计算量可以比第一组超参数所指定的总计算量小数百至数千倍(或更多倍)。
在步骤117中,处理单元根据第二组超参数将第二训练数据集应用于神经网络,同时调整神经网络用来处理第二训练数据集以产生第一微训练神经网络的一个或多个权重。以这种方式,第一微训练神经网络(G1)代表训练神经网络(G0)的另外的训练实例。
在一个实施例中,处理单元将第二训练数据集与第一训练数据集的至少一部分结合应用以产生第一微训练神经网络。例如,整个第二训练数据集以及整个第一训练数据集可用于训练和产生第一微训练神经网络。在另一个示例中,可以使用整个第二训练数据集以及第一训练数据集的大约一半。可替代地,第二训练数据集和第一训练数据集的各种其他组合可以被应用于训练和产生第一微训练神经网络。在一个实施例中,第二训练迭代计数用于训练和产生第一微训练神经网络。
在一个实施例中,可以在微训练期间调节第一微训练神经网络的每个权重。在替代实施例中,某些权重,例如与特定层相关的权重,可以被锁定并且在微训练期间不被调整。
在一个实施例中,训练后的神经网络实现具有第一组激活函数权重的U-Net架构,并且第一微训练神经网络实现具有第二组不同的激活函数权重的对应的U-Net架构。在各个实施例中,训练神经网络和第一微训练神经网络包括在生成对抗神经网络(GAN)系统内的网络。GAN通常包括一个生成器网络和一个鉴别器网络,每个网络都可以是一个深度神经网络,例如具有任意深度架构的U-Net。GAN结构使生成器网络与鉴别器网络相对立,生成器网络学习生成与自然数据无法区分的合成数据,鉴别器网络学习将合成数据与自然数据区分开。在某些应用程序中,可以训练生成器网络以产生高质量的合成数据,例如合成的虚构图像。在其他应用程序中,鉴别器网络学会了将识别范围推广到自然或初始训练数据之外。在本公开的上下文中,可以在训练期间执行任何技术上可行的训练机制(例如,反向传播),而不会脱离各种实施例的范围和精神。
现在将根据用户的需求,给出关于可用于实现前述框架的各种可选架构和特征的更多说明性信息。应该特别注意的是,以下信息是出于说明目的而提出的,不应以任何方式解释为限制。下列任何特征都可以可选地合并或不排除所描述的其他特征。
图1B示出了根据一个实施例的在整个假设空间140内的微训练。如图所示,未训练的神经网络GU横穿初始训练路径142,从而产生训练的神经网络G0。可以根据任何技术上可行的训练技术来遍历初始训练路径142。训练后的神经网络G0位于局部优化区域144内,但是训练后的神经网络G0可能实际上没有基于第一训练数据集D0和第一组超参数H0提供理想结果146。所公开的方法110和200精细化了训练后的神经网络G0,使其更接近理想结果146。在该示例中,训练后的神经网络G0通过从训练后的神经网络G0到微训练的神经网络G1、G2,最后是G3的路径进行了精细化。此外,该技术提供了主观的人工输入,以使自动训练结果与人工感知更好地对准,从而以视觉上重要且与人类感知不同的方式提高质量,但是难以自动损失函数的形式在算法上建模。
如图所示,初始训练结果使用训练数据集D0,损失函数和超参数H0产生了训练后的神经网络G0。使用所公开的微训练技术的改进的训练结果产生精细化的神经网络G3,其更接近理想结果146。在微训练期间对训练后的神经网络G0进行小的更改保留了使用训练数据集D0进行原始训练的好处,同时允许可以提高质量的较小的修改。例如,精细化的神经网络G1通常可以复制经过训练的神经网络G0,但对激活函数权重进行小的更改可以提高质量。
所公开的微训练技术包括:接收训练的神经网络G0(GSS=0);接收第二训练数据集(例如,D1);接收第二组超参数H1;以及基于神经网络GS训练新的微训练神经网络GS+1。在第一微训练会话中,从神经网络G0生成神经网络G1。在一个实施例中,可以将额外的训练样本添加到后续的第二训练数据集(例如,D2,D3等)中,并且每个后续的微训练会话(例如,迭代)可以产生后续的神经网络G2、G3等。可以执行多个微训练会话以进一步精细化后续的神经网络GS+n。微训练通常保持训练的神经网络的内部计算结构,从而允许在原始训练的神经网络(GS)和随后的微训练的神经网络GS+1的输出上执行比较和内插操作。如图所示,所公开的技术允许微训练的神经网络G3提供比常规训练的神经网络G0更接近理想结果146的结果。此外,所公开的技术提供了神经网络质量的改进,同时有利地仅需要初始训练之外的适度的额外计算工作,因为与传统训练相比,微训练所需的训练迭代数量级要少。
在一个示例性用例中,在产生了微训练的神经网络之后,可以由微训练的神经网络处理某些训练数据,并将结果显示给观看者以进行评估。如果结果被评估为可接受,则观看者可以向用户界面提供输入,以指示已经满足了完成要求。在该示例中,观看者可能正在评估与抗锯齿、降噪、照明效果等相关的视觉伪像。相对于先前的训练会话,这样的视觉伪像可能难以通过算法量化为更好或更差,但是观看者可以基于人类对伪像的感知而容易地提供主观评估。进一步举例,第二训练数据集可以被构造为包括训练数据,该训练数据专门解决了由微训练瞄准的视觉伪像。在抗混叠的特定应用程序中,总屏幕像素的一小部分可能具有伪影,例如与细高对比度线相关的伪影(例如,在室外场景中,黑暗的电话线与明亮的天空相对)。由于只有几个像素受到某些混叠伪影的影响,传统的训练技术可能无法可靠地为这几个像素产生高质量的结果;然而,这些混叠伪像对于观看者而言可能是非常明显的,并且会明显降低图像质量。
图1C示出了根据一个实施例的神经网络框架170。如图所示,神经网络框架170包括鉴别器178,该鉴别器178被配置为接收包括参考图像数据的参考样本176或包括合成图像数据的合成样本186。鉴别器178生成由参数调整单元180使用的损耗输出,用于计算对各个神经网络参数的调整。在以下描述的上下文中,损失表示所选样本176或186是参考样本而不是合成样本的置信度。参数调整单元180还接收超参数作为输入。可以从训练数据集174中选择参考样本176,该训练数据集174包括来自现实世界场景的捕获图像以用作参考样本图像175。生成器184基于先前的训练和潜在随机变量182和/或其他输入来合成样本186。在一个实施例中,发生器184包括第一神经网络,并且鉴别器178包括第二神经网络。
在一个实施例中,神经网络框架170被配置为在生成对抗网络(GAN)模式下操作,其中鉴别器178被训练以识别“真实”参考样本图像175,而生成器184被训练以合成“假”样本186。在一个实施例中,鉴别器178在样本176上进行训练,每个训练遍历包括对样本176进行评估的前向遍历和使用例如反向传播技术对鉴别器178内的权重和/或偏差进行调整的反向遍历。此外,生成器184然后训练以合成可以欺骗鉴别器178的样本186。每个训练遍历包括其中合成样本186的前向遍历,以及其中生成器184内的权重和/或偏差被调整(例如,使用反向传播)的反向遍历。在一个实施例中,参数调整单元180执行反向传播以计算由给定训练遍历产生的新的神经网络参数(例如,权重和/或偏差)。
在对抗训练的过程中,鉴别器178可以学会更好地一般化(generalize),而生成器184可以学会更好地合成。两项改进可能分别有用。在某些用例中,例如图像增强(例如,超分辨率/上采样、抗混叠、去噪等),可能需要训练优化以克服由生成器184内最初训练的神经网络G0合成的图像中的伪像。当神经网络框架170被配置为执行图1A中描述的微训练方法110和/或图2A中描述的方法200时,可以提供这种训练精细化。
在一个实施例中,神经网络框架170被配置为以微训练模式操作,其中样本图像175被选择为专门针对最初训练的神经网络G0中的缺陷。在微训练模式下,生成器184生成样本186,该样本186由用户界面188显示在显示设备上。可以在先前生成的样本旁边显示样本186,并且观看者可以确定样本186是否是对先前生成的样本的改进。此外,用户界面188可以在显示设备上显示一组样本186,并且从观看者接收指示在微训练期间是否已经充分训练发生器184的输入。在一个实施例中,神经网络框架170被配置为执行图1A中描述的方法110和图2A中描述的方法200。神经网络框架170还可执行常规训练技术,包括用于GAN训练的技术。在一个实施例中,常规训练和/或GAN训练可以使用第一组超参数,而微训练可以使用第二组超参数。
图2A示出了根据一个实施例的,用于使用微训练来改善神经网络训练的方法200的流程图。尽管在处理单元的上下文中描述了方法200,但是方法200也可以由程序、定制电路或定制电路与程序的组合来执行。例如,方法200可以由GPU(图形处理单元)、CPU(中央处理单元)或能够执行用于评估和训练神经网络的操作的任何处理器执行。此外,本领域普通技术人员将理解,执行方法200的任何系统都在本公开的实施例的范围和精神内。在一个实施例中,处理单元结合神经网络训练框架和/或神经网络运行系统的各种操作来执行方法200。在某些实施例中,处理单元包括并行处理单元的一个或更多个实例,例如图3的并行处理单元300。在一个实施例中,图1C中描述的神经网络框架170至少部分地在处理单元上实现,并配置为执行方法200。
方法200在步骤201处开始,其中处理单元使用生成器神经网络合成第一组数据。在一个实施例中,生成器神经网络包括方法110的训练后的神经网络。在一个实施例中,合成数据包括一个或更多个图像(例如,视频帧)。可以根据任何技术上可行的技术来生成图像,包括本领域已知的用于深度学习超采样(DLSS)、超分辨率/上采样和/或抗锯齿、去噪以及被配置为充当生成器网络的神经网络等的技术。
在步骤203中,确定是否满足完成要求。可以执行任何技术上可行的技术来确定满足完成要求。在一个实施例中,将合成的一个或更多个图像在显示设备上呈现给人类观看者,并且如果观看者将一个或更多个图像的质量评估为足够好,则满足完成要求。例如,诸如用户界面188的用户界面可以从观看者接收指示结果是可接受的并且因此满足完成要求的输入。在一个实施例中,用户界面在处理单元上执行,图像和用户界面工具呈现在显示设备上。
如果在步骤204中满足完成要求,则方法200终止。否则,如果不满足完成要求,则方法200进行到205。为了完成步骤204,处理单元接收满足完成要求的指示。在一个实施例中,当用户界面接收到微训练已产生足够好的结果的输入指示时,满足完成要求。
在步骤205中,处理单元准备第二训练数据集。在一个实施例中,准备第二训练数据集可以包括通过用户界面接收输入以选择要包括在第二训练数据集中的图像。可以选择图像以更好地使训练数据集Ds中包括的目标输出数据的分布与生成器神经网络的测试需求更好地对准,该训练数据集Ds在由测试数据集DT表示的生成器神经网络的测试需求的生成器神经网络微训练期间使用。准备第二训练数据集可以包括但不限于捕获另外的训练样本,该训练样本专门针对由观看者标识的视觉伪像和/或图像特征,以通过微训练去除。准备第二训练数据集可以进一步包括但不限于从第一训练数据集中去除可能有错误或遗漏的样本,重新捕获错误的样本,以及添加/修改/增强第一训练数据集以更紧密地对准具有测试数据集的第二训练数据集的训练分布。然后,方法200继续执行图1A的方法110以产生微训练的生成器网络。完成方法110后,方法200进入步骤207。
在步骤207中,处理单元使用微训练的生成器网络来合成第二组数据。在一实施例中,合成数据包括一个或更多个图像(例如,视频帧)。可以根据任何技术上可行的技术来生成图像,包括本领域已知的用于深度学习超采样(DLSS)、超分辨率/上采样和/或抗锯齿、去噪、被配置为充当生成器网络的神经网络提供的技术等。
在步骤209中,确定结果在第一组数据和第二组数据之间是否得到改善。在一个实施例中,将包括第一组数据的图像与包括第二组数据的对应图像在显示设备上进行比较,以供人类观看者使用。观看者可以评估所显示图像的质量。例如,可以通过用户界面从观看者接收指示结果得到改善的输入来确定结果得到改善。在一个实施例中,用户界面在处理单元上执行,图像和用户界面工具呈现在显示设备上。
如果在步骤210中改善了结果,则该方法返回到步骤203。否则,该方法进行到步骤211。在步骤211中,处理单元调整一个或更多个微训练参数。此外,处理单元可以丢弃先前由方法110生成的微训练神经网络。调整一个或更多个微训练参数可以包括但不限于将训练样本(例如,图像)添加到第二训练数据集中,从第二训练数据集中去除训练样本,并调整一个或更多个超参数,例如学习率,迭代次数等。在一个实施例中,观看者通过用户界面来执行调整一个或更多个微训练参数。在完成步骤211之后,该方法返回到步骤205。
可以执行方法步骤203到211的多次遍历,直到在步骤204中满足完成要求并且用户界面接收到微训练已产生足够好的结果的输入指示。在方法110的每个微训练期间,都会生成一个后续的新神经网络(例如,G1,G2,G3等)。取决于新的神经网络是否改善结果,可以保留或丢弃每个新的神经网络。
在一个实施例中,方法110和/或方法200可以执行转移学习以产生针对与初始训练的神经网络G0不同的应用程序而优化的新的神经网络GS+n。在另一个实施例中,例如在鉴别器网络中,可以执行方法110和/或方法200以提高通用性。
更一般地,公开的技术提供了对现有(例如,预训练的)神经网络的快速精细化训练,仅使用针对新应用程序的小的训练集的针对新应用程序的快速精细化,以及在训练循环中在操作员中的循环机制。
图2B示出了根据一个实施例的各种微训练网络的层之间的平均差的曲线图250。如图所示,垂直轴252指示从同一父项(即,最初训练的神经网络G0)但具有不同的微训练或由线255、256、257和258表示的微训练深度产生的各种微训练的神经网络(G1,G2等)的层系数(权重和偏差)之间的总体差异。水平轴254包含离散的标记,每个标记分别表示特定神经网络拓扑结构的不同神经网络层的权重和偏差。如图所示,线255指示的层系数的差异通常大于线258指示的层系数的差异。此外,与线255关联的神经网络已经过微训练,以使其比与线258关联的神经网络更远离父神经网络。
如各种微训练神经网络的权重和偏差差异的整体形状所示,与微训练相关的小的迭代步骤和低学习率不会改变微训练神经网络的整体计算结构。保留神经网络之间的计算结构可提供诸如父网络与使用微训练生成的不同网络之间的比较和插值之类的操作。例如,可以训练图像锐化神经网络以提高合成的输出图像的锐度,但是可以将所得的输出图像评估为过度锐化;因而,可以使用父神经网络和图像锐化神经网络之间的权重的平均值或内插来降低锐度。这样的内插步骤仅需要权重和偏差的内插,而无需任何额外的训练。更一般地,可以在父神经网络和从父神经网络产生的微训练网络之间和之中执行计算合成。
并行处理架构
图3示出了根据至少一个实施例的并行处理单元(“PPU”)300。在一个实施例中,PPU 300是在一个或更多个集成电路设备上实现的多线程处理器。PPU 300是被设计为并行处理许多线程的延迟隐藏架构。线程(即,执行线程)是被配置为由PPU 300执行的一组指令的实例。在一个实施例中,PPU 300是图形处理单元(GPU),图形处理单元配置为实现用于处理三维(3D)图形数据的图形渲染管道,以便生成用于在显示设备(诸如液晶显示器(LCD)设备)上显示的二维(2D)图像数据。在其他实施例中,PPU300用于执行通用计算。尽管这里出于说明性目的提供了一个示例性并行处理器,但应强烈注意,仅出于说明性目的而提出了这种处理器,并且可以采用任何处理器来对其进行补充和/或替代。
一个或更多个PPU 300可以被配置成加速高性能计算(HPC)、数据中心和机器学习应用程序。PPU 300可以被配置成加速许多的深度学习系统和应用程序,包括自动驾驶汽车平台、深度学习、高精度语音、图像、文本识别系统、智能视频分析、分子模拟、药物发现、疾病诊断、天气预报、大数据分析、天文学、分子动力学模拟、财务建模、机器人技术、工厂自动化、实时语言翻译、在线搜索优化以及个性化用户推荐等。
如图3所示,PPU 300包括输入/输出(I/O)单元305、前端单元315、调度器单元320、工作分配单元325、集线器330、交叉开关(Xbar)370、一个或更多个通用处理集群(GPC)350和一个或更多个存储器分区单元380。PPU 300通过一个或更多个高速NV链路310互连连接到主机处理器或其他PPU 300。PPU 300连接到包括多个存储器设备的本地存储器304。在一个实施例中,本地存储器包括多个动态随机存取存储器(DRAM)设备。在DRAM设备可配置为高带宽存储器(HBM)子系统,并且在每个设备内堆叠有多个DRAM管芯。
NVLink 310互连使系统能够缩放并包括与一个或更多个CPU300组合的一个或多个PPU,支持PPU 300和CPU之间的高速缓存一致性,以及CPU主控。数据和/或命令可以由NVLink310通过集线器330传送到PPU 300的其他单元或从PPU 300的其他单元传出,PPU300的其他单元例如一个或多个复制引擎、视频编码器、视频解码器、电源管理单元等(未明确示出)。结合图5B更详细地描述了NVLink 310。
I/O单元305被配置为通过互连302从主机处理器(未示出)发送和接收通信(例如,命令、数据)。I/O单元305直接通过互连302或通过一个或更多个中间设备(例如存储器桥)与主机处理器通信。在一个实施例中,I/O单元305可以经由互连302与一个或更多个其他处理器(例如一个或更多个PPU300)通信。在一个实施例中,I/O单元305实现外围组件互连快速(PCIe)接口,用于通过PCIe总线进行通信并且互连302是PCIe总线。在可选的实施例中,I/O单元305实现用于与外部设备通信的任何其他众所周知类型的接口。
I/O单元305对经由互连302接收的分组进行解码。在一个实施例中,分组表示被配置为使PPU 300执行各种操作的命令。I/O单元305如命令所指定的那样将解码的命令发送到PPU 300的各种其他单元。例如,一些命令被发送到前端单元315。其他命令被发送到集线器330或PPU 300的其他单元,例如一个或更多个复制引擎、视频编码器、视频解码器、电源管理单元等(未明确示出)。换句话说,I/O单元305被配置为在PPU 300的各种逻辑单元之间路由通信。
在一个实施例中,由主机处理器执行的程序在缓冲区中对命令流进行编码,该缓冲区将工作负载提供给PPU 300以进行处理。工作负载包括指令和将由那些指令处理的数据。缓冲区是可由主机处理器和PPU 300两者访问(例如,读/写)的存储器中的区域。例如,I/O单元305可以被配置为经由通过互连302传送的存储器请求来访问连接到互连302的系统存储器中的缓冲区。在一个实施例中,主机处理器将命令流写入缓冲区,然后向PPU 300传送指向命令流的开始的指针。前端单元315接收指向一个或更多个命令流的指针。前端单元315管理一个或更多个流,从这些流中读取命令,并将命令转发到PPU 300的各个单元。
前端单元315耦合到调度器单元320,该调度器单元320配置各种GPC 350以处理由一个或更多个流定义的任务。调度器单元320被配置为跟踪与由调度器单元320管理的各种任务有关的状态信息。该状态可以指示任务被分配给哪个GPC 350,无论该任务是活跃的还是非活跃的,与该任务相关联的优先级等等。调度器单元320管理在一个或更多个GPC 350上的多个任务的执行。
调度器单元320耦合到工作分配单元325,该工作分配单元325配置为分派任务以在GPC 350上执行。工作分配单元325跟踪从调度器单元320接收到的多个调度任务。在一个实施例中,工作分配单元325管理每个GPC350的待处理任务池和活跃任务池。待处理任务池包括多个时隙(例如32个时隙),这些时隙包含分配给要由特定的GPC350处理的任务。活跃任务池可包括用于由GPC 350主动处理的任务的多个时隙(例如4个时隙)。随着GPC 350完成对任务的执行,该任务将从GPC 350的活跃任务池中逐出,并且从待处理任务池中选择其他任务之一,并安排其在GPC350上执行。如果活跃任务在GPC 350上处于空闲状态,例如在等待数据依赖性被解决时,则活跃任务从GPC 350中驱逐并返回到待处理任务池,同时选择了待处理任务池中的另一个任务并调度在GPC 350上执行。
工作分配单元325经由XBar 370与一个或更多个GPC 350通信。XBar 370是互连网络,其将PPU 300的许多单元耦合到PPU 300的其他单元。例如,XBar 370可以配置为将工作分配单元325耦合到特定的GPC 350。尽管未明确示出,一个或更多个PPU 300的其他单元也可以通过集线器330连接到XBar 370。
任务由调度器单元320管理,并由工作分配单元325分派给GPC 350之一。GPC 350配置为处理任务并产生结果。结果可以由GPC 350中的其他任务消耗,通过XBar 370路由到不同的GPC 350或存储在存储器304中。结果可以通过存储器分区单元380写到存储器304中,存储器分区单元380实现了用于向存储器304写入数据或从存储器304读取数据的存储器接口。结果可经由NVLink 310发送至另一个PPU 300或CPU。在一个实施例中,PPU 300包括U个分区单元380,其等于耦合到PPU 300的分离且不同的存储器设备304的数量。下面结合图4B更详细地描述存储器分区单元380。
在一个实施例中,主机处理器执行驱动器内核,该驱动程序内核实现应用程序编程接口(API),该应用程序编程接口使在主机处理器上执行的一个或更多个应用程序能够调度操作以在PPU 300上执行。在一个实施例中,多个计算应用程序由PPU 300同时执行,并且PPU 300为多个计算应用程序提供隔离、服务质量(“QoS”)和独立的地址空间。应用程序生成指令(例如,API调用),该指令使驱动器内核生成一个或更多个任务以供PPU 300执行。驱动器内核将任务输出至由PPU 300处理的一个或更多个流。每个任务包括一个或更多个相关线程组,其可以被称为线程束(warp)。在一个实施例中,线程束包括可以并行执行的32个相关线程。协作线程可以指代多个线程,包括用于执行任务并且通过共享存储器交换数据的指令。结合图5A更详细地描述了线程和协作线程。
图4A示出了根据一个实施例的图3的PPU 300的GPC 350。如图4A所示,每个GPC350包括用于处理任务的多个硬件单元。在一个实施例中,每个GPC 350包括管线管理器410、预光栅操作单元(PROP)415、光栅引擎425、工作分配交叉开关(WDX)480、存储器管理单元(MMU)490以及一个或更多个更多的数据处理集群(DPC)420。将理解,图4A的GPC 350可以包括代替图4A所示的单元或除图4A所示的单元之外的其他硬件单元。
在一实施例中,GPC 350的操作由管线管理器410控制。管线管理器410管理一个或更多个DPC 420的配置,以处理分配给GPC 350的任务。在一个实施例中,管理器410可以将一个或多个DPC 420中的至少一个配置为实现图形渲染管线的至少一部分。例如,DPC 420可以被配置为在可编程流式多处理器(SM)440上执行顶点着色器程序。管线管理器410还可以被配置为将从工作分配单元325接收的分组路由到GPC350内部的适当逻辑单元。例如,一些分组可以被路由到PROP 415和/或光栅引擎425中的固定功能硬件单元,而其他分组可以被路由到DPC 420以由图元引擎435或SM 440处理。在一个实施例中,管线管理器410可以配置一个或多个DPC 420中的至少一个以实现神经网络模型和/或计算管线。
PROP单元415被配置为将由光栅引擎425和DPC 420生成的数据路由到光栅操作(ROP)单元,结合图4B更详细地描述。PROP单元415还可被配置为执行用于颜色融合的优化、组织像素数据、执行地址转换等。
光栅引擎425包括多个固定功能硬件单元,其被配置为执行各种光栅操作。在一个实施例中,光栅引擎425包括设置引擎、粗略光栅引擎、剔除引擎、剪切引擎、精细光栅引擎和图块合并引擎。设置引擎接收转换后的顶点,并生成与这些顶点定义的几何图元关联的平面方程。平面方程式被传送到粗略光栅引擎以生成图元的覆盖率信息(例如,图块的x,y覆盖掩码)。粗略光栅引擎的输出将传送到剔除引擎,在剔除引擎中与z测试失败的图元相关联的片段将被剔除,并传输到剪切引擎,在剪切引擎中将位于视锥范围之外的片段进行剪切。那些经过裁剪和剔除的片段可以传递到精细光栅引擎,以基于设置引擎生成的平面方程式生成像素片段的属性。光栅引擎425的输出包括例如将由在DPC 420内实现的片段着色器处理的片段。
GPC 350中包括的每个DPC 420包括M-管道控制器(MPC)430、图元引擎435和一个或更多个SM 440。MPC 430控制DPC 420的操作,将从管线管理器410接收的分组路由到DPC420中的适当单元。例如,可以将与顶点关联的分组路由到图元引擎435,图元引擎435被配置为从存储器304获取与该顶点关联的顶点属性。相比之下,可以将具有着色器程序相关联的分组传送到SM 440。
SM 440包括被配置为处理由多个线程代表的任务的可编程流处理器。每个SM 440是多线程的,并且被配置为同时执行来自特定线程组的多个线程(例如32个线程)。在一个实施例中,SM 440实现SIMD(单指令多数据)架构,其中一组线程(例如,线程束)中的每个线程被配置为基于同一组指令来处理不同的数据集。线程组中的所有线程都执行相同的指令。在另一个实施例中,SM 440实现SIMT(单指令多线程)架构,其中一组线程中的每个线程被配置为基于同一组指令来处理不同的数据集,但是线程组中的单个线程在执行过程中允许发散。在一个实施例中,为每个线程束维护程序计数器、调用栈和执行状态,从而当线程束内的线程发散时,实现线程束和线程束内的串行执行之间的并发。在另一个实施例中,为每个单独的线程维护程序计数器、调用栈和执行状态,从而使所有线程之间,线程束内和线程束之间的平等并发。当为每个单独的线程维持执行状态时,可以收敛并并行执行执行相同指令的线程,以实现最大效率。下面将结合图5A更详细地描述SM 440。
MMU 490在GPC 350和存储器分区单元380之间提供接口。MMU 490可以提供虚拟地址到物理地址的转换,存储器保护以及存储器请求的仲裁。在一个实施例中,MMU 490提供一个或更多个转换后备缓冲区(TLB),用于将虚拟地址转换为存储器304中的物理地址。
图4B示出了根据一个实施例的图3的PPU 300的存储器分区单元380。如图4B所示,存储器分区单元380包括光栅操作(ROP)单元450、二级(L2)高速缓存460和存储器接口470。存储器接口470耦合到存储器304。存储器接口470可以实现32、64、128、1024位数据总线等用于高速数据传输。在一个实施例中,PPU 300包括U个存储器接口470,每对存储器分区单元380一个存储器接口470,其中每对存储器分区单元380连接到存储器304的相应存储器设备。例如,PPU 300最多可以连接到Y个存储设备,例如高带宽存储堆栈或图形双数据速率版本5,同步动态随机存取存储器或其他类型的持久性存储。
在一个实施例中,存储器接口470实现了HBM2存储器接口,并且Y等于U的一半。在一个实施例中,HBM2存储器栈与PPU 300位于同一物理封装上,提供较传统的GDDR5 SDRAM系统可观的功率和面积节省。在一个实施例中,每个HBM2堆栈包括四个存储器管芯,并且Y等于4,而HBM2堆栈每个管芯包括两个128位通道,总共8个通道和1024位的数据总线宽度。
在一个实施例中,存储器304支持单错误校正双错误检测(SECDED)错误校正码(ECC)以保护数据。ECC为对数据损坏敏感的计算应用程序提供了更高的可靠性。在其中PPU300处理非常大的数据集和/或长时间运行应用程序的大规模集群计算环境中,可靠性尤其重要。
在一个实施例中,PPU 300实现多级存储器层次结构。在一个实施例中,存储器分区单元380支持统一存储器以为CPU和PPU 300存储器提供单个统一虚拟地址空间,从而实现虚拟存储器系统之间的数据共享。在一个实施例中,跟踪PPU 300对位于其他处理器上的存储器的访问频率,以确保将存储器页面移动到更频繁地访问页面的PPU 300的物理存储器。在一个实施例中,NVLink 310支持地址转换服务,允许PPU 300直接访问CPU的页表,并由PPU 300提供对CPU存储器的完全访问。
在一个实施例中,复制引擎在多个PPU 300之间或PPU 300与CPU之间传输数据。复制引擎可以为未映射到页表中的地址生成页面错误。然后,存储器分区单元380可以服务于页面错误,将地址映射到页面表中,之后复制引擎可以执行传输。在常规系统中,将存储器固定(例如,不可分页)以用于多个处理器之间的多个复制引擎操作,从而实质上减少了可用存储器。发生硬件页面故障时,可以将地址传递到复制引擎,而不必担心内存页面是否驻留,并且复制过程是透明的。
来自存储器304或其他系统存储器的数据可以由存储器分区单元380获取并存储在L2高速缓存460中,该L2高速缓存460位于芯片上并且在各个GPC 350之间共享。如图所示,每个存储器分区单元380包括与对应的存储器304相关联的L2高速缓存460的一部分。然后,可以在GPC 350内的各个单元中实现低级高速缓存。例如,每个SM 440可以实现一级(L1)高速缓存。L1高速缓存是专用于特定SM 440的专用存储器。来自L2高速缓存460的数据可以被提取并存储在每个L1高速缓存中,以在SM 440的功能单元中进行处理。L2高速缓存460耦合到存储器接口470和XBar 370。
ROP单元450执行与像素颜色有关的图形光栅操作,诸如颜色压缩、像素混合等。ROP单元450还与光栅引擎425一起实施深度测试,从光栅引擎425的剔除引擎接收与像素片段相关联的样本位置的深度。为与片段相关的样本位置针对深度缓冲区中的对应深度来测试深度。如果片段通过了针对样本位置的深度测试,则ROP单元450更新深度缓冲区,并将深度测试的结果发送至光栅引擎425。将意识到,存储器分区单元380的数量可以不同于GPC350的数目,因此,每个ROP单元450可以耦合到每个GPC 350。ROP单元450跟踪从不同GPC350接收到的数据包,并确定将ROP单元450生成的结果通过Xbar 370路由到哪个GPC 350。尽管在图4B中ROP单元450包括在存储器分区单元380内,但是在其他实施例中,ROP单元450可以在存储器分区单元380的外部。例如,ROP单元450可以驻留在GPC 350或其他单元中。
图5A示出了根据一个实施例的图4A的流式多处理器440。如图5A所示,SM 440包括指令高速缓存505、一个或更多个调度器单元510、寄存器文件520、一个或更多个处理器核心550、一个或更多个特殊功能单元(SFU)552、一个或多个负载/存储单元(LSU)554、互连网络580、共享存储器/L1高速缓存570。
如上所述,工作分配单元325分派要在PPU 300的GPC 350上执行的任务。将任务分配给GPC 350内的特定DPC 420,如果该任务与着色器程序相关联,则任务可以被分配给SM440。调度器单元510从工作分配单元325接收任务,并且管理分配给SM 440的一个或更多个线程块的指令调度。调度器单元510调度线程块以作为并行线程的线程束执行,其中每个线程块至少分配一个线程束。在一个实施例中,每个线程束执行32个线程。调度器单元510可以管理多个不同的线程块,将线程束分配给不同的线程块,然后在每个时钟周期内将来自多个不同的协作组的指令调度到各个功能单元(例如,核心550、SFU 552和LSU 554)。
协作组是用于组织通信线程的组的编程模型,其允许开发人员表达线程正在通信的粒度,从而能够表达更丰富,更有效的并行分解。协作启动API支持线程块之间的同步,以执行并行算法。传统编程模型提供了用于同步协作线程的单个简单结构:跨越线程块的所有线程的障碍(例如,syncthreads()函数)。但是,程序员通常希望以小于线程块粒度的大小来定义线程组,并在定义的组内进行同步,以实现更高的性能、设计灵活性以及以集体范围内的功能接口的形式来复用软件。
协作组使程序员能够在子块(例如,小至单个线程)和多块粒度上明确地定义线程组,并执行集体操作,例如对协作组中的线程进行同步。编程模型支持跨软件边界的清洁组合(clean composition),因此库和实用程序功能可以在其本地上下文中安全地同步,而不必对收敛进行假设。协作组原语可实现新的合作并行模式,包括生产者-消费者并行、伺机并行以及整个线程块网格上的全局同步。
分派单元515被配置为将指令发送到一个或更多个功能单元。在该实施例中,调度器单元510包括两个调度单元515,其使得能够在每个时钟周期内调度来自同一线程束的两个不同指令。在替代实施例中,每个调度器单元510可以包括单个调度单元515或附加调度单元515。
每个SM 440包括寄存器文件520,该寄存器文件520为SM 440的功能单元提供一组寄存器。在一个实施例中,寄存器文件520被划分在每个功能单元之间,使得每个功能单元被分配寄存器文件520的专用部分。在另一个实施例中,寄存器文件520在由SM 440执行的不同线程之间划分。寄存器文件520为连接到功能单元的数据路径的操作数提供临时存储。
每个SM 440包括L个处理核心550。在一个实施例中,SM 440包括大量(例如128个等)不同的处理核心550。每个核心550可以包括全管线、单精度、双精度和/或混合精度处理单元,混合精度处理单元包括浮点算术逻辑单元和整数算术逻辑单元。在一个实施例中,浮点算术逻辑单元实现用于浮点算术的IEEE 754-2008标准。在一个实施例中,核心550包括64个单精度(32位)浮点核心、64个整数核心、32个双精度(64位)浮点核心和8个张量核心。
张量核心被配置为执行矩阵运算,并且在一个实施例中,一个或更多个张量核心被包括在核心550中。特别地,张量核心被配置为执行深度学习矩阵算术,例如用于神经网络训练和推理的卷积运算。在一个实施例中,每个张量核在4×4矩阵上操作并且执行矩阵乘法和累加运算D=A×B+C,其中A,B,C和D是4×4矩阵。
在一个实施例中,矩阵乘法输入A和B是16位浮点矩阵,而累加矩阵C和D可以是16位浮点或32位浮点矩阵。张量核心对具有32位浮点累加的16位浮点输入数据进行操作。16位浮点乘法需要64次操作,并产生全精度乘积,然后使用32位浮点加法与其他中间乘积进行累加,以进行4x4x4矩阵乘法。实践中,张量核心用于执行更大的二维或更高维矩阵运算,这些运算由这些较小的元素构成。诸如CUDA 9C++API之类的API公开了专门的矩阵加载、矩阵乘法和累加以及矩阵存储操作,以有效地使用CUDA-C++程序中的张量核心。在CUDA级别,线程束级别的接口假定16×16大小的矩阵跨越线程束的所有32个线程。
每个SM 440还包括执行特殊功能(例如,属性评估、倒数平方根等)的M个SFU 552。在一个实施例中,SFU 552可以包括被配置为遍历分层树数据结构的树遍历单元。在一个实施例中,SFU 552可以包括被配置为执行纹理图过滤操作的纹理单元。在一个实施例中,纹理单元被配置为从存储器304加载纹理图(例如,纹理像素的2D阵列)并且对纹理图进行采样以产生采样的纹理值以用于由SM 440执行的着色器程序中。然后,纹理图被存储在共享存储器/L1高速缓存470中。纹理单元使用mip-map(例如,细节水平不同的纹理贴图)来实现诸如过滤操作之类的纹理操作。在一个实施例中,每个SM 340包括两个纹理单元。
每个SM 440还包括N个LSU 554,其实现共享存储器/L1高速缓存570和寄存器文件520之间的加载和存储操作。每个SM 440包括将每个功能单元连接到寄存器文件520和将LSU 554连接到寄存器文件520的互连网络580,共享存储器/L1高速缓存570。在一个实施例中,互连网络580是交叉开关,其可以被配置为将任何功能单元连接到寄存器文件520中的任何寄存器,并将LSU 554连接到共享存储器/L1高速缓存570中的寄存器文件和存储器位置。
共享存储器/L1高速缓存570是芯片上存储器的阵列,其允许在SM 440和图元引擎435之间以及在SM 440中的线程之间进行数据存储和通信。在一个实施例中,共享存储器/L1高速缓存570包括128KB的存储容量,并且在从SM 440到存储器分区单元380的路径中。共享存储器/L1高速缓存570可以用于高速缓存读取和写入。共享存储器/L1高速缓存570、L2高速缓存460和存储器304中的一个或更多个是后备存储器。
将数据高速缓存和共享存储器功能组合到单个存储器块中,为两种类型的存储器访问提供了最佳的整体性能。该容量可用作不使用共享内存的程序的高速缓存。例如,如果将共享存储器配置为使用一半容量,则纹理和加载/存储操作可以使用剩余容量。共享存储器/L1高速缓存570中的集成使共享存储器/L1高速缓存570能够用作用于流传输数据的高吞吐量管道,同时提供对频繁重用的数据的高带宽和低延迟访问。
当配置用于通用并行计算时,与图形处理相比,可以使用更简单的配置。具体来说,图3中所示的固定功能图形处理单元被绕过,从而创建了一个更为简单的编程模型。在通用并行计算配置中,工作分配单元325将线程块直接分配并分发给DPC 420。块中的线程在计算中使用唯一的线程ID执行同一程序,以确保每个线程使用SM 440执行程序并执行计算从而生成唯一的结果,使用共享存储器/L1高速缓存570在线程之间进行通信,以及使用LSU 554通过共享存储器/L1高速缓存570和存储器分区单元380读取和写入全局存储器。当配置用于通用并行计算时,SM 440还可以编写调度程序单元320可以用来在DPC 420上启动新工作的命令。
PPU 300可以包括在台式计算机、膝上型计算机、平板计算机、服务器、超级计算机、智能电话(例如,无线,手持设备)、个人数字助理(PDA)、数码相机、车辆、头戴式显示器、手持式电子设备等。在一个实施例中,PPU 300体现在单个半导体衬底上。在另一实施例中,PPU 300与一个或更多个其他设备(例如附加的PPU 300、存储器304、精简指令集计算机(RISC)CPU、存储器管理单元(MMU),数模转换器(DAC)等一起被包括在片上系统(SoC)中。
在一个实施例中,PPU 300可以被包括在包括一个或更多个存储设备的图形卡上。图形卡可以配置为与台式计算机主板上的PCIe插槽交互。在又一个实施例中,PPU 300可以是集成在母板的芯片组中的图形处理单元(iGPU)或并行处理器。
示例性计算系统
随着开发人员公开并利用诸如人工智能计算之类的应用程序中的更多并行性,具有多个GPU和CPU的系统被用于各种行业。具有数十至数千个计算节点的高性能GPU加速系统已部署在数据中心、研究机构和超级计算机中,以解决越来越大的问题。随着高性能系统中处理设备的数量增加,通信和数据传输机制需要扩展以支持增加的带宽。
图5B是根据一个实施例的使用图3的PPU 300实现的处理系统500的概念图。示例性系统565可以被配置为实现图1A所示的方法110和/或图2A所示的方法200。处理系统500包括CPU 530、开关510和多个PPU300,以及相应的存储器304。NVLink310提供每个PPU 300之间的高速通信链路。尽管特定数量的NVLink 310和互连302连接是如图5B所示,到每个PPU 300和CPU 530的连接数可以变化。开关510在互连302和CPU 530之间进行交互。PPU300、存储器304和NVLink 310可以位于单个半导体平台上以形成并行处理模块525。在一个实施例中,开关510支持两个或更多在各种不同的连接和/或链接之间进行交互的协议。
在另一实施例(未示出)中,NVLink 310在每个PPU 300和CPU 530之间提供一个或更多个高速通信链路,并且开关510在互连302与每个PPU 200之间交互。PPU 300、存储器304和互连302可以位于单个半导体平台上以形成并行处理模块525。在又一实施例(未示出)中,互连302在每个PPU 300和CPU 530之间提供一个或更多个通信链路,以及开关510在使用NVLink 310每个PPU 300之间进行交互以提供PPU 300之间的一个或更多个高速通信链路。在另一实施例(未示出)中,NVLink 310通过开关510在PPU 300和CPU 530之间提供一个或更多个高速通信链路。在又一实施例(未示出)中,互连302直接在每个PPU 300之间提供一个或更多个通信链路。NVLink 310高速通信链路中的一个或更多个可使用与NVLink310相同的协议实现为物理NVLink互连或片上或裸片互连。
在本说明书的上下文中,单个半导体平台可以指代制造在管芯或芯片上的唯一的单一的基于半导体的集成电路。应当注意,术语“单个半导体平台”也可以指具有增加的连通性的多芯片模块,其模拟芯片上的操作并相对于利用传统总线实现方式做出了实质性的改进。当然,根据用户的需求,各种电路或设备也可以分开放置或以半导体平台的各种组合放置。可替代地,并行处理模块525可以被实现为电路板基板,并且每个PPU 300和/或存储器304可以是封装的设备。在一个实施例中,CPU 530,开关510和并行处理模块525位于单个半导体平台上。
在一个实施例中,每个NVLink 310的信令速率是20至25Gigabits/s,并且每个PPU300包括六个NVLink 310接口(如图5B所示,每个PPU 300包括五个NVLink 310接口)。每个NVLink 310在每个方向上提供25Gigabytes/s的数据传输速率,其中六个链接提供300Gigabytes/s。当CPU 530还包括一个或更多个NVLink 310接口时,NVLinks 310可以专门用于PPU到PPU的通信(如图5B所示),或用于PPU到PPU和PPU到CPU的某种组合的通信。
在一个实施例中,NVLink 310允许从CPU 530到每个PPU 300存储器304的直接加载/存储/原子访问。在一个实施例中,NVLink 310支持一致性操作,从而允许将从存储器304读取的数据存储在CPU 530的高速缓存层次结构中,其减少了对CPU 530的高速缓存访问延迟。在一个实施例中,NVLink 310包括对地址转换服务(ATS)的支持,从而允许PPU 300直接访问CPU 530内的页表。NVLink 310中的一个或更多个也可以被配置为以低功率模式操作。
图5C示出了示例性系统565,在其中可以实现各种先前实施例的各种架构和/或功能。示例性系统565可以被配置为实现图1A所示的方法110和图2A所示的方法200。
如图所示,提供了系统565,该系统565包括至少一个连接至通信总线575的中央处理单元530。通信总线575可使用任何合适的协议来实现,例如PCI(外围组件互连),PCI-Express,AGP(加速图形端口),HyperTransport(超传输)或任何其他总线或点对点通信协议。系统565还包括主存储器540。控制逻辑(软件)和数据存储在主存储器540中,其可以采取随机存取存储器(RAM)的形式。
系统565还包括输入设备560、并行处理系统525和显示设备545,例如传统的CRT(阴极射线管)、LCD(液晶显示器)、LED(发光二极管)、等离子显示器等。可以从输入设备560接收用户输入,输入设备560例如键盘、鼠标、触摸板、麦克风等。前述模块和/或设备中的每一个甚至可以位于单个半导体平台上以形成系统565。或者,根据用户的需求,各种模块也可以分别位于半导体平台中,或者以半导体平台的各种组合来定位。
此外,系统565可以通过网络接口535耦合到网络(例如,电信网络、局域网(LAN)、无线网络、诸如互联网的广域网(WAN)、对等网络、电缆网络接口等)以用于通信目的。
系统565还可以包括辅助存储器(未示出)。辅助存储器610包括例如硬盘驱动器和/或可移动存储驱动器,其代表软盘驱动器、磁带驱动器、光盘驱动器、数字多功能盘(DVD)驱动器、记录设备、通用串行总线(USB)闪存。可移动存储驱动器以众所周知的方式从可移动存储单元读取和/或写入可移动存储单元。
计算机程序或计算机控制逻辑算法可以存储在主存储器540和/或辅助存储器中。这样的计算机程序在被执行时使系统565能够执行各种功能。存储器540、存储器和/或任何其他存储器是计算机可读介质的可能示例。
各个先前附图的架构和/或功能可以在通用计算机系统、电路板系统、专用于娱乐目的的游戏控制台系统、专用系统和/或其他所需的系统的上下文中实现。例如,系统565可以采取台式计算机、膝上型计算机、平板计算机、服务器、超级计算机、智能电话(例如,无线、手持设备)、个人数字助理(PDA)、数码相机、车辆、头戴式显示器、手持式电子设备、移动电话设备、电视、工作站、游戏机、嵌入式系统和/或任何其他类型的逻辑。
尽管上面已经描述了各种实施例,但是应该理解,它们仅是示例性的,而非限制性的。因此,优选实施例的广度和范围不应受到任何上述示例性实施例的限制,而应仅根据所附权利要求及其等同物来限定。
机器学习
在诸如PPU 300之类的处理器上开发的深度神经网络(DNN)已用于各种用例,从无人驾驶汽车到更快的药物开发,从在线图像数据库中的自动图像字幕到智能实时语言视频聊天应用程序中的翻译。深度学习是一种模拟人脑的神经学习过程,不断学习,不断变得更聪明并随着时间推移更快地提供更准确结果的技术。最初,成人会教孩子正确识别和分类各种形状,最终无需任何指导即可识别形状。类似地,深度学习或神经学习系统需要在对象识别和分类方面进行训练,因为它在识别基本对象,被遮挡的对象等方面变得更聪明,更有效,同时还为对象分配了上下文。
在最简单的水平上,人脑中的神经元查看接收到的各种输入,将重要性级别分配给这些输入中的每一个,并将输出传递给其他神经元以对其进行操作。人工神经元或感知器是神经网络的最基本模型。在一个示例中,感知器可以接收表示该感知器被训练以识别和分类的对象的各种特征的一个或更多个输入,并且基于该特征在定义对象的形状的重要性中为这些特征中的每一个分配一定的权重。
深度神经网络(DNN)模型包括许多连接节点的多层(例如,感知器、玻尔兹曼机器、径向基函数、卷积层等),可以用大量输入数据对其进行训练以快速解决高精度复杂问题。在一个示例中,DNN模型的第一层将汽车的输入图像分解为各个部分,并寻找诸如线条和角度之类的基本图案。第二层组装线以寻找更高级别的图案,例如车轮、挡风玻璃和后视镜。下一层标识车辆的类型,最后几层为输入图像生成标签,识别特定汽车品牌的模型。
一旦训练了DNN,就可以部署DNN并将其用于在称为推理的过程中以识别和分类对象或模型。推理的示例(DNN从给定输入中提取有用信息的过程)包括识别存入ATM机的支票上的手写数字,识别照片中朋友的图像,向超过五千万用户提供电影推荐,识别和分类不同类型无人驾驶汽车中的汽车、行人和道路危险,或者实时翻译人类语音。
在训练期间,数据在前向传播阶段流经DNN,直到产生指示对应于输入的标签的预测为止。如果神经网络未正确标记输入,则将分析正确标记和预测标记之间的错误,并在反向传播阶段调整每个特征的权重,直到DNN在训练数据集中正确标记输入和其他输入。训练复杂的神经网络需要大量的并行计算性能,包括PPU 300支持的浮点乘法和加法。推理的计算密集度比训练要少,这是对延迟敏感的过程,其中将训练后的神经网络应用于以前从未见过的用于分类图像、翻译语音和推断新信息的新输入。
神经网络严重依赖于矩阵数学运算,并且复杂的多层网络需要大量的浮点性能和带宽以提高效率和速度。PPU 300拥有数千个处理内核,针对矩阵数学运算进行了优化,并提供数十至数百TFLOPS的性能,是一个能够提供基于深度神经网络的人工智能和机器学习应用所需的性能的计算平台。
注意,本文描述的技术(例如,方法110和200)可以体现在存储在计算机可读介质中的可执行指令中,以供基于处理器的指令执行机器、系统、装置或设备使用或与其结合使用。本领域技术人员将意识到,对于一些实施例,可以包括各种类型的计算机可读介质来存储数据。如本文所使用的,“计算机可读介质”包括用于存储计算机程序的可执行指令的任何合适的介质中的一个或更多个,使得指令执行机器、系统、装置或设备可以从计算机可读介质中读取(或取回)指令,并执行用于执行所描述的实施例的指令。合适的存储格式包括电子、磁性、光学和电磁格式中的一种或更多种。传统示例性计算机可读介质的非穷举列表包括:便携式计算机软盘,随机存取存储器(RAM),只读存储器(ROM),可擦可编程只读存储器(EPROM),闪存设备,以及包括便携式光盘(CD)、便携式数字视频光盘(DVD)等的光学存储设备。
应该理解,附图中示出的组件的布置是出于说明的目的,并且其他布置也是可能的。例如,本文描述的一个或更多个元件可以全部或部分地实现为电子硬件组件。其他元件可以实现为软件、硬件或软件和硬件的组合。而且,可以组合这些其他元件中的一些或全部,可以完全省略一些其他元件,并且可以添加附加组件,同时仍然实现本文所述的功能。因此,本文描述的主题可以以许多不同的变型体现,并且所有这样的变型都被认为在权利要求的范围内。
为了辅助对本文描述的主题的理解,根据动作序列描述了许多方面。本领域技术人员将认识到,各种动作可以由专用电路或电路,由一个或更多个处理器执行的程序指令,或两者的结合来执行。本文对任何动作序列的描述并不旨在暗示必须遵循为执行该序列而描述的特定顺序。除非本文另外指出或与上下文明显矛盾,否则本文描述的所有方法可以以任何合适的顺序执行。
在所描述主题的上下文中(特别是在所附权利要求的上下文中)术语“一”,“一个”和“该”以及类似的引用的使用应解释为涵盖单数形式和复数形式,除非本文另有说明或与上下文明显矛盾。术语“至少一个”之后是一个或更多个项目的列表(例如,“A和B中的至少一个”)应解释为是指从所列项目(A或B)中选择的一个项目)或两个或更多个所列项目(A和B)的任意组合,除非本文另有说明或与上下文明显矛盾。此外,前述描述仅出于说明的目的,而非出于限制的目的,因为所寻求的保护范围由下文所述的权利要求及其等同形式限定。除非另外要求,否则本文提供的任何和所有示例或示例性语言(例如“诸如”)的使用仅旨在更好地说明主题,并且不对主题的范围构成限制。在权利要求书和书面描述中,术语“基于”和其他类似的短语的使用表示产生结果的条件,并不旨在排除产生该结果的任何其他条件。说明书中的任何语言都不应解释为指示任何未要求保护的要素对于实施所要求保护的发明是必不可少的。

Claims (20)

1.一种方法,包括:
接收使用第一组超参数和第一训练数据集训练为满足损失函数的神经网络,其中,训练后的神经网络生成包括视觉伪像的输出数据;
接收第二训练数据集;
接收第二组超参数,其中与所述第一组超参数中的对应的第一学习参数相比,在所述第二组超参数中指定的第二学习参数限制对所述神经网络使用的一个或更多个权重的调整;和
根据所述第二组超参数将所述第二训练数据集应用于所述神经网络,同时调整所述一个或更多个权重,所述神经网络使用所述一个或更多个权重处理所述第二训练数据集,以产生第一微训练神经网络。
2.根据权利要求1所述的方法,其中,所述第一学习参数包括第一学习率,并且所述第二学习参数包括小于所述第一学习率的第二学习率。
3.根据权利要求2所述的方法,其中,所述第二学习率比所述第一学习率低至少十倍。
4.根据权利要求1所述的方法,还包括:确定已经满足完成要求。
5.根据权利要求4所述的方法,其中确定包括从用户界面接收输入指示。
6.根据权利要求1所述的方法,还包括:使用所述第一微训练神经网络从所述第二训练数据集中的相应训练图像生成并显示测试图像,其中,相对于针对所述相应训练图像通过所述神经网络所生成的第二测试图像,减少了在所述测试图像内的所述视觉伪像。
7.根据权利要求1所述的方法,其中,所述视觉伪像包括几何混叠伪像。
8.根据权利要求1所述的方法,其中,所述视觉伪像包括渲染噪声伪像。
9.根据权利要求1所述的方法,其中,所述视觉伪像包括照明效果伪像。
10.根据权利要求1所述的方法,其中,所述神经网络利用第一组激活函数权重来实现U-Net架构,并且所述第一微训练神经网络利用第二组不同的激活函数权重来实现相应的U-Net架构。
11.根据权利要求1所述的方法,其中,所述第一组超参数包括第一训练迭代计数,并且所述第二组超参数包括小于所述第一训练迭代计数的第二训练迭代计数。
12.根据权利要求11所述的方法,其中,所述第二训练迭代计数比所述第一训练迭代计数小至少一千倍。
13.一种系统,包括:
存储电路,存储有编程指令;
并行处理单元,耦合到所述存储电路,其中,所述并行处理单元检索并执行所述编程指令以:
接收使用第一组超参数和第一训练数据集进行训练以满足损失函数的神经网络,其中,训练后的神经网络生成包括视觉伪像的输出数据;
接收第二训练数据集;
接收第二组超参数,其中与所述第一组超参数中的对应的第一学习参数相比,在所述第二组超参数中指定的第二学习参数限制对所述神经网络使用的一个或更多个权重的调整;和
根据所述第二组超参数将所述第二训练数据集应用于所述神经网络,同时调整所述神经网络处理所述第二训练数据集所使用的所述一个或更多个权重,以产生第一微训练神经网络。
14.根据权利要求13所述的系统,其中,所述第一学习参数包括第一学习率,并且所述第二学习参数包括小于所述第一学习率的第二学习率,所述第二学习率比所述第一学习率低至少十倍。
15.根据权利要求13所述的系统,其中,所述视觉伪像包括以下一项或更多项:几何混叠伪像、渲染噪声伪像和照明效果伪像。
16.根据权利要求13所述的系统,其中,所述第一组超参数包括第一训练迭代计数,并且所述第二组超参数包括小于所述第一训练迭代计数的第二训练迭代计数。
17.根据权利要求13所述的系统,其中,所述神经网络利用第一组激活函数权重来实现U-Net架构,并且所述第一微训练神经网络利用第二组不同的激活函数权重来实现相应的U-Net架构。
18.一种非暂时性计算机可读介质,存储用于面部分析的计算机指令,当由一个或更多个处理器执行所述计算机指令时,使得所述一个或更多个处理器执行以下操作:
接收使用第一组超参数和第一训练数据集进行训练以满足损失函数的神经网络,其中,训练后的神经网络生成包括视觉伪像的输出数据;
接收第二训练数据集;
接收第二组超参数,其中与所述第一组超参数中的对应的第一学习参数相比,在所述第二组超参数中指定的第二学习参数限制对所述神经网络使用的一个或更多个权重的调整;和
根据所述第二组超参数将所述第二训练数据集应用于所述神经网络,同时调整所述神经网络处理所述第二训练数据集所使用的所述一个或更多个权重,以产生第一微训练神经网络。
19.根据权利要求18所述的非暂时性计算机可读介质,其中,所述第一学习参数包括第一学习率,并且所述第二学习参数包括小于所述第一学习率的第二学习率,所述第二学习率比所述第一学习率低至少十倍。
20.根据权利要求18所述的非暂时性计算机可读介质,其中所述第一组超参数包含第一训练迭代计数,并且所述第二组超参数包含小于所述第一训练迭代计数的第二训练迭代计数。
CN202011083316.3A 2020-03-13 2020-10-12 针对神经网络的迭代式小样本精细化的微训练 Pending CN113392968A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/818,266 US20210287096A1 (en) 2020-03-13 2020-03-13 Microtraining for iterative few-shot refinement of a neural network
US16/818,266 2020-03-13

Publications (1)

Publication Number Publication Date
CN113392968A true CN113392968A (zh) 2021-09-14

Family

ID=77457440

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011083316.3A Pending CN113392968A (zh) 2020-03-13 2020-10-12 针对神经网络的迭代式小样本精细化的微训练

Country Status (3)

Country Link
US (1) US20210287096A1 (zh)
CN (1) CN113392968A (zh)
DE (1) DE102021105249A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114331806A (zh) * 2022-03-17 2022-04-12 南京砺算科技有限公司 图形处理器及图形处理方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755951B2 (en) * 2020-05-15 2023-09-12 Vmware, Inc. Machine learning with an intelligent continuous learning service in a big data environment
US20210374128A1 (en) * 2020-06-01 2021-12-02 Replica Analytics Optimizing generation of synthetic data
US11836221B2 (en) * 2021-03-12 2023-12-05 Google Llc Systems and methods for refined object estimation from image data
CN115409124B (zh) * 2022-09-19 2023-05-23 小语智能信息科技(云南)有限公司 基于微调原型网络的小样本敏感信息识别方法
CN117079263B (zh) * 2023-10-16 2024-01-02 内江师范学院 一种碑文文字提取方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105637540A (zh) * 2013-10-08 2016-06-01 谷歌公司 用于强化学习的方法和设备
US20180164812A1 (en) * 2016-12-14 2018-06-14 Samsung Electronics Co., Ltd. Apparatus and method for generating training data to train neural network determining information associated with road included in image
US20180260703A1 (en) * 2016-11-22 2018-09-13 Massachusetts Institute Of Technology Systems and methods for training neural networks
CN108537859A (zh) * 2017-03-02 2018-09-14 奥多比公司 使用深度学习的图像蒙板
CN110582748A (zh) * 2017-04-07 2019-12-17 英特尔公司 用于提升用于深度学习的深度神经网络的方法和系统
US20200050923A1 (en) * 2018-08-09 2020-02-13 Nvidia Corporation Detecting visual artifacts in image sequences using a neural network model

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100611B2 (en) * 2019-03-29 2021-08-24 GE Precision Healthcare LLC Systems and methods for background noise reduction in magnetic resonance images
US11610154B1 (en) * 2019-04-25 2023-03-21 Perceive Corporation Preventing overfitting of hyperparameters during training of network
US11100684B2 (en) * 2019-07-11 2021-08-24 Canon Medical Systems Corporation Apparatus and method for artifact detection and correction using deep learning

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105637540A (zh) * 2013-10-08 2016-06-01 谷歌公司 用于强化学习的方法和设备
US20180260703A1 (en) * 2016-11-22 2018-09-13 Massachusetts Institute Of Technology Systems and methods for training neural networks
US20180164812A1 (en) * 2016-12-14 2018-06-14 Samsung Electronics Co., Ltd. Apparatus and method for generating training data to train neural network determining information associated with road included in image
CN108537859A (zh) * 2017-03-02 2018-09-14 奥多比公司 使用深度学习的图像蒙板
CN110582748A (zh) * 2017-04-07 2019-12-17 英特尔公司 用于提升用于深度学习的深度神经网络的方法和系统
US20200050923A1 (en) * 2018-08-09 2020-02-13 Nvidia Corporation Detecting visual artifacts in image sequences using a neural network model

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114331806A (zh) * 2022-03-17 2022-04-12 南京砺算科技有限公司 图形处理器及图形处理方法

Also Published As

Publication number Publication date
US20210287096A1 (en) 2021-09-16
DE102021105249A1 (de) 2021-09-16

Similar Documents

Publication Publication Date Title
CN110176054B (zh) 用于训练神经网络模型的合成图像的生成
US20230410375A1 (en) Temporally stable data reconstruction with an external recurrent neural network
US10922793B2 (en) Guided hallucination for missing image content using a neural network
US10970816B2 (en) Motion blur and depth of field reconstruction through temporally stable neural networks
US11475542B2 (en) Neural network system with temporal feedback for adaptive sampling and denoising of rendered sequences
US10565747B2 (en) Differentiable rendering pipeline for inverse graphics
US11507846B2 (en) Representing a neural network utilizing paths within the network to improve a performance of the neural network
US11557022B2 (en) Neural network system with temporal feedback for denoising of rendered sequences
US20190147296A1 (en) Creating an image utilizing a map representing different classes of pixels
US10762620B2 (en) Deep-learning method for separating reflection and transmission images visible at a semi-reflective surface in a computer image of a real-world scene
US11836597B2 (en) Detecting visual artifacts in image sequences using a neural network model
CN111210498B (zh) 降低多边形网格的细节水平以减少被渲染几何的复杂度
CN110766778B (zh) 使用散列执行并行路径空间滤波的方法和系统
CN113392968A (zh) 针对神经网络的迭代式小样本精细化的微训练
US11494879B2 (en) Convolutional blind-spot architectures and bayesian image restoration
CN115379185B (zh) 使用可变速率着色的运动自适应渲染
CN111445003A (zh) 神经网络生成器
CN112041894A (zh) 渲染期间提高涉及水面的场景的真实感
CN115797543A (zh) 单个图像逆向渲染
US20220012536A1 (en) Creating an image utilizing a map representing different classes of pixels
CN113822975B (zh) 用于对图像进行有效采样的技术
CN113808183B (zh) 使用扭曲的复合估计乘积积分
CN111221498A (zh) 动态方向舍入
US11861811B2 (en) Neural network system with temporal feedback for denoising of rendered sequences

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