掌桥专利:专业的专利平台
掌桥专利
首页

用于生成版图的方法、设备和介质

文献发布时间:2024-04-18 19:52:40


用于生成版图的方法、设备和介质

技术领域

本公开的实施例主要涉及计算机辅助设计领域,并且更具体地,涉及用于生成版图的方法、设备和介质。本公开的实施例还涉及用于生成训练数据的方法、设备和介质、以及用于训练机器学习模型的方法、设备和介质。

背景技术

在集成电路(Integrated Circuit,IC)制造中,在完成电路设计以后,还需要进行芯片版图设计。将门级网表(Netlist)设计为版图,并通过版图生产版图掩膜,然后进行逐层版图的光刻,以制造芯片。

由于版图数据往往属于核心资产,并且通常无法轻易获得,因此版图资源比较缺乏。与此同时,又需要使用版图数据来进行针对集成电路辅助设计的开发与研究。因此,如何更高效地生成版图成为亟待解决的问题。

发明内容

在本公开的第一方面中,提供了一种用于生成版图的方法。该方法包括:获取被摆放成参考布局的多个参考版图元素的相应参考元素表示,每个参考版图元素的参考元素表示指示该参考版图元素在参考布局中的位置、该参考版图元素的类型、以及该参考版图元素在与多个参考版图元素相对应的参考版图元素序列中的排列状态;基于多个参考版图元素的相应参考元素表示,利用第一机器学习模型来生成一个或多个待摆放版图元素的相应目标元素表示,每个待摆放版图元素的目标元素表示指示该待摆放版图元素在目标布局中的位置、该待摆放版图元素的类型、以及该待摆放版图元素在与该待摆放版图元素相关联的版图元素序列中的排列状态;以及基于一个或多个待摆放版图元素的相应目标元素表示,生成目标版图。

在本公开的第二方面中,提供了一种用于生成训练数据的方法。该方法包括:基于训练版图中的第一训练版图元素,从训练版图中选择多个训练版图元素,多个训练版图元素包括第一训练版图元素;以及基于多个训练版图元素在训练版图中的布局,确定多个训练版图元素的相应训练元素表示,以获得用于训练第一机器学习模型的训练数据,每个训练版图元素的训练元素表示指示该训练版图元素在布局中的位置、该训练版图元素的类型、以及该训练版图元素在与多个训练版图元素相对应的训练版图元素序列中的排列状态,其中第一训练版图元素位于训练版图元素序列的第一位。

在本公开的第三方面中,提供了一种用于训练机器学习模型的方法。该方法包括:获取被摆放成训练布局的多个训练版图元素的相应训练元素表示,每个训练版图元素的训练元素表示指示该训练版图元素在训练布局中的位置、该训练版图元素的类型、以及该训练版图元素在与多个训练版图元素相对应的训练版图元素序列中的排列状态;基于多个训练版图元素的相应训练元素表示,利用第一机器学习模型来生成多个待摆放版图元素的相应预测元素表示,每个待摆放版图元素的预测元素表示指示该待摆放版图元素在预测布局中的位置、该待摆放版图元素的类型、以及该待摆放版图元素在与该待摆放版图元素相关联的版图元素序列中的排列状态;以及基于多个待摆放版图元素的相应预测元素表示,更新第一机器学习模型的参数值。

在本公开的第四方面中,提供了一种电子设备。该电子设备包括处理器、以及与处理器耦合的存储器。该存储器具有存储于其中的指令,指令在被处理器执行时使电子设备执行根据本公开的第一方面的用于生成版图的方法、或者根据本公开的第二方面的用于生成训练数据的方法、或者根据本公开的第三方面的用于训练机器学习模型的方法。

在本公开的第五方面中,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序。计算机程序在被处理器执行时实现根据本公开的第一方面的用于生成版图的方法、或者根据本公开的第二方面的用于生成训练数据的方法、或者根据本公开的第三方面的用于训练机器学习模型的方法。

根据本公开的各实施例的方案,通过借助于版图元素表示来描述版图元素的属性,进而利用机器学习模型来处理,从而生成版图。通过这种方式,一方面,可以将版图元素的布局抽象为点列,这有利于有效地刻画版图元素之间的布局特征,并且便于应用机器学习模型。以此方式,可以快速地学习已有版图的特征,进而生成新的版图。另一方面,借助于版图元素表示可以表征版图元素序列中各个版图元素的位置、类型和排列状态,从而不仅可以更好地表示每个版图元素自身的特征,并且可以充分考虑版图元素及其周围版图元素之间的关系。以此方式,可以更高效地生成版图,并且有助于提高版图的多样性。

应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其他特征将通过以下的描述而变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:

图1示出了本公开的各实施例能够在其中实现的示例环境的示意图;

图2示出了根据本公开的一些实施例的第一版图元素的示意图;

图3示出了根据本公开的一些实施例的第二版图元素的示意图;

图4示出了根据本公开的一些实施例的第三版图元素的示意图;

图5示出了根据本公开的一些实施例的版图元素切分的示意图;

图6示出了根据本公开的一些实施例的利用第二机器学习模型来生成点表示序列的过程的示意图;

图7示出了根据本公开的一些实施例的候选版图元素生成的示意图;

图8示出了根据本公开的一些实施例的用于过滤异常版图元素的过程的示意图;

图9示出了根据本公开的一些实施例的示例性训练布局的示意图;

图10示出了根据本公开的一些实施例的利用机器学习模型来生成版图元素表示的示意图;

图11示出了根据本公开的一些实施例的生成版图元素表示的过程的示意图;

图12示出了根据本公开的一些实施例的版图元素摆放过程的示意图;

图13示出了根据本公开的一些实施例的用于生成版图的方法的流程图;

图14示出了根据本公开的一些实施例的用于生成训练数据的方法的流程图;

图15示出了根据本公开的一些实施例的用于训练机器学习模型的方法的流程图;

图16示出了根据本公开的一些实施例的用于生成版图元素的方法的流程图;以及

图17示出了其中可以实施本公开的一个或多个实施例的电子设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

如上文所简要提及的,针对集成电路辅助设计的开发与研究需要使用版图数据,而版图数据往往较难获得。目前已有的一种方案是针对一个版图,每次截取版图中的一小部分作为一个片段。进一步地,对所截取的片段进行栅格化以生成图片,然后利用深度学习来学习该片段以生成类似的片段。然而,由于这种方案将一个版图机械地划分成一个个片段而割裂了版图中各个版图元素之间的联系。因此,以这种方式生成的版图不会考虑版图元素及其周围版图元素之间的关系,从而导致所生成的版图质量较低,多样性较差。

为此,本公开的各实施例提出了一种用于生成版图的改进方案。在该方案中,获取被摆放成参考布局的多个参考版图元素的相应参考元素表示。每个参考版图元素的参考元素表示指示该参考版图元素在参考布局中的位置、该参考版图元素的类型、以及该参考版图元素在与多个参考版图元素相对应的参考版图元素序列中的排列状态。进一步地,基于多个参考版图元素的相应参考元素表示,利用第一机器学习模型来生成一个或多个待摆放版图元素的相应目标元素表示。每个待摆放版图元素的目标元素表示指示该待摆放版图元素在目标布局中的位置、该待摆放版图元素的类型、以及该待摆放版图元素在与该待摆放版图元素相关联的版图元素序列中的排列状态。此外,基于一个或多个待摆放版图元素的相应目标元素表示,生成目标版图。本公开的另一些实施例还提出了一种用于生成训练数据的改进方案、以及一种用于训练机器学习模型的改进方案。基于所提出的改进方案生成的训练数据被用于训练机器学习模型,并且经训练的机器学习模型被用于生成版图。

通过下文描述将会更清楚地理解,根据本公开的实施例,通过借助于元素表示来描述版图元素的属性,进而利用机器学习模型来处理,从而生成版图。通过这种方式,一方面,可以将版图元素的布局抽象为点列,这有利于有效地刻画版图元素之间的布局特征,并且便于应用机器学习模型。以此方式,可以快速地学习已有版图的特征,进而生成新的版图。另一方面,借助于元素表示可以表征版图元素序列中各个版图元素的位置、类型和排列状态,从而不仅可以更好地表示每个版图元素自身的特征,并且可以充分考虑版图元素及其周围版图元素之间的关系。以此方式,可以更高效地生成版图,并且有助于提高版图的多样性。

以下将参考附图来详细描述该方案的各种示例实现。

首先参见图1,其示出了本公开的各实施例能够在其中实现的示例环境100的示意图。示例环境100总体上可以包括电子设备120。在一些实施例中,电子设备120可以是诸如个人计算机、工作站、服务器等具有计算功能的设备。本公开的范围在此方面不受限制。

电子设备120可以获取参考元素表示信息110。参考元素表示信息110例如可以包括被摆放成参考布局的多个参考版图元素的相应参考元素表示。在本公开的上下文中,布局可以对应于版图的至少一部分。换言之,该多个参考版图元素可以在参考版图中被摆放成参考布局。每个参考版图元素的参考元素表示指示该参考版图元素的属性。作为示例,针对一个参考版图元素的属性包括但不限于在参考布局中的位置、该参考版图元素的类型、以及该参考版图元素在与多个参考版图元素相对应的参考版图元素序列中的排列状态。应当理解的是,参考版图元素的属性还可以包括其他任何合适的信息,例如,参考版图元素在参考版图元素序列中的排位,等等。这将在下文中进一步详细描述。

在一些实施例中,参考元素表示信息110可以由用户输入电子设备120。在另一些实施例中,参考元素表示信息110可以已经预先被存储在电子设备120中。在又一些实施例中,参考元素表示信息110可以由电子设备120生成。在再一些实施例中,电子设备120还可以通信地耦连到其他设备,以从其他设备获取参考元素表示信息110。本公开的范围在此方面不受限制。

电子设备120可以利用第一机器学习模型基于所获取的多个参考版图元素的相应参考元素表示来生成一个或多个待摆放版图元素的相应目标元素表示。每个待摆放版图元素的目标元素表示指示该待摆放版图元素在目标布局中的位置、该待摆放版图元素的类型、以及该待摆放版图元素在与该待摆放版图元素相关联的版图元素序列中的排列状态。进一步地,电子设备120可以基于一个或多个待摆放版图元素的相应目标元素表示来生成目标版图130。在一些附加的实施例中,电子设备120还可以用于生成训练数据和/或训练机器学习模型。这将在下文中结合图2至图12进一步详细描述。应当理解的是,仅出于示例性的目的描述环境100的结构和功能,而不暗示对于本公开的范围的任何限制。

为了便于理解的目的,首先参考图2至图4来描述本公开的上下文所涉及的与版图元素相关联的点、点表示、点序列、以及点表示序列。首先,与一个版图元素相对应的一组点例如可以包括该版图元素的各个顶点。

图2示出了根据本公开的一些实施例的第一版图元素210的示意图200。如图2中所示,第一版图元素210属于多边形(polygon)类型,并且包括6个顶点,即点P0、P1、P2、P3、P4和P5。因此,与第一版图元素210相对应的一组点包括点P0、P1、P2、P3、P4和P5。

图3示出了根据本公开的一些实施例的第二版图元素310的示意图300。如图3中所示,第二版图元素310同样属于多边形类型,并且更具体地属于嵌套多边形,即由内外两个分离的边框共同围成。第二版图元素310包括8个顶点,即点Q0、Q1、Q2、Q3、Q4、Q5、Q6和Q7。因此,与第二版图元素310相对应的一组点包括点Q0、Q1、Q2、Q3、Q4、Q5、Q6和Q7。

图4示出了根据本公开的一些实施例的第三版图元素410的示意图400。如图4中所示,第三版图元素410属于线条(line)类型,并且包括3个顶点,即点R0、R1和R2。因此,与第三版图元素410相对应的一组点包括点R0、R1和R2。应当理解的是,上文所提及针对版图元素类型的划分仅是示例性的,版图元素还可以根据其他任何合适的规则来划分成不同的类型。本公开的范围在此方面不受限制。

一组点的相应表示可以包括与该组点相对应的一个点表示序列。在一些实施例中,可以针对一组点执行以下操作来获得相对应的点表示序列:基于该组点在相对应的版图元素中的位置,按照排序规则将该组点排列成点序列;以及基于相对应的版图元素,确定针对点序列的点表示序列。该点表示序列中的每个点表示对应于点序列中的一个点,并且每个点表示指示对应的点与点序列中的前一个点之间的相对位置和连接状态。

作为示例,针对点的排序规则可以是按逆时针顺序、按顺时针顺序、等等。在一些实施例中,针对多边形类型的版图元素,封闭多边形的起始点可以在点序列中出现两次,以指示多边形的封闭性。通过这种方式,可以将版图元素抽象为点列,这有利于有效地刻画版图元素的特征,并且便于后续应用机器学习模型。

在一些实施例中,两个点之间的相对位置可以以这两个点在第一方向上的距离和在第二方向上的距离来表示。例如,相对位置可以以二元组(Dx,Dy)的形式来表示,其中第一元素Dx指示两个点之间在第一方向上的距离,并且第二元素Dy指示两个点之间在不同于第一方向的第二方向上的距离。点序列中的起始点的相对位置例如可以设置为默认值,诸如(0,0)等。在第一方向和第二方向分别对应于直角坐标系下的横坐标轴方向和纵坐标轴方向的情况下,第一元素Dx可以指示两个点之间的横坐标偏移量,并且第二元素Dy可以指示两个点之间的纵坐标偏移量。应当理解的是,两个点之间的相对位置还可以以其他任何合适的方式来表示,例如通过这两个点在极坐标系下的极径偏移量和极角偏移量的形式来表示。本公开的范围在此方面不受限制。

在一些实施例中,连接状态可以包括相连、不相连和结束连接。在此,一点的连接状态为相连可以指示两重信息:一方面,该点与前一点相连;另一方面,全局连接操作尚未结束。一点的连接状态为不相连可以指示两重信息:一方面,该点与前一点不相连;另一方面,全局连接操作尚未结束。一点的连接状态为结束连接可以指示两重信息:一方面,该点与前一点相连;另一方面,全局连接操作到该点处结束。点序列中的起始点的连接状态例如可以设置为默认值,例如相连。

在一些实施例中,点表示还可以包括一组元素,以用于指示该点表示所对应的点与点序列中的前一个点处于多个预定连接状态之一。示例性地,一点的连接状态可以以三元组(S1,S2,S3)的形式来表示,其中第一个元素S1对应于相连,第二个元素S2对应于不相连,并且第三个元素S3对应于结束连接。该三元组的取值例如可以应用独热(one-hot)编码的形式,即任一时刻只有一位有效,例如只有一位为1。示例性地,三元组取值为(1,0,0)指示连接状态为相连,三元组取值为(0,1,0)指示连接状态为不相连,三元组取值为(0,0,1)指示连接状态为结束连接。借助于独热编码,可以将连接状态信息表示为机器学习模型便于处理的数据,从而便于后续应用机器学习模型。应当理解的是,连接状态还可以以任何其他合适的方式来表示或编码,本公开的范围在此方面不受限制。

在一些实施例中,在针对一个点的点表示可以指示相对位置和连接状态的情况下,点表示可以采用五元组(Dx,Dy,S1,S2,S3)的形式,其中前两个元素(Dx,Dy)指示相对位置,并且后三个元素(S1,S2,S3)指示连接状态。通过这种方式可以将各种类型的版图元素以统一的方式表征为适合于机器学习模型处理的特征,从而使得能够将机器学习模型应用于版图元素生成的任务,进而可以有效地提高版图元素生成的效率。

应当理解的是,点表示还可以采用任何其他合适的形式,例如五元组(S1,S2,S3,Dx,Dy),等等。此外,点表示还可以指示除了相对位置和连接状态之外的其他任何合适的信息,例如该点的绝对位置、该点在点序列中的排位,等等。本公开的范围在此方面不受限制。

参考图2,可以将第一版图元素210中的点P0对齐至直角坐标系的坐标原点。然后,根据按逆时针顺序的排序规则,可以生成点序列{P0-1、P1、P2、P3、P4、P5、P0-2},其中P0-1和P0-2均代表点P0,后缀-1和-2仅是为了区分出现在点序列中不同位置处的点P0。可以看到,点P0在该点序列中出现了两次,以指示多边形边框的封闭性。

示例性地,点序列中的起始点P0-1的表示可以是(0, 0, 1, 0, 0)。点P1的表示可以是(5, 0, 1, 0, 0),其中前两个元素(5, 0)指示点P1相对于点P0的位置,并且后三个元素(1, 0, 0)指示点P1与点P0相连。点序列中的末位点P0-2的表示可以是(0, -2, 0, 0,1),其中前两个元素(0,-2)指示点P0相对于点P5的位置,并且后三个元素(0, 0, 1)指示末位点P0-2的连接状态为结束连接,即点P0与点P5连接并且全局连接操作到此结束。可以以类似的方式确定针对点序列中的每个点的表示,从而获得点表示序列。

参考图3,可以将第二版图元素310中的点Q0对齐至直角坐标系的坐标原点。然后,根据外圈按逆时针顺序并且内圈按顺时针顺序的排序规则,可以生成点序列{Q0-1、Q1、Q2、Q3、Q0-2、Q4-1、Q5、Q6、Q7、Q4-2}。类似地,Q0-1和Q0-2均代表点Q0,并且Q4-1和Q4-2均代表点Q4,后缀-1和-2仅是为了区分出现在点序列中不同位置处的点Q0和Q4。可以看到,点Q0在该点序列中出现了两次以指示外侧多边形边框的封闭性,并且点Q4在该点序列中出现了两次以指示内侧多边形边框的封闭性。

示例性地,点序列中的起始点Q0-1的表示可以是(0, 0, 1, 0, 0)。点Q1的表示可以是(4, 0, 1, 0, 0),其中前两个元素(4, 0)指示点Q1相对于点Q0的位置,并且后三个元素(1, 0, 0)指示点Q1与点Q0相连。点Q0-2的表示可以是(0, -4, 1, 0, 0),其中前两个元素(0, -4)指示点Q0相对于点Q3的位置,并且后三个元素(1, 0, 0)指示点Q0与点Q3相连。点Q4-1的表示可以是(1, 1, 0, 1, 0),其中前两个元素(1, 1)指示点Q4相对于点Q0的位置,并且后三个元素(0, 1, 0)指示点Q4与点Q0不相连。末位点Q4-2的表示可以是(-2, 0,0, 0, 1),其中前两个元素(-2, 0)指示点Q4相对于点Q7的位置,并且后三个元素(0, 0,1)指示末位点Q4-2的连接状态为结束连接,即点Q4与点Q7连接并且全局连接操作到此结束。可以以类似的方式确定针对点序列中的每个点的表示,从而获得点表示序列。

参考图4,可以将第三版图元素410中的点R0对齐至直角坐标系的坐标原点。然后,根据按逆时针顺序的排序规则,可以生成点序列{R0、R1、R2}。示例性地,点序列中的起始点R0的表示可以是(0, 0, 1, 0, 0)。点R1的表示可以是(3, 0, 1, 0, 0),其中前两个元素(3, 0)指示点R1相对于点R0的位置,并且后三个元素(1, 0, 0)指示点R1与点R0相连。点R2的表示可以是(0, 1, 0, 0, 1),其中前两个元素(0, 1)指示点R2相对于点R1的位置,并且后三个元素(0, 0, 1)指示末位点R2的连接状态为结束连接,即点R2与点R1连接并且全局连接操作到此结束。以此方式,可以确定针对点序列{R0、R1、R2}的点表示序列是{(0, 0,1, 0, 0)、(3, 0, 1, 0, 0)、(0, 1, 0, 0, 1)}。

应当理解的是,在针对本公开的各实施例的描述中所提及的数值仅是示例性的而非限制性的。此外,还可以以其他任何合适的方式来获取与一组点相对应的点序列和点表示序列,本公开的范围在此方面不受限制。

此外,发明人已经注意到,取决于具体版图设计而可能会存在超大版图元素。例如,一个多边形类型的版图元素可能会包含大量的(例如,十几万个)边或顶点。这样的版图元素也可以被称为超大版图元素或者巨型版图元素。这样的超大版图元素不利于对机器学习模型的训练和使用。

对此,在一些实施例中,响应于原始版图元素的顶点数目大于顶点数目阈值,可以将该原始版图元素的边缘切割成多个线条,以作为多个版图元素。切割得到的多个线条中的每个线条所包括的顶点数目小于顶点数目阈值。备选地或附加地,响应于原始版图元素的边缘数目大于边缘数目阈值,可以将该原始版图元素的边缘切割成多个线条,以作为多个版图元素。切割得到的多个线条中的每个线条所包括的线段数目小于边缘数目阈值。该顶点数目阈值和/或边缘数目阈值可以预先确定,或者可以基于针对多个版图元素的统计数据来确定。

图5示出了根据本公开的一些实施例的版图元素切分的示意图500。如图5所示,原始版图元素510的顶点数目大于顶点数目阈值。为了图示清楚的目的,在图5的示例中,顶点数目阈值例如可以是10。因此,可以按照图5所示的方式将原始版图元素510的边缘切割成4个线条,即第一线条520、第二线条521、第三线条522、以及第四线条523。应当理解的是,图5所示的切割方式仅是示例性的,还可以以其他任何合适的方式来切割版图元素。本公开的范围在此方面不受限制。

在一些实施例中,针对切割得到的多个线条中的每个线条,可以将该线条作为一个版图元素并借助于上文描述的过程来生成对应的点表示序列。

在本公开的实施例的描述中,为了区分不同用途而使用“参考”、“目标”和“训练”等词来命名点、点表示、点序列、点表示序列、以及版图元素。应当理解的是,参考点、目标点和/或训练点可以具有相同或相似的形式,并且参考点和训练点可以以相同或相似的方式被确定。参考点表示、目标点表示和/或训练点表示可以具有相同或相似的形式,并且参考点表示和训练点表示可以以相同或相似的方式被确定。目标点序列和训练点序列可以具有相同或相似的形式。此外,目标点表示序列和训练点表示序列可以具有相同或相似的形式。

下面描述生成版图元素的示例实施例。可以获取用于生成版图元素的单个参考点的表示,其指示该参考点的属性。在一些实施例中,该参考点的属性可以包括该参考点的相对位置和连接状态。通过下文描述将会理解,鉴于该参考点直接用于生成候选目标版图元素中的起始点,因此该参考点的连接状态可以是相连或不相连。

例如,可以同时获取参考点的相对位置和连接状态。又例如,可以仅获取参考点的相对位置,而将参考点的连接状态设置为默认状态,例如,相连。备选地,可以从已有版图元素对应的点表示序列中选择任何合适的点表示(例如,非末尾的点表示)来作为该参考点的表示。在另一示例中,参考点的相对位置和/或连接状态可以随机地生成。示例性地,在该参考点的表示采用上述五元组(Dx,Dy,S1,S2,S3)形式的情况下,参考点的表示的示例是(0,0, 1, 0, 0)或者(3, 0, 1, 0, 0),等等。

进一步地,电子设备120可以基于单个参考点的表示,利用第二机器学习模型来生成针对目标点序列的目标点表示序列。该目标点表示序列中的每个目标点表示对应于目标点序列中的一个目标点。每个目标点表示指示对应的目标点与目标点序列中的前一个目标点之间的相对位置和连接状态。

在一些实施例中,第二机器学习模型可以基于该单个参考点的表示以迭代的方式生成目标点表示序列。示例性地,可以将单个参考点的表示设置为输入表示,并且迭代地执行以下生成操作:基于输入表示,利用第二机器学习模型来生成目标点表示序列中的一个目标点表示;以及将目标点表示设置为输入表示。这将在下面结合图6来进行描述。

图6示出了根据本公开的一些实施例的利用第二机器学习模型来生成点表示序列的过程600的示意图。应当理解的是,过程600还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。

如图6所示,输入表示可以被输入第二机器学习模型620。经由第二机器学习模型620的处理后获得相对应的输出表示作为输出。在模型训练过程中,输入第二机器学习模型620的输入表示可以对应于上述训练点表示序列,并且由第二机器学习模型620输出的输出表示可以对应于上述预测点表示序列。在一些实施例中,输入表示可以包括单个训练点表示,即针对一个训练点的表示。在第二机器学习模型620处理完一个训练点表示之后再输入另一个训练点表示。换言之,第二机器学习模型620可以以串行的方式处理训练点表示序列。在另一些实施例中,输入表示可以包括多个训练点表示,即针对多个训练点的相应表示。换言之,第二机器学习模型620可以以并行的方式批量处理一个或多个训练点表示序列。

如本文中所使用的,术语“机器学习模型”可以从训练数据中学习到相应的输入与输出之间的关联关系,从而在训练完成后可以针对给定的输入,生成对应的输出。机器学习模型的生成可以基于深度学习技术。深度学习是一种机器学习算法,通过使用多层处理单元来处理输入和提供相应输出。神经网络模型是基于深度学习的模型的一个示例。在本公开的上下文中,“机器学习模型”也可以被称为“模型”、“学习模型”、“机器学习网络”或“学习网络”,这些术语在本文中可互换地使用。

示例性地而非限制性地,第二机器学习模型620可以采用生成式深度神经网络来实现。图6中示出了基于解码器(Decoder)结构的第二机器学习模型620。为了便于说明的目的,在下文中将参考解码器结构来进行描述。应当理解的是,第二机器学习模型620还可以以其他任何合适的形式来实现,并且可以基于其他任何合适的结构。本公开的范围在此方面不受限制。

参考图6,在第一个迭代轮次中,通过上文描述的方式所获得的单个参考点的表示可以作为输入表示被输入第二机器学习模型620。经由第二机器学习模型620的处理后,生成相对应的目标点表示作为输出表示。然后,所生成的目标点表示可以作为第二个迭代轮次的输入表示被输入第二机器学习模型620,并且经由第二机器学习模型620的处理后,生成相对应的目标点表示。进一步地,在第二个迭代轮次中生成的目标点表示可以作为第三个迭代轮次的输入表示被输入第二机器学习模型620,并且经由第二机器学习模型620的处理后,生成相对应的目标点表示,以此类推。

在一些实施例中,如果所确定的目标点表示指示的连接状态为结束连接,则上述生成操作的迭代执行被终止。通过这种方式,可以在出现连接状态为结束连接的目标点表示之后,及时终止生成操作的迭代执行。因此,可以避免生成多余的目标点表示,从而可以提高生成版图元素的效率。

作为示例,在第一个迭代轮次中,单个参考点的表示(例如,(1, 0, 1, 0, 0))被输入第二机器学习模型620,并且生成目标点表示(0, 0, 1, 0, 0)。根据上文中针对五元组(Dx,Dy,S1,S2,S3)的描述,所生成的目标点表示(0, 0, 1, 0, 0)指示该目标点的连接状态为相连,因此将会开始下一轮迭代。在第二个迭代轮次中,目标点表示(0, 0, 1, 0,0)被输入第二机器学习模型620,并且生成目标点表示(5, 0, 1, 0, 0)。类似地,由于所生成的目标点表示(5, 0, 1, 0, 0)指示该目标点的连接状态为相连,因此将会开始下一轮迭代。在第三个迭代轮次中,目标点表示(5, 0, 1, 0, 0)被输入第二机器学习模型620,并且生成目标点表示(0, 5, 1, 0, 0)。类似地,由于所生成的目标点表示(0, 5, 1, 0, 0)指示该目标点的连接状态为相连,因此将会开始下一轮迭代。在第四个迭代轮次中,目标点表示(0, 5, 1, 0, 0)被输入第二机器学习模型620,并且生成目标点表示(-4, 0, 1, 0,0)。类似地,由于所生成的目标点表示(-4, 0, 1, 0, 0)指示该目标点的连接状态为相连,因此将会开始下一轮迭代。在第五个迭代轮次中,目标点表示(-4, 0, 1, 0, 0)被输入第二机器学习模型620,并且生成目标点表示(0, -6, 0, 0, 1)。由于所生成的目标点表示(0, -6, 0, 0, 1)指示该目标点的连接状态为结束连接,因此上述生成操作的迭代执行被终止。通过以上过程,最终获得目标点表示序列{(0, 0, 1, 0, 0),(5, 0, 1, 0, 0),(0,5, 1, 0, 0),(-4, 0, 1, 0, 0),(0, -6, 0, 0, 1)}。

在另一些实施例中,如果已执行的迭代轮次的数目超过预定阈值(例如,100次、2000次,等等),则上述生成操作的迭代执行被终止。通过这种方式,可以避免生成的点表示序列过大,而导致所对应的候选目标版图元素过大而不适于后续使用,从而进一步提高所生成候选目标版图元素的实用价值。应当理解的是,上述生成操作的迭代执行还可以基于其他任何合适的条件而被终止,本公开的范围在此方面不受限制。

在一些实施例中,第二机器学习模型620可以运行在电子设备120的本地。备选地,第二机器学习模型620也可以运行在诸如云服务器等的远程设备中,并且能够被电子设备120调用。

如图6所示,基于输入表示,利用第二机器学习模型620中的解码器来生成第一特征表示。示例性地而非限制性地,第一特征表示可以是与目标点表示相关联的向量化表示。在一些实施例中,可以直接将第一特征表示作为目标点表示。通过这种方式,可以利用第二机器学习模型620来基于输入表示高效地生成目标点表示,从而提高生成版图元素的效率。

在另一些实施例中,如图6中所示,可以基于第一特征表示利用高斯混合模型(Gaussian Mixture Model,GMM)来生成目标点表示。在一些实施例中,可以随机选取一定数目的高斯混合模型。例如,所选取的高斯混合模型的数目可以小于模型训练过程中的高斯混合数。通过这种方式,可以引入随机变化,并且增加随机采样能力,使得基于同一参考点表示生成的候选目标版图元素可以在一定程度上随机变化,从而可以提高所生成版图元素的多样性。应当理解的是,还可以借助于其他任何合适的模块来引入随机变化,本公开的范围在此方面不受限制。

通过上述过程,可以仅基于一个参考点表示就能够生成目标点表示序列,以供后续生成版图元素,而不需要基于已有的版图元素或者规则来生成新的版图元素。因此,可以简化对生成版图元素的输入的要求,从而降低生成版图元素的复杂度。应当理解的是,除了上述迭代的方式,第二机器学习模型620还可以以其他任何合适的方式来基于单个参考点的表示生成目标点表示序列,例如第二机器学习模型620可以被训练为基于单个参考点的表示直接生成一系列目标点表示,作为目标点表示序列。本公开的范围在此方面不受限制。

进一步地,可以基于所生成的目标点表示序列来连接目标点序列中的至少一部分目标点,以生成候选目标版图元素。在一些实施例中,可以按照目标点表示序列中的连接状态,依次连接目标点序列中的所有目标点,以获得候选版图元素。

图7示出了根据本公开的一些实施例的候选版图元素生成的示意图700。为了便于说明的目的,参考通过上文所描述的过程获得的目标点表示序列{(0, 0, 1, 0, 0),(5,0, 1, 0, 0),(0, 5, 1, 0, 0),(-4, 0, 1, 0, 0),(0, -6, 0, 0, 1)}。第一个目标点表示(0, 0, 1, 0, 0)可以在图7中体现为位于直角坐标系原点的点T0。

根据上文中对五元组的描述,第二个目标点表示(5, 0, 1, 0, 0)指示相应的第二个目标点相对于点T0的位置为(5, 0)并且与点T0相连。因此,第二个目标点表示(5, 0,1, 0, 0)可以在图7中体现为点T1,并且点T1与点T0经由线段连接。第三个目标点表示(0,5, 1, 0, 0)指示相应的第三个目标点相对于点T1的位置为(0, 5)并且与点T1相连。因此,第三个目标点表示(0, 5, 1, 0, 0)可以在图7中体现为点T2,并且点T2与点T1经由线段连接。第四个目标点表示(-4, 0, 1, 0, 0)指示相应的第四个目标点相对于点T2的位置为(-4, 0)并且与点T2相连。因此,第四个目标点表示(-4, 0, 1, 0, 0)可以在图7中体现为点T3,并且点T3与点T2经由线段连接。第五个目标点表示(0, -6, 0, 0, 1)指示相应的第五个目标点相对于点T3的位置为(0, -6)并且与点T3相连,而且全局连接操作到此结束。因此,第五个目标点表示(0, -6, 0, 0, 1)在图7中体现为点T4,并且点T4与点T3经由线段连接。可以看到,点T0所在的第一线段711与点T4所在的第二线段712相交。由于全局连接操作到点T4处结束,因此可以将通过以上方式生成的图形确定为候选版图元素。

通过这种方式,可以基于点表示序列有序且高效地生成版图元素,从而提高生成版图元素的效率。应当理解的是,以上描述的生成候选版图元素的过程仅是示例性的,还可以通过其他任何合适的方式来基于目标点表示序列生成候选版图元素,本公开的范围在此方面不受限制。

进一步地,可以将所生成的候选版图元素直接确定为最终的候选目标版图元素。备选地,可以通过对候选版图元素执行后处理来生成候选目标版图元素。在一些实施例中,第二机器学习模型620可以是针对目标类型的版图元素而被训练的,并且所生成的候选目标版图元素具有该目标类型。示例性地,如果第二机器学习模型620是使用线条类型的训练版图元素来训练的,即针对线条类型的版图元素而被训练,则所生成的候选目标版图元素的类型是线条。类似地,如果第二机器学习模型620是使用多边形类型的训练版图元素来训练的,即针对多边形类型的版图元素而被训练,则所生成的候选目标版图元素的类型是多边形。

在一些实施例中,针对候选版图元素的后处理可以基于候选版图元素以及上述目标类型来执行。示例性地,如果目标类型是线条,则可以不执行后处理,直接将候选版图元素确定为候选目标版图元素。如果目标类型是多边形,则可以针对候选版图元素执行线段闭合处理,以获得候选目标版图元素。通过这种方式,可以更加有针对性地来对候选版图元素执行后处理,从而提高最终生成的候选目标版图元素的合理性和可用性。

在线段闭合处理的一个示例实现中,可以首先确定目标点序列中的起始点所在线段与末尾点所在线段是否相交。如果起始点所在线段与末尾点所在线段相交,则可以去除相交线段外围的多余点或线段,从而使得图形闭合。参考图7,点T0是目标点序列中的起始点,并且点T4是目标点序列中的末尾点。点T0所在的第一线段711与点T4所在的第二线段712相交,因此可以去除多余的点和线段(即,虚线框720中所包括的点和线段),并且将所获得版图元素作为候选目标版图元素。

如果起始点所在线段与末尾点所在线段不相交,则可以延长起始点所在线段和/或末尾点所在线段。如果通过延长线段能够使得起始点所在线段与末尾点所在线段相交,则可以去除延长后相交线段外围的多余点或线段,从而使得图形闭合。如果通过延长线段无法使得起始点所在线段与末尾点所在线段相交(例如,在两线段平行的情况下),则可以将起始点的后一个点或末尾点的前一个点所在的线段平移至起始点或末尾点作为新的线段,并通过重复以上判断过程及对应操作来实现对图形的闭合。

可以看到,通过执行线段闭合处理可以确保多边形类型的版图元素的图形闭合,因此线段闭合处理也可以被称为图形闭合处理。借助于线段闭合处理,可以避免所生成的候选目标版图元素存在缺陷而不可用所造成的效率损失,从而可以更高效地生成版图元素。应当理解的是,线段闭合处理还可以以其他任何合适的方式来实现,本公开的范围在此方面不受限制。

在一些实施例中,还可以针对所生成的候选目标版图元素执行异常版图元素的过滤操作。示例性地,如果候选目标版图元素不符合预定要求,则可以过滤掉该候选目标版图元素。例如,可以直接删除该候选目标版图元素。如果候选目标版图元素符合预定要求,则可以保留该候选目标版图元素。例如可以将候选目标版图元素存储在版图元素库中以供后续使用。又例如,可以将候选目标版图元素摆放在排版区域中,以直接用于生成版图。通过这种方式,可以有效地滤除不符合要求的候选目标版图元素,从而保证最终使用的版图元素符合要求。

在一些实施例中,上述预定要求可以包括以下至少一项:(1)候选目标版图元素所包括的每个线段均为水平或竖直的;(2)候选目标版图元素中的任意两个线段不存在交叉;(3)候选目标版图元素的关键尺寸大于或等于第一宽度阈值;(4)候选目标版图元素的关键尺寸小于或等于第二宽度阈值,其中第二宽度阈值大于第一宽度阈值。应当理解的是,预定要求还可以包括其他任何合适的要求,本公开的范围在此方面不受限制。

图8示出了根据本公开的一些实施例的用于过滤异常版图元素的过程800的示意图。在框810,获取候选目标版图元素。该候选目标版图元素可以以上文所描述的方式而被生成。在框812,确定在候选目标版图元素中是否存在非水平线段或者非竖直线段。如果确定在候选目标版图元素中存在非水平线段或者非竖直线段,则过程800前进至框824,即可以将候选目标版图元素过滤掉。如果确定候选目标版图元素中不存在非水平线段和非竖直线段,则过程800前进至框814。

在框814,确定候选目标版图元素是否是多边形类型的版图元素。如果确定候选目标版图元素不是多边形类型的版图元素,则过程800前进至框818。在框818,确定在候选目标版图元素中是否存在线段交叉。如果确定在候选目标版图元素中不存在线段交叉,则过程800前进至框822,即可以保留候选目标版图元素。如果确定在候选目标版图元素中存在线段交叉,则过程800前进至框824,即可以将候选目标版图元素过滤掉。

如果在框814处确定候选目标版图元素是多边形类型的版图元素,则过程800前进至框816。在框816,确定在候选目标版图元素中是否存在线段交叉。如果确定在候选目标版图元素中存在线段交叉,则过程800前进至框824,即可以将候选目标版图元素过滤掉。如果确定在候选目标版图元素中不存在线段交叉,则过程800前进至框820。在框820,确定候选目标版图元素中的线宽是否超过宽度阈值。如果确定候选目标版图元素中的线宽不超过宽度阈值,则过程800前进至框822,即可以保留候选目标版图元素。如果确定候选目标版图元素中的线宽超过宽度阈值,则过程800前进至框824,即可以将候选目标版图元素过滤掉。

应当理解的是,过程800还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框。此外,还可以以其他任何合适的方式来针对候选目标版图元素执行异常版图元素的过滤操作。本公开的范围在此方面不受限制。

下面描述生成训练数据的示例实施例。在一些实施例中,用于生成训练数据的版图数据可以来自已有的版图数据。例如,该版图数据可以是真实的芯片版图。又例如,该版图数据可以是由芯片设计工具生成的版图,或者可以是人工设计的。

在一些实施例中,可以首先对所有版图中的版图元素进行标记。例如,可以采集所有版图中的版图元素,并做标记(pattern_id, layout_id),其中layout_id表示针对版图的标识,并且pattern_id表示针对一个版图中的版图元素的标识。

示例性地,已有的芯片版图可以存储在诸如开放式图稿系统交换标准(OpenArtwork System Interchange Standard,OASIS)文件等的文件中。可以基于对应的文件协议将芯片版图的每一层读取出来,例如栅极或电阻区、金属层、离子注入层,等等。由于版图的每一层往往具备不同的电气特性,因此可以按照不同的应用特性来进行存储。对每一层版图,可以读取该层版图中的版图元素,这些版图元素例如可以是多边形或线条等各种图形。然后,可以按照(pattern_id, layout_id)的格式对各个版图元素进行标记。

进一步地,可以针对多个版图元素的相应形状信息执行哈希化操作,以获得针对多个版图元素的相应哈希值,并且基于多个版图元素的相应哈希值,从多个版图元素中获取训练版图元素集合。示例性地,针对一个版图元素的形状信息可以包括该版图元素的点序列中各个点的位置坐标所构成的点坐标序列。可以将所采集的各个版图元素的一个顶点对齐至直角坐标系原点,然后生成针对相应版图元素的点序列,并且基于点序列所对应的点坐标序列来进行哈希(hash)化操作,以生成与每个版图元素相对应的哈希值。示例性地,可以将一版图元素的点序列所对应的位置坐标序列输入哈希函数以获得与该版图元素相对应的哈希值,并且以(hashing, pattern_id, layout_id)的格式进行存储,其中hashing表示与该版图元素相对应的哈希值,从而将哈希值相匹配的一组版图元素的相应标记信息相关联地存储。

然后,可以基于哈希值执行去重操作。例如,可以只保留不重复的哈希值,而删除重复的哈希值,并且合并具有相同哈希值的版图元素的标记。示例性地,在同一个版图中具有相同哈希值的多个版图元素可以以如下的方式来存储:(hashing,, layout_id),其中N是正整数,并且pattern_id_1,pattern_id_2, … pattern_id_N分别对应于版图layout_id中具有相同哈希值hashing的各个版图元素的标识。

进一步地,可以针对每个哈希值,从经标记的版图元素中取回一个版图元素作为代表,以组成版图元素的集合。该版图元素集合也可以称为训练版图元素集合。通过这种方式,可以针对所获取的版图元素中形状相同的版图元素进行过滤,从而实现版图元素数据的清洗去重。以此方式,可以有效地降低所采集的数据的冗余度,便于后续用于机器学习模型的使用和训练。

然后,针对版图元素集合中的每个版图元素,可以借助于版图表征模型来生成对应的隐空间向量。该隐空间向量例如可以是版图元素特征的隐式表示。示例性地,可以将针对一个版图元素的点表示序列输入机器学习模型中的编码器以生成对应的隐空间向量。

然后,可以借助于诸如K-means等聚类算法基于隐空间向量来对上述版图元素集合中的版图元素执行聚类操作。例如,可以将同一类的版图元素划分到同一个分组中,并且将不同类的版图元素划分到不同的分组中。通过聚类操作所获得的各个分组的标识可以表示为Gi,其中i是正整数。每个分组中的版图元素的标识可以标识为Pj,其中j是正整数。通过这种方式,可以获得针对版图元素的隐空间聚类集作为训练数据。

进一步地,可以基于上述聚类信息来生成针对版图元素的特征值,该特征值指示该版图元素的类型。示例性地而非限制性地,针对一个版图元素的特征值可以通过下面的式子(1)来确定:

其中z表示特征值并且是32位二进制表示的整数,G表示该版图元素被聚类到的分组的标识并且是16位二进制表示的整数,P表示该版图元素在对应的分组中的标识并且是16位二进制表示的整数。通过这种方式,可以使得类似的版图元素的特征值z相似且在数值上相近。因此,可以高效地表征版图元素的类别,以便于后续应用机器学习模型。应当理解的是,表征版图元素的类型的该特征值还可以基于聚类信息以其他任何合适的方式来确定,本公开的范围在此方面不受限制。

在本公开的上下文中,用于训练机器学习模型的版图元素也可以被称为训练版图元素。在一些实施例中,可以针对用于训练机器学习模型的版图元素集合中的每个训练版图元素确定与该训练版图元素相关联的多个训练版图元素的相应训练元素表示,以获得用于训练第一机器学习模型的训练数据。这将在下文中以训练版图中的第一训练版图元素为例参考图9进行描述。

图9示出了根据本公开的一些实施例的示例性训练布局的示意图900。第一训练版图元素910、第二训练版图元素912、第三训练版图元素914、以及第四训练版图元素916可以在版图中以如图9所示的方式被布置。

可以基于第一训练版图元素910,从训练版图中选择多个训练版图元素。该多个训练版图元素包括第一训练版图元素910。在一些实施例中,所选择的多个训练版图元素可以包括位于第一训练版图元素910周围的版图元素。例如,可以将以第一训练版图元素910为圆心,预定距离阈值为半径构成的圆所覆盖的训练版图元素作为多个训练版图元素。换言之,多个训练版图元素中除第一训练版图元素910之外的每个训练版图元素与第一训练版图元素910的距离小于预定距离阈值。

在图9所示的示例中,基于第一训练版图元素910所选择的多个训练版图元素例如可以包括第一训练版图元素910、第二训练版图元素912、以及第三训练版图元素914。而第四训练版图元素916由于与第一训练版图元素910的距离超过预定距离阈值而未被选择。

进一步地,可以基于多个训练版图元素在训练版图中的布局,确定多个训练版图元素的相应训练元素表示,以获得用于训练第一机器学习模型的训练数据。每个训练版图元素的训练元素表示指示该训练版图元素在布局中的位置、该训练版图元素的类型、以及该训练版图元素在与多个训练版图元素相对应的训练版图元素序列中的排列状态。第一训练版图元素910位于训练版图元素序列的第一位。

在一些实施例中,可以基于多个训练版图元素在布局中的位置,按照排序规则将多个训练版图元素排列成训练版图元素序列,进而确定多个训练版图元素的相应训练元素表示。作为示例,针对版图元素的排序规则可以是按逆时针顺序、按顺时针顺序、等等。在一些实施例中,可以将第一训练版图元素910作为训练版图元素序列的起始。附加地,第一训练版图元素910可以在训练版图元素序列的末尾再次出现。

在一些实施例中,版图元素在布局中的位置可以是该版图元素与对应的版图元素序列中的特定版图元素(例如,前一个版图元素或位于首位的版图元素,等等)之间的相对位置。在一个示例中,两个版图元素之间的相对位置可以以这两个版图元素在第一方向上的距离和在第二方向上的距离来表示。例如,相对位置可以以二元组(D1,D2)的形式来表示,其中第一元素D1指示两个版图元素之间在第一方向上的距离,并且第二元素D2指示两个版图元素之间在不同于第一方向的第二方向上的距离。版图元素序列中的起始版图元素的相对位置例如可以设置为默认值,诸如(0,0)等。两个版图元素之间的距离例如可以基于这两个版图元素的特定点(例如,中点、左下角顶点,等等)。在图9的示例中,例如可以基于第一训练版图元素910的左下角顶点E1、第二训练版图元素912的左下角顶点E2、以及第三训练版图元素914的左下角顶点E3来确定这些训练版图元素之间的相对位置。

在第一方向和第二方向分别对应于直角坐标系下的横坐标轴方向和纵坐标轴方向的情况下,第一元素D1可以指示两个版图元素之间的横坐标偏移量,并且第二元素D2可以指示两个版图元素之间的纵坐标偏移量。应当理解的是,两个版图元素之间的相对位置还可以以其他任何合适的方式来表示,例如通过这两个版图元素在极坐标系下的极径偏移量和极角偏移量的形式来表示。此外,版图元素在布局中的位置还可以是该版图元素在布局中的绝对位置,等等。本公开的范围在此方面不受限制。

附加地,版图元素的类型可以借助于上文描述的特征值z来指示。在这种情况下,版图元素表示中可以包括对应于特征值z的第三元素。此外,训练版图元素在训练版图元素序列中的排列状态可以包括开始排列(在下文中也可以简称为开始)、中间和结束排列(在下文中也可以简称为结束),并且可以借助于第四元素S来指示。示例性地而非限制性地,第四元素S等于0可以指示排列状态为开始,第四元素S等于1可以指示排列状态为中间,并且第四元素S等于2可以指示排列状态为结束。应当理解的是,连接状态还可以以任何其他合适的方式来表示,例如可以借助于一组元素并且采用独热(one-hot)编码的形式,本公开的范围在此方面不受限制。

在一些实施例中,在针对一个版图元素的版图元素表示(也可以简称为元素表示)可以指示相对位置、元素类型和排列状态的情况下,元素表示可以采用四元组(D1,D2,z,S)的形式,其中前两个元素(D1,D2)指示相对位置、第三元素z指示元素类型,并且第四元素S指示排列状态。通过这种方式可以将各种类型的版图元素以统一的方式表征为适合于机器学习模型处理的特征,从而使得能够将机器学习模型应用于版图生成的任务,进而可以有效地提高版图生成的效率。

应当理解的是,版图元素表示还可以采用任何其他合适的形式,例如四元组(S,z,D1,D2),等等。此外,版图元素表示还可以指示除了相对位置、元素类型和排列状态之外的其他任何合适的信息,例如该版图元素的绝对位置、该版图元素在版图元素序列中的排位,等等。本公开的范围在此方面不受限制。

参考图9,可以将第一训练版图元素910中点E1对齐至直角坐标系的坐标原点。然后,根据按逆时针顺序的排序规则,可以获得如下的训练版图元素序列:第一训练版图元素910、第二训练版图元素912、第三训练版图元素914、第一训练版图元素910。

示例性地,针对训练版图元素序列中首位的第一训练版图元素910的训练元素表示可以是(0, 0, z1, 0),其中前两个元素(0, 0)指示第一训练版图元素910相对于其自身的位置,第三个元素z1指示第一训练版图元素910的类型,并且第四个元素0指示第一训练版图元素910在训练版图元素序列中的排列状态是开始。第二训练版图元素912的训练元素表示可以是(10, 2, z2, 1),其中前两个元素(10, 2)指示第二训练版图元素912相对于第一训练版图元素910的位置,第三个元素z2指示第二训练版图元素912的类型,并且第四个元素1指示该第二训练版图元素912在训练版图元素序列中的排列状态是中间。第三训练版图元素914的训练元素表示可以是(-1, 10, z3, 1),其中前两个元素(-1, 10)指示第三训练版图元素914相对于第一训练版图元素910的位置,第三个元素z3指示第三训练版图元素914的类型,并且第四个元素1指示该第三训练版图元素914在训练版图元素序列中的排列状态是中间。针对训练版图元素序列中末尾的第一训练版图元素910的训练元素表示可以是(0, 0, z1, 2),其中前两个元素(0, 0)指示第一训练版图元素910相对于其自身的位置,第三个元素z1指示第一训练版图元素910的类型,并且第四个元素2指示第一训练版图元素910在训练版图元素序列中的排列状态是结束。最终,可以获取针对第一训练版图元素910确定的训练元素表示序列{(0, 0, z1, 0)、(10, 2, z2, 1)、(-1, 10, z3, 1)、(0, 0,z1, 2)}。需要指出的是,为了简洁的目的,在上文中使用z1、z2、z3来代表具体的数值。

通过上述方式,可以针对训练版图元素集合中的每个训练版图元素来生成训练元素表示序列,以作为用于训练机器学习模型的训练数据。

通过以上描述可以看到,在根据本公开的各实施例的用于生成训练数据的方案中,将版图元素的布局抽象为点列。通过这种方式,一方面,可以有效地刻画版图元素之间的布局特征,并且便于应用机器学习模型。另一方面,可以以有规则的方式来基于已有版图生成适于机器学习模型处理的数据,从而可以高效地批量生成训练数据。

下面描述训练机器学习模型的示例实施例。在一些实施例中,可以获取被摆放成训练布局的多个训练版图元素的相应训练元素表示。每个训练版图元素的训练元素表示指示该训练版图元素在训练布局中的位置、该训练版图元素的类型、以及该训练版图元素在与多个训练版图元素相对应的训练版图元素序列中的排列状态。示例性地,可以通过上文描述的训练数据生成过程来生成针对多个训练版图元素的相应训练元素表示。

进一步地,可以基于多个训练版图元素的相应训练元素表示,利用第一机器学习模型来生成多个待摆放版图元素的相应预测元素表示。每个待摆放版图元素的预测元素表示指示该待摆放版图元素在预测布局中的位置、该待摆放版图元素的类型、以及该待摆放版图元素在与该待摆放版图元素相关联的版图元素序列中的排列状态。这将在下文中结合图10和图11描述。图10示出了根据本公开的一些实施例的利用机器学习模型来生成版图元素表示的示意图1000。图11示出了根据本公开的一些实施例的生成版图元素表示的过程的示意图1100。

如图10所示,模型输入表示集1010可以被输入第一机器学习模型1020。经由第一机器学习模型1020的处理后获得相对应的模型输出表示集1030。在模型训练过程中,模型输入表示集1010可以包括多个训练版图元素的相应训练元素表示,并且模型输出表示集1030可以包括多个待摆放版图元素的相应预测元素表示。

示例性地而非限制性地,第一机器学习模型1020可以采用生成式深度神经网络来实现。图11中示出了基于编码器-解码器(Encoder-Decoder)结构的第一机器学习模型1020。为了便于说明的目的,在下文中将参考编码器-解码器结构来进行描述。应当理解的是,第一机器学习模型1020还可以以其他任何合适的形式来实现,并且可以基于其他任何合适的结构。本公开的范围在此方面不受限制。

在一些实施例中,可以基于多个训练版图元素的相应训练元素表示,利用第一机器学习模型1020中的编码器来生成第一特征表示。示例性地而非限制性地,第一特征表示可以是表征多个训练版图元素的布局的隐式表示。在本公开的上下文中,该第一特征表示也可以被称为隐空间向量。在一些实施例中,编码器622可以基于具备序列属性的模块来实现,例如,长短期记忆(Long Short-Term Memory,LSTM)网络、循环神经网络(RecurrentNeural Network,RNN)、门控循环单元(Gated Recurrent Unit,GRU),等等。

进一步地,可以基于第一特征表示和多个训练版图元素中的第一训练版图元素的训练元素表示,利用第一机器学习模型1020中的解码器来生成第二特征表示(在图11中记作H1)。示例性地而非限制性地,第二特征表示可以是与预测元素表示相关联的向量化表示。进一步地,可以基于第二特征表示利用高斯混合模型来生成针对一个或多个待摆放版图元素中的第一版图元素的预测元素表示(在图11中记作B1)。通过这种方式,可以引入随机变化,使得借助于第一机器学习模型1020所生成预测元素表示序列在总体上与训练元素表示序列相似,但与训练元素表示序列之间存在一定程度的差异。以此方式,可以增加随机采样能力,以便提高在后续使用该第一机器学习模型1020的过程中所生成版图的多样性。应当理解的是,还可以借助于其他任何合适的模块来引入随机变化,本公开的范围在此方面不受限制。应当理解的是,第一机器学习模型1020中所使用的解码器和/或高斯混合模型可以不同于第二机器学习模型620中所使用的解码器和/或高斯混合模型。

进一步地,可以以迭代的方式来借助于解码器生成后续的版图元素表示。示例性地,可以将第二特征表示设置为第一输入表示;将第一版图元素的目标元素表示设置为第二输入表示;以及迭代地执行以下生成操作:基于第一特征表示、第一输入表示和第二输入表示,利用第一机器学习模型1020中的解码器来生成第三特征表示;基于第三特征表示来确定针对一个或多个待摆放版图元素中的一个版图元素的预测元素表示;将第三特征表示设置为第一输入表示;以及将所确定的预测元素表示设置为第二输入表示。

在图11的示例中,第一特征表示、第二特征表示H1以及针对第一版图元素的预测元素表示B1可以被输入解码器,以生成第三特征表示(在图11中记作H2),进一步地,可以基于第三特征表示利用高斯混合模型来生成针对一个或多个待摆放版图元素中的第二版图元素的预测元素表示(在图11中记作B2)。然后,第一特征表示、第三特征表示H2以及针对第二版图元素的预测元素表示B2可以被输入解码器,以生成新的特征表示,以此类推。本公开在此不再赘述。在另一些实施例中,由解码器生成的特征表示也可以直接作为预测元素表示,而不引入随机变化。本公开的范围在此方面不受限制。

在一些实施例中,如果所确定的预测元素表示指示的排列状态为结束排列,生成操作的迭代执行被终止。通过这种方式,可以在出现排列状态为结束排列的预测元素表示之后,及时终止生成操作的迭代执行。因此,可以避免生成多余的预测元素表示,从而可以提高机器学习模型的效率。

在另一些实施例中,如果已执行的迭代轮次的数目超过预定阈值(例如,100次、2000次,等等),则上述生成操作的迭代执行被终止。通过这种方式,可以避免生成的版图元素表示序列过大。应当理解的是,上述生成操作的迭代执行还可以基于其他任何合适的条件而被终止,本公开的范围在此方面不受限制。

进一步地,可以基于由第一机器学习模型1020生成的多个待摆放版图元素的相应预测元素表示来更新第一机器学习模型1020的参数值。示例性地而非限制性,可以基于多个待摆放版图元素的相应预测元素表示与多个训练版图元素的相应训练元素表示之间的差值来确定训练第一机器学习模型1020所使用的损失函数。

在一些实施例中,可以基于第一特征表示的概率分布与参考分布之间的分布距离来确定第一损失。示例性地,第一损失可以基于如下的式子(2)来确定:

其中Loss

更具体地,第一损失例如可以基于下式确定:

其中Loss

附加地,可以基于多个待摆放版图元素的相应预测元素表示与第一特征表示来确定第二损失。示例性地,第二损失可以基于如下的式子(3)来确定:

其中Loss

进一步地,可以基于第一损失和第二损失来更新第一机器学习模型1020的参数值。在一些实施例中,可以直接将第一损失与第二损失之和确定为总损失。在另一些实施例中,可以基于第一损失和针对第一损失的调节因子来确定经调节的第一损失,并且将经调节的第一损失和第二损失之和确定为总损失。示例性地,总损失可以基于如下的式子(4)来确定:

其中Loss表示总损失,Loss

通过最小化总损失,可以不断更新第一机器学习模型1020的参数值,直至总损失收敛至小于预定阈值或者训练轮次达到预定数目为止。以上描述了训练第一机器学习模型1020的示例过程。应当理解的是,还可以使用其他任何合适的损失函数来训练第一机器学习模型1020,并且还可以以其他任何合适的方式来构建训练集并训练第一机器学习模型1020,以实现本文中描述的版图元素表示序列生成功能。本公开的范围在此方面不受限制。

通过以上描述可以看到,在根据本公开的各实施例的用于训练机器学习模型的方案中,借助于元素表示来描述版图元素的属性,进而构建训练数据,以用于训练机器学习模型。通过这种方式,可以将版图元素的布局抽象为点列,这有利于有效地刻画版图元素之间的布局特征,并且便于应用机器学习模型。以此方式,可以快速地学习已有版图的特征,进而生成新的版图。通过这种方式训练的机器学习模型在后续的使用过程中可以更高效地生成版图,并且有助于提高版图的多样性。

下面描述生成版图的示例实施例。如上文中所简要提及的,电子设备120可以获取被摆放成参考布局的多个参考版图元素的相应参考元素表示。每个参考版图元素的参考元素表示指示该参考版图元素在参考布局中的位置、该参考版图元素的类型、以及该参考版图元素在与多个参考版图元素相对应的参考版图元素序列中的排列状态。

在一些实施例中,电子设备120例如可以从训练数据中选择一个版图元素,并且获取与该版图元素相关联的多个参考版图元素的相应参考元素表示。备选地,电子设备120可以从未被包括在训练数据中的版图中选择一个版图元素作为参考版图元素,并且通过上文参考图9描述的方式来生成针对多个参考版图元素的相应参考元素表示。在又一些实施例中,电子设备120可以将目标版图中已摆放的版图元素作为参考版图元素,并从训练数据中选择相匹配的版图元素表示序列作为参考版图元素表示序列,这将在下文中进一步详细描述。

进一步地,电子设备120可以基于多个参考版图元素的相应参考元素表示,利用第一机器学习模型1020来生成一个或多个待摆放版图元素的相应目标元素表示。每个待摆放版图元素的目标元素表示指示该待摆放版图元素在目标布局中的位置、该待摆放版图元素的类型、以及该待摆放版图元素在与该待摆放版图元素相关联的版图元素序列中的排列状态。目标元素表示在形式上可以与上文描述的训练元素表示相似,例如同样采用四元组(D1,D2,z,S)的形式。本公开在此不再赘述。

参考图10,第一机器学习模型1020可以已经基于上文描述的模型训练过程而被训练。在模型使用过程中,输入第一机器学习模型1020的模型输入表示集1010可以包括针对多个参考版图元素的相应参考元素表示,并且由第一机器学习模型1020输出的模型输出表示集1030可以包括针对一个或多个待摆放版图元素的相应目标元素表示。

在一些实施例中,第一机器学习模型1020可以运行在电子设备120的本地。备选地,第一机器学习模型1020也可以运行在诸如云服务器等的远程设备中,并且能够被电子设备120调用。

在一些实施例中,利用第一机器学习模型1020来生成一个或多个待摆放版图元素的相应目标元素表示可以包括:基于多个参考版图元素的相应参考元素表示,利用第一机器学习模型1020中的编码器来生成第一特征表示;以及基于第一特征表示和多个参考版图元素中的第一参考版图元素的参考元素表示,利用第一机器学习模型1020中的解码器来生成第二特征表示,第一参考版图元素位于参考版图元素序列中的第一位;以及基于第二特征表示来确定一个或多个待摆放版图元素中的第一版图元素的目标元素表示。

示例性地,可以基于第二特征表示利用高斯混合模型来生成目标元素表示。通过这种方式,可以引入随机变化,并且增加随机采样能力,使得基于同一参考布局生成的多个版图元素的布局可以在一定程度上随机变化,从而可以提高所生成版图的多样性。应当理解的是,还可以借助于其他任何合适的模块来引入随机变化,本公开的范围在此方面不受限制。

此外,利用第一机器学习模型1020来生成一个或多个待摆放版图元素的相应目标元素表示还可以包括:将第二特征表示设置为第一输入表示;将第一版图元素的目标元素表示设置为第二输入表示;以及迭代地执行以下生成操作:基于第一特征表示、第一输入表示和第二输入表示,利用第一机器学习模型1020中的解码器来生成第三特征表示;基于第三特征表示来确定针对一个或多个待摆放版图元素中的一个版图元素的目标元素表示;将第三特征表示设置为第一输入表示;以及将所确定的目标元素表示设置为第二输入表示。通过这种方式,可以利用第一机器学习模型1020来高效地生成目标元素表示序列,从而提高生成版图的效率。

示例性地而非限制性地,响应于所确定的目标元素表示指示的排列状态为结束排列,生成操作的迭代执行被终止。通过这种方式,可以在出现排列状态为结束排列的目标元素表示之后,及时终止生成操作的迭代执行。因此,可以避免生成多余的目标元素表示,从而可以提高生成版图的效率。应当理解的是,上述生成操作的迭代执行还可以基于其他任何合适的条件而被终止,例如已执行的迭代轮次的数目超过预定阈值。本公开的范围在此方面不受限制。

目标元素表示的上述生成过程与上文参考图11描述的过程类似,本公开在此不在赘述。

在一些实施例中,可以先利用第一机器学习模型1020来生成一个待摆放版图元素的相应目标元素表示,然后基于该目标元素表示来摆放版图元素。进一步地,利用第一机器学习模型1020来生成下一个待摆放版图元素的相应目标元素表示,然后基于该目标元素表示来摆放下一个版图元素,以此类推。换言之,目标元素表示的生成与相应版图元素的摆放交替进行。

在另一些实施例中,可以一次性利用第一机器学习模型1020来生成多个待摆放版图元素的相应目标元素表示,例如目标元素表示序列。然后,基于该目标元素表示序列来摆放多个版图元素。应当理解的是,还可以以其他任何合适的方式来执行目标元素表示的生成与相应版图元素的摆放,本公开的范围在此方面不受限制。

进一步地,可以针对所生成的每个目标元素表示执行以下摆放操作,以获得目标版图的至少一部分:基于该目标元素表示所指示的待摆放版图元素的类型,获取目标版图元素作为待摆放版图元素;以及基于该目标元素表示所指示的待摆放版图元素在目标布局中的位置,在目标布局中摆放目标版图元素。为了便于描述,在下文中以目标元素表示是(x2, y2, z2, 1)为例并且参考图12进行描述。图12示出了根据本公开的一些实施例的版图元素摆放过程的示意图1200。

在一些实施例中,可以从包括多个版图元素的版图元素库中选择与类型相匹配的版图元素作为目标版图元素。在一些实施例中版图元素库可以预先生成。示例性地,可以从版图元素库中选择特征值与z2相同或相近(例如差异小于预定阈值)的版图元素作为目标版图元素(对应于图12中的第二目标版图元素1212)。通过这种方式,可以高效地获取待摆放的版图元素,从而提高生成版图的速度。

备选地,可以基于待摆放版图元素在目标布局中的位置,利用上文参考图6描述的第二机器学习模型620来获取与类型相匹配的版图元素作为目标版图元素。示例性地,可以将点表示(x2, y2, 1, 0, 0)输入第二机器学习模型620,以生成目标点表示序列。进一步地,可以通过上文参考图7至图8描述的方式基于目标点表示序列来生成候选目标版图元素,并且确定该候选目标版图元素的特征值z。如果该候选目标版图元素的特征值z与z2相同或相近,则该候选目标版图元素的类型与待摆放版图元素的类型相匹配,因此可以将该候选目标版图元素确定为目标版图元素。否则,可以基于点表示(x2, y2, 1, 0, 0)利用第二机器学习模型620继续生成新的候选目标版图元素,并重复上述过程,直至获得符合条件的目标版图元素为止。通过这种方式,可以获得更多样化的版图元素以用于生成版图,从而提高最终所生成的版图的多样性。

进一步地,可以基于该目标元素表示所指示的待摆放版图元素在目标布局中的位置,在目标布局中摆放目标版图元素。例如,可以将第二目标版图元素1212摆放在如图12所示的位置处,其中第二目标版图元素1212的左下角顶点F2相对于第一目标版图元素1210的左下角顶点F1的偏移坐标对应于(x2, y2)。

在一些实施例中,在将目标版图元素摆放在目标布局中之后,可以执行设计规则检查(Design Rule Check, DRC)。如果确定被摆放在目标布局中的目标版图元素不符合DRC规则,则可以调整目标版图元素的位置。例如将目标版图元素的位置从(x2, y2)调整为(x2-a,y2-b)。如果位置调整后的目标版图元素符合DRC规则,可以将目标版图元素保留在版图中。如果位置调整后的目标版图元素仍然不符合DRC规则,则可以从目标布局中移除目标版图元素。在一个示例中,可以直接放弃基于相应的版图元素表示来摆放版图元素,而直接开始基于下一个版图元素表示来进行摆放。备选地,可以重新获取目标版图元素来进行摆放。本公开的范围在此方面不受限制。

通过这种方式,可以保证所摆放的版图元素符合DRC规则,从而确保最终生成的版图的合规性。以此方式,可以有利地提高所生成目标版图的质量。需要指出的是,针对目标版图元素位置的调整可以不体现在对应的版图元素表示中,因此也就不会影响后续版图元素表示的生成。

由于目标元素表示(x2, y2, z2, 1)指示对应的版图元素在版图元素序列中的排列状态为中间,因此可以继续利用第一机器学习模型1020来生成元素表示并摆放相应版图元素,或者可以继续根据已经生成目标元素表示序列中的下一个目标元素表示来摆放版图元素。直至完成针对当前目标元素表示序列所对应的版图元素的摆放。然后,可以以当前版图元素序列中特定位次(例如,第二位,等等)的版图元素作为起始,来利用第一机器学习模型1020继续生成新的目标元素表示序列,并进行版图元素的摆放。以此类推,直至版图的排版区域内无法继续摆放版图元素为止,以获得最终的目标版图130。

示例性地,在图12的示例中,在完成第一目标版图元素1210周边的多个版图元素的摆放之后,可以以第二目标版图元素1212为起始开始下一轮摆放。在一些实施例中可以将第二目标版图元素1212的坐标施加一定偏移量(-x2, -y2),以归至坐标原点(0, 0)。然后,可以基于版图元素表示(0, 0, z2, 0)从训练数据中获取相匹配的参考版图元素序列,该参考版图元素序列中的第一个版图元素表示同样是(0, 0, z2, 0)。然后可以基于上述类似的方式,并考虑还原偏移量(-x2, -y2)来进行第二目标版图元素1212周边的多个元素的摆放。通过这种扩散的方式,可以有规则地进行版图元素的摆放,从而可以高效地生成版图。

通过以上结合图1至图12的描述可以看到,在根据本公开的各实施例的用于生成版图的方案中,通过借助于版图元素表示来描述版图元素的属性,进而利用机器学习模型来处理,从而生成版图。通过这种方式,一方面,可以将版图元素的布局抽象为点列,这有利于有效地刻画版图元素之间的布局特征,并且便于应用机器学习模型。以此方式,可以快速地学习已有版图的特征,进而生成新的版图。另一方面,借助于版图元素表示可以表征版图元素序列中各个版图元素的位置、类型和排列状态,从而不仅可以更好地表示每个版图元素自身的特征,并且可以充分考虑版图元素及其周围版图元素之间的关系。以此方式,可以更高效地生成版图,并且有助于提高版图的多样性。

应当理解的是,根据本公开的各实施例的方案可以适用于需要生成版图的任何合适的应用场景,例如芯片版图、光学邻近效应修正(Optical Proximity Correction, OPC)验证、版图库的数据增强,等等。本公开的范围在此方面不受限制。

图13示出了根据本公开的一些实施例的用于生成版图的方法1300的流程图。在一些实施例中,方法1300可以在如图1所示的电子设备120处执行。应当理解的是,方法1300还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。

在框1302,获取被摆放成参考布局的多个参考版图元素的相应参考元素表示,每个参考版图元素的参考元素表示指示该参考版图元素在参考布局中的位置、该参考版图元素的类型、以及该参考版图元素在与多个参考版图元素相对应的参考版图元素序列中的排列状态。

在框1304,基于多个参考版图元素的相应参考元素表示,利用第一机器学习模型来生成一个或多个待摆放版图元素的相应目标元素表示,每个待摆放版图元素的目标元素表示指示该待摆放版图元素在目标布局中的位置、该待摆放版图元素的类型、以及该待摆放版图元素在与该待摆放版图元素相关联的版图元素序列中的排列状态。

在框1306,基于一个或多个待摆放版图元素的相应目标元素表示,生成目标版图。

在一些实施例中,基于一个或多个待摆放版图元素的相应目标元素表示,生成目标版图包括:针对相应目标元素表示中的每个目标元素表示执行以下摆放操作,以获得目标版图的至少一部分:基于该目标元素表示所指示的待摆放版图元素的类型,获取目标版图元素作为待摆放版图元素;以及基于该目标元素表示所指示的待摆放版图元素在目标布局中的位置,在目标布局中摆放目标版图元素。

在一些实施例中,基于该目标元素表示所指示的待摆放版图元素的类型,获取目标版图元素作为待摆放版图元素包括:从包括多个版图元素的版图元素库中选择与类型相匹配的版图元素作为目标版图元素。

在一些实施例中,基于该目标元素表示所指示的待摆放版图元素的类型,获取目标版图元素作为待摆放版图元素包括:基于待摆放版图元素在目标布局中的位置,利用第二机器学习模型来获取与类型相匹配的版图元素作为目标版图元素。

在一些实施例中,基于待摆放版图元素在目标布局中的位置,利用第二机器学习模型来获取与类型相匹配的版图元素作为目标版图元素包括:基于待摆放版图元素在目标布局中的位置,利用第二机器学习模型来生成针对目标点序列的目标点表示序列,目标点表示序列中的每个目标点表示对应于目标点序列中的一个目标点,每个目标点表示指示对应的目标点与目标点序列中的前一个目标点之间的相对位置和连接状态;基于目标点表示序列,连接目标点序列中的至少一部分目标点,以生成候选目标版图元素;以及响应于确定候选目标版图元素的类型与待摆放版图元素的类型相匹配,将候选目标版图元素确定为目标版图元素。

在一些实施例中,摆放操作还包括:响应于确定被摆放在目标布局中的目标版图元素不符合设计规则检查DRC规则,调整目标版图元素的位置;以及响应于确定在经调整的位置处的目标版图元素不符合DRC规则,从目标布局中移除目标版图元素。

在一些实施例中,基于多个参考版图元素的相应参考元素表示,利用第一机器学习模型来生成一个或多个待摆放版图元素的相应目标元素表示包括:基于多个参考版图元素的相应参考元素表示,利用第一机器学习模型中的编码器来生成第一特征表示;以及基于第一特征表示和多个参考版图元素中的第一参考版图元素的参考元素表示,利用第一机器学习模型中的解码器来生成第二特征表示,第一参考版图元素位于参考版图元素序列中的第一位;以及基于第二特征表示来确定一个或多个待摆放版图元素中的第一版图元素的目标元素表示。

在一些实施例中,基于第二特征表示来确定一个或多个待摆放版图元素中的第一版图元素的目标元素表示包括:基于第二特征表示,利用高斯混合模型来生成目标元素表示。

在一些实施例中,基于多个参考版图元素的相应参考元素表示,利用第一机器学习模型来生成一个或多个待摆放版图元素的相应目标元素表示还包括:将第二特征表示设置为第一输入表示;将第一版图元素的目标元素表示设置为第二输入表示;以及迭代地执行以下生成操作:基于第一特征表示、第一输入表示和第二输入表示,利用第一机器学习模型中的解码器来生成第三特征表示;基于第三特征表示来确定针对一个或多个待摆放版图元素中的一个版图元素的目标元素表示;将第三特征表示设置为第一输入表示;以及将所确定的目标元素表示设置为第二输入表示。

在一些实施例中,响应于所确定的目标元素表示指示的排列状态为结束排列,生成操作的迭代执行被终止。

在一些实施例中,参考版图元素在参考布局中的位置包括:参考版图元素与参考版图元素序列中的一个参考版图元素之间的相对位置;并且待摆放版图元素在目标布局中的位置包括:待摆放版图元素与版图元素序列中的一个版图元素之间的相对位置。

图14示出了根据本公开的一些实施例的用于生成训练数据的方法1400的流程图。在一些实施例中,方法1400可以在如图1所示的电子设备120处执行。应当理解的是,方法1400还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。

在框1402,基于训练版图中的第一训练版图元素,从训练版图中选择多个训练版图元素,多个训练版图元素包括第一训练版图元素。

在框1404,基于多个训练版图元素在训练版图中的布局,确定多个训练版图元素的相应训练元素表示,以获得用于训练第一机器学习模型的训练数据,每个训练版图元素的训练元素表示指示该训练版图元素在布局中的位置、该训练版图元素的类型、以及该训练版图元素在与多个训练版图元素相对应的训练版图元素序列中的排列状态,其中第一训练版图元素位于训练版图元素序列的第一位。

在一些实施例中,多个训练版图元素中除第一训练版图元素之外的每个训练版图元素与第一训练版图元素的距离小于预定距离阈值。

在一些实施例中,基于多个训练版图元素在训练版图中的布局,确定多个训练版图元素的相应训练元素表示包括:基于多个训练版图元素在布局中的位置,按照排序规则将多个训练版图元素排列成训练版图元素序列;以及确定多个训练版图元素的相应训练元素表示。

在一些实施例中,多个训练版图元素中的每个训练版图元素的训练元素表示包括:第一元素,第一元素指示该训练版图元素与第一训练版图元素之间在第一方向上的距离;第二元素,第二元素指示该训练版图元素与第一训练版图元素之间在第二方向上的距离,第二方向不同于第一方向;第三元素,第三元素指示该训练版图元素的类型;以及第四元素,第四元素指示该训练版图元素在训练版图元素序列中的排列状态。

在一些实施例中,确定多个训练版图元素的相应训练元素表示包括:针对多个训练版图元素中的每个训练版图元素执行以下操作:获取该训练版图元素的聚类信息,聚类信息包括该训练版图元素在训练版图元素集合中被聚类到的分组的标识信息、以及该训练版图元素在分组中的标识信息,训练版图元素集合包括多个训练版图元素;以及基于聚类信息确定该训练版图元素的训练元素表示中的第三元素。

在一些实施例中,训练版图元素集合通过以下方式而被生成:针对多个版图元素的相应形状信息执行哈希化操作,以获得针对多个版图元素的相应哈希值;以及基于多个版图元素的相应哈希值,从多个版图元素中获取训练版图元素集合。

在一些实施例中,方法1400还包括:将哈希值相匹配的一组版图元素的相应标记信息相关联地存储。

图15示出了根据本公开的一些实施例的用于训练机器学习模型的方法1500的流程图。在一些实施例中,方法1500可以在如图1所示的电子设备120处执行。应当理解的是,方法1500还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。

在框1502,获取被摆放成训练布局的多个训练版图元素的相应训练元素表示,每个训练版图元素的训练元素表示指示该训练版图元素在训练布局中的位置、该训练版图元素的类型、以及该训练版图元素在与多个训练版图元素相对应的训练版图元素序列中的排列状态。

在框1504,基于多个训练版图元素的相应训练元素表示,利用第一机器学习模型来生成多个待摆放版图元素的相应预测元素表示,每个待摆放版图元素的预测元素表示指示该待摆放版图元素在预测布局中的位置、该待摆放版图元素的类型、以及该待摆放版图元素在与该待摆放版图元素相关联的版图元素序列中的排列状态。

在框1506,基于多个待摆放版图元素的相应预测元素表示,更新第一机器学习模型的参数值。

在一些实施例中,基于多个训练版图元素的相应训练元素表示,利用第一机器学习模型来生成多个待摆放版图元素的相应预测元素表示包括:基于多个训练版图元素的相应训练元素表示,利用第一机器学习模型中的编码器来生成第一特征表示;以及基于第一特征表示和多个训练版图元素中的第一训练版图元素的训练元素表示,利用第一机器学习模型中的解码器来生成第二特征表示,第一训练版图元素位于训练版图元素序列中的第一位;以及基于第二特征表示来确定多个待摆放版图元素中的第一版图元素的预测元素表示。

在一些实施例中,基于第二特征表示来确定多个待摆放版图元素中的第一版图元素的预测元素表示包括:基于第二特征表示,利用高斯混合模型来生成预测元素表示。

在一些实施例中,基于多个训练版图元素的相应训练元素表示,利用第一机器学习模型来生成多个待摆放版图元素的相应预测元素表示还包括:将第二特征表示设置为第一输入表示;将第一版图元素的目标元素表示设置为第二输入表示;以及迭代地执行以下生成操作:基于第一特征表示、第一输入表示和第二输入表示,利用第一机器学习模型中的解码器来生成第三特征表示;基于第三特征表示来确定针对多个待摆放版图元素中的一个版图元素的预测元素表示;将第三特征表示设置为第一输入表示;以及将所确定的预测元素表示设置为第二输入表示。

在一些实施例中,响应于所确定的预测元素表示指示的排列状态为结束排列,生成操作的迭代执行被终止。

在一些实施例中,基于多个待摆放版图元素的相应预测元素表示,更新第一机器学习模型的参数值包括:基于第一特征表示的概率分布与参考分布之间的分布距离,确定第一损失;基于多个待摆放版图元素的相应预测元素表示与第一特征表示,确定第二损失;以及基于第一损失和第二损失,更新第一机器学习模型的参数值。

在一些实施例中,基于第一损失和第二损失,更新第一机器学习模型的参数值包括:基于第一损失和针对第一损失的调节因子,确定经调节的第一损失;将经调节的第一损失和第二损失之和确定为总损失;以及通过最小化总损失,来更新参数值。

图16示出了根据本公开的一些实施例的用于生成版图元素的方法1600的流程图。在一些实施例中,方法1600可以在如图1所示的电子设备120处执行。应当理解的是,方法1600还可以包括未示出的附加框和/或可以省略所示出的某个(或者某些)框,本公开的范围在此方面不受限制。

在框1602,获取用于生成版图元素的单个参考点的表示,该表示指示单个参考点的属性。

在框1604,基于单个参考点的表示,利用第二机器学习模型来生成针对目标点序列的目标点表示序列,该目标点表示序列中的每个目标点表示对应于目标点序列中的一个目标点,每个目标点表示指示对应的目标点与目标点序列中的前一个目标点之间的相对位置和连接状态。

在框1606,基于目标点表示序列,连接目标点序列中的至少一部分目标点,以生成候选目标版图元素。

在一些实施例中,基于单个参考点的表示利用第二机器学习模型来生成针对目标点序列的目标点表示序列包括:将单个参考点的表示设置为输入表示;以及迭代地执行以下生成操作:基于输入表示,利用第二机器学习模型来生成目标点表示序列中的一个目标点表示;以及将目标点表示设置为输入表示。

在一些实施例中,基于输入表示,利用第二机器学习模型来生成目标点表示序列中的一个目标点表示包括:基于输入表示,利用第二机器学习模型中的解码器来生成第一特征表示;以及基于第一特征表示来确定目标点表示。

在一些实施例中,基于第一特征表示来确定目标点表示包括:基于第一特征表示,利用高斯混合模型来生成目标点表示。

在一些实施例中,响应于所确定的目标点表示指示的连接状态为结束连接,生成操作的迭代执行被终止。

在一些实施例中,第二机器学习模型是针对目标类型的版图元素而被训练,并且基于目标点表示序列连接目标点序列中的至少一部分目标点以生成候选目标版图元素包括:按照目标点表示序列中的连接状态,依次连接目标点序列中的所有目标点,以获得候选版图元素;以及基于候选版图元素以及目标类型来生成候选目标版图元素,候选目标版图元素具有目标类型。

在一些实施例中,基于候选版图元素以及目标类型来生成候选目标版图元素包括:响应于确定目标类型是线条,将候选版图元素确定为候选目标版图元素;或响应于确定目标类型是多边形,针对候选版图元素的执行线段闭合处理,以获得候选目标版图元素。

在一些实施例中,方法1600还包括:确定候选目标版图元素是否符合预定要求;响应于确定候选目标版图元素符合预定要求,执行以下至少一项:将候选目标版图元素存储在版图元素库中,或将候选目标版图元素摆放在排版区域中。

在一些实施例中,预定要求包括以下至少一项:候选目标版图元素所包括的每个线段均为水平或竖直的;候选目标版图元素中的任意两个线段不存在交叉;候选目标版图元素的关键尺寸大于或等于第一宽度阈值;或者候选目标版图元素的关键尺寸小于或等于第二宽度阈值,第二宽度阈值大于第一宽度阈值。

在一些实施例中,第二机器学习模型基于针对多个训练点序列的多个训练点表示序列而被训练。多个训练点表示序列中的每个训练点表示序列所包括的每个训练点表示对应于相应的训练点序列中的一个训练点。每个训练点表示指示对应的训练点与相应的训练点序列中的前一个训练点之间的相对位置和连接状态。

在一些实施例中,多个训练点表示序列中的一个训练点表示序列通过以下方式而被生成:确定与用于训练第二机器学习模型的训练版图元素相对应的一组训练点,一组训练点包括训练版图元素的顶点;基于一组训练点在训练版图元素中的位置,按照排序规则将一组训练点排列成训练点序列;以及基于训练版图元素,确定针对训练点序列的训练点表示序列。

本公开的实施例还提供了用于实现上述方法或过程的相应设备。图17示出了其中可以实施本公开的一个或多个实施例的电子设备1700的框图。该电子设备1700例如可以用于实现如图1所示的电子设备120。应当理解,图17所示出的电子设备1700仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。

如图17所示,电子设备1700是通用电子设备的形式。电子设备1700的组件可以包括但不限于一个或多个处理器或处理单元1710、存储器1720、存储设备1730、一个或多个通信单元1740、一个或多个输入设备1750以及一个或多个输出设备1760。处理单元1710可以是实际或虚拟处理器并且能够根据存储器1720中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高电子设备1700的并行处理能力。

电子设备1700通常包括多个计算机存储介质。这样的介质可以是电子设备1700可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1720可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备1730可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在电子设备1700内被访问。

电子设备1700可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图17中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1720可以包括计算机程序产品1725,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。

通信单元1740实现通过通信介质与其他电子设备进行通信。附加地,电子设备1700的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,电子设备1700可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。

输入设备1750可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1760可以是一个或多个输出设备,例如显示器、扬声器、打印机等。电子设备1700还可以根据需要通过通信单元1740与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与电子设备1700交互的设备进行通信,或者与使得电子设备1700与一个或多个其他电子设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。

根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现上文描述的方法。

这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。

技术分类

06120116333455