CN116820524A - 模型更新方法、装置、计算机设备及存储介质 - Google Patents

模型更新方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN116820524A
CN116820524A CN202311059020.1A CN202311059020A CN116820524A CN 116820524 A CN116820524 A CN 116820524A CN 202311059020 A CN202311059020 A CN 202311059020A CN 116820524 A CN116820524 A CN 116820524A
Authority
CN
China
Prior art keywords
node
transformation
transformation node
parameters
nodes
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.)
Granted
Application number
CN202311059020.1A
Other languages
English (en)
Other versions
CN116820524B (zh
Inventor
周刘成
蒋荣琳
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311059020.1A priority Critical patent/CN116820524B/zh
Publication of CN116820524A publication Critical patent/CN116820524A/zh
Application granted granted Critical
Publication of CN116820524B publication Critical patent/CN116820524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种模型更新方法、装置、计算机设备及存储介质,属于计算机技术领域。该方法包括:接收模型更新请求,对模型更新请求指示的网络模型文件进行解析,得到计算图,将计算图中的多个目标变换节点进行融合,用得到的融合节点替换计算图中多个目标变换节点,得到更新后的计算图;基于更新后的计算图,生成更新后的网络模型文件,返回更新后的网络模型文件。本申请提供的方案中,采取优化计算图的方式,减少计算图包含的数据变换节点,以减少更新后的网络模型文件包含的、用于变换数据的格式的网络层,实现了对网络模型文件的优化,能够减少更新后的网络模型文件的数据搬运行为,进而提升了更新后的网络模型的处理效率。

Description

模型更新方法、装置、计算机设备及存储介质
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种模型更新方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的发展,网络模型的应用越来越广泛,随之对网络模型的要求越来越高。目前的网络模型中不同的网络层可能对输入数据的格式需求不同,则网络模型中存在用于变换数据的格式的网络层,以便将数据变换为下一个网络层所需的数据格式。但是,这样会使得网络模型中存在大量的数据搬运行为,导致网络模型的处理效率低。
发明内容
本申请实施例提供了一种模型更新方法、装置、计算机设备及存储介质,能够提高网络模型的处理效率,所述技术方案包括如下方面。
一方面,提供了一种模型更新方法,所述方法包括:
接收模型更新请求,对所述模型更新请求指示的网络模型文件进行解析,得到计算图,所述计算图包括多个节点及所述多个节点之间的连接关系,所述节点用于表示网络模型包含的网络层,所述多个节点包括数据变换节点,所述数据变换节点用于变换数据的格式;
将所述计算图中的多个目标变换节点进行融合,用得到的融合节点替换所述计算图中所述多个目标变换节点,得到更新后的计算图,所述多个目标变换节点为所述计算图中属于相同节点类型的数据变换节点,且所述多个目标变换节点之间具有连接关系;
基于所述更新后的计算图,生成更新后的网络模型文件,返回所述更新后的网络模型文件。
在一种可能实现方式中,所述基于所述第四变换节点的参数及所述第五变换节点的参数,用所述第四变换节点及所述第五变换节点,替换所述计算图中的所述第一变换节点及所述第二变换节点,包括:
基于所述第四变换节点的输入参数、输出参数及转置参数,用所述第四变换节点替换所述计算图中的所述第一变换节点;
基于所述第五变换节点的输入参数及输出参数,用所述第五变换节点替换所述计算图中的所述第二变换节点。
在另一种可能实现方式中,所述第一映射关系包括多组序号,每组序号包括第一维度序号和第二维度序号,所述第一维度序号为所述第一变换节点的输入参数中的维度序号,所述第二维度序号为所述第一变换节点的输出参数中的维度序号;所述基于所述第一映射关系,对所述第二变换节点的转置参数进行更新,得到所述第四变换节点的转置参数,包括:
对于所述每组序号包括的第一维度序号和第二维度序号,用所述第一维度序号替换所述第二变换节点的转置参数中的所述第二维度序号,得到所述第四变换节点的转置参数。
在另一种可能实现方式中,所述网络模型部署在处理器中,所述计算图包括每个节点的参数,所述节点的参数指示所述节点所表征的网络层的参数;所述多个节点还包括功能节点,所述功能节点用于对数据进行处理;所述将所述计算图中的多个目标变换节点进行融合,用得到的融合节点替换所述计算图中所述多个目标变换节点,得到更新后的计算图之前,所述方法还包括:
基于所述处理器的性能参数,对所述功能节点的第一参数进行更新,得到所述功能节点的第二参数,所述第二参数与所述性能参数匹配;
基于所述第一参数及所述第二参数,在所述计算图中添加与所述功能节点相邻的数据变换节点,添加的数据变换节点用于将输入至所述功能节点的数据变换为与所述第二参数匹配的数据,或者,用于将所述功能节点输出的数据变换为与所述第一参数匹配的数据。
在另一种可能实现方式中,所述基于所述更新后的计算图,生成更新后的网络模型文件,包括:
基于更新后的计算图中的节点的参数,创建每个节点对应的网络层;
基于更新后的计算图中节点之间的连接关系,将创建的网络层连接,得到所述更新后的网络模型文件。
另一方面,提供了一种模型更新装置,所述装置包括:
接收模块,用于接收模型更新请求,对所述模型更新请求指示的网络模型文件进行解析,得到计算图,所述计算图包括多个节点及所述多个节点之间的连接关系,所述节点用于表示网络模型包含的网络层,所述多个节点包括数据变换节点,所述数据变换节点用于变换数据的格式;
融合模块,用于将所述计算图中的多个目标变换节点进行融合,用得到的融合节点替换所述计算图中所述多个目标变换节点,得到更新后的计算图,所述多个目标变换节点为所述计算图中属于相同节点类型的数据变换节点,且所述多个目标变换节点之间具有连接关系;
返回模块,用于基于所述更新后的计算图,生成更新后的网络模型文件,返回所述更新后的网络模型文件。
在一种可能实现方式中,所述计算图包括每个节点的参数,所述节点的参数指示所述节点所表征的网络层的参数;所述融合模块,用于基于所述多个目标变换节点的参数,确定所述融合节点的参数;基于所述融合节点的参数,用所述融合节点在所述计算图中替换所述多个目标变换节点,得到所述更新后的计算图。
在另一种可能实现方式中,所述融合模块,用于在所述多个目标变换节点属于形状重塑类型的情况下,将所述多个目标变换节点中第一个目标变换节点的输入参数,确定为所述融合节点的输入参数,属于所述形状重塑类型的目标变换节点用于重塑数据的形状,所述目标变换节点的输入参数指示输入至所述目标变换节点的数据的格式;将所述多个目标变换节点中最后一个目标变换节点的输出参数,确定为所述融合节点的输出参数,所述目标变换节点的输出参数指示所述目标变换节点输出的数据的格式。
在另一种可能实现方式中,所述融合模块,用于在所述多个目标变换节点属于转置类型的情况下,将所述多个目标变换节点中第一个目标变换节点的输入参数,确定为所述融合节点的输入参数,属于所述转置类型的目标变换节点用于对数据进行转置,所述目标变换节点的输入参数指示输入至所述目标变换节点的数据的格式;将所述多个目标变换节点的转置参数进行融合,得到所述融合节点的转置参数,所述目标变换节点的转置参数指示对数据进行转置的格式;将所述多个目标变换节点中最后一个目标变换节点的输出参数,确定为所述融合节点的输出参数,所述目标变换节点的输出参数指示所述目标变换节点输出的数据的格式。
在另一种可能实现方式中,所述装置还包括:
确定模块,用于从所述计算图包含的多个节点中,确定第一变换节点、第二变换节点及第三变换节点,所述第一变换节点、所述第二变换节点及所述第三变换节点为所述计算图中具有连接关系的数据变换节点,所述第一变换节点与所述第三变换节点属于相同的节点类型,且与所述第二变换节点属于不同的节点类型;
替换模块,用于用第四变换节点及第五变换节点,等效替换所述计算图中的所述第一变换节点及所述第二变换节点,所述第四变换节点与所述第二变换节点属于相同的节点类型,所述第五变换节点与所述第一变换节点属于相同的节点类型,且与所述第三变换节点相邻。
在另一种可能实现方式中,所述计算图包括每个节点的参数,所述节点的参数指示所述节点所表征的网络层的参数;所述替换模块,用于基于所述第一变换节点的参数及所述第二变换节点的参数,确定所述第四变换节点的参数及所述第五变换节点的参数;基于所述第四变换节点的参数及所述第五变换节点的参数,用所述第四变换节点及所述第五变换节点,替换所述计算图中的所述第一变换节点及所述第二变换节点。
在另一种可能实现方式中,所述替换模块,用于在所述第一变换节点属于形状重塑类型、第二变换节点属于转置类型的情况下,基于所述第一变换节点的输入参数及输出参数,确定第一映射关系,所述第一变换节点的输入参数指示输入至所述第一变换节点的数据的格式,所述第一变换节点的输出参数指示所述第一变换节点输出的数据的格式,所述第一映射关系指示所述输入参数与所述输出参数中不同维度的数值之间的映射关系;基于所述第一映射关系,对所述第二变换节点的转置参数进行更新,得到所述第四变换节点的转置参数,所述第二变换节点的转置参数指示对数据进行转置的格式;将所述第一变换节点的输入参数,确定为所述第四变换节点的输入参数;将所述第四变换节点的输入参数及转置参数进行融合,得到所述第四变换节点的输出参数;将所述第四变换节点的输出参数,确定为所述第五变换节点的输入参数,将所述第二变换节点的输出参数,确定为所述第五变换节点的输出参数。
在另一种可能实现方式中,所述替换模块,用于基于所述第四变换节点的输入参数、输出参数及转置参数,用所述第四变换节点替换所述计算图中的所述第一变换节点;基于所述第五变换节点的输入参数及输出参数,用所述第五变换节点替换所述计算图中的所述第二变换节点。
在另一种可能实现方式中,所述第一映射关系包括多组序号,每组序号包括第一维度序号和第二维度序号,所述第一维度序号为所述第一变换节点的输入参数中的维度序号,所述第二维度序号为所述第一变换节点的输出参数中的维度序号;所述替换模块,用于对于所述每组序号包括的第一维度序号和第二维度序号,用所述第一维度序号替换所述第二变换节点的转置参数中的所述第二维度序号,得到所述第四变换节点的转置参数。
在另一种可能实现方式中,所述输入参数包括多个第一数值,所述输出参数包括多个第二数值,所述第一数值指示对应的维度包含的元素数量,所述第二数值指示对应的维度包含的元素数量;所述替换模块,用于按照所述多个第一数值的顺序及所述多个第二数值的顺序,从所述输入参数及所述输出参数中确定多组数值,每组数值包括至少一个第一数值及至少一个第二数值,所述至少一个第一数值指示的元素数量与所述至少一个第二数值指示的元素数量相等;将所述每组数值包含的数值在所述输入参数及所述输出参数中的维度序号,构成一组序号,将得到的多组序号构成所述第一映射关系。
在另一种可能实现方式中,所述替换模块,用于在所述第一变换节点属于转置类型、第二变换节点属于形状重塑类型的情况下,对所述第一变换节点的转置参数进行逆处理,得到逆转置参数,所述第一变换节点的转置参数指示对数据进行转置的格式;基于所述第二变换节点的输入参数及输出参数,确定第二映射关系,所述第二变换节点的输入参数指示输入至所述第二变换节点的数据的格式,所述第二变换节点的输出参数指示所述第二变换节点输出的数据的格式,所述第二映射关系指示所述输入参数与所述输出参数中不同维度的数值之间的映射关系;将所述第二映射关系与所述逆转置参数进行融合,得到所述第五变换节点的转置参数;将所述第二变换节点的输出参数,确定为所述第五变换节点的输出参数;基于所述第五变换节点的转置参数及输出参数,确定为所述第五变换节点的输入参数;将所述第一变换节点的输入参数,确定为所述第四变换节点的输入参数;将所述第五变换节点的输入参数,确定为所述第四变换节点的输出参数。
在另一种可能实现方式中,所述第二映射关系包括多组序号,每组序号包括第三维度序号和第四维度序号,所述第三维度序号为所述第二变换节点的输入参数中的维度序号,所述第四维度序号为所述第二变换节点的输出参数中的维度序号;所述替换模块,用于对于所述每组序号包括的第三维度序号和第四维度序号,用所述第四维度序号替换所述第二变换节点的转置参数中的所述第三维度序号,得到更新后的逆转置参数;对所述更新后的逆转置参数进行逆处理,得到所述第五变换节点的转置参数。
在另一种可能实现方式中,所述替换模块,用于在所述第一变换节点属于转置类型、第二变换节点属于扩充类型的情况下,将所述第一变换节点的输入参数,确定为所述第四变换节点的输入参数,所述第一变换节点用于对数据进行转置,所述第二变换节点用于扩充输入至所述第二变换节点的数据,所述第一变换节点的输入参数指示输入至所述第一变换节点的数据的格式;基于所述第一变换节点的转置参数,对所述第二变换节点的扩充参数进行更新,得到所述第四变换节点的扩充参数,所述第一变换节点的转置参数指示对数据进行转置的格式,所述第二变换节点的扩充参数指示扩充输入至所述第二变换节点的数据的情况;基于所述第四变换节点的输入参数及扩充参数,确定所述第四变换节点的输出参数,所述第四变换节点的输出参数指示所述第四变换节点输出的数据的格式;将所述第四变换节点的输出参数,确定为所述第五变换节点的输入参数;将所述第一变换节点的转置参数,确定为所述第五变换节点的转置参数;将所述第二变换节点的输出参数,确定为所述第五变换节点的输出参数。
在另一种可能实现方式中,所述替换模块,用于在所述第一变换节点属于形状重塑类型、第二变换节点属于扩充类型的情况下,基于所述第一变换节点的输入参数及输出参数,确定第一映射关系,所述第一变换节点的输入参数指示输入所述第一变换节点的数据的格式,所述第一变换节点的输出参数指示所述第一变换节点输出的数据的格式,所述第一映射关系指示所述输入参数与所述输出参数中不同维度的数值之间的映射关系;基于所述第一映射关系,对所述第二变换节点的扩充参数进行更新,得到所述第四变换节点的扩充参数,所述第二变换节点的扩充参数指示扩充输入至所述第二变换节点的数据的情况,将所述第一变换节点的输入参数,确定为所述第四变换节点的输入参数;基于所述第四变换节点的扩充参数及输入参数,确定所述第四变换节点的输出参数,所述第四变换节点的输出参数指示所述第四变换节点输出的数据的格式;将所述第四变换节点的输出参数,确定为所述第五变换节点的输入参数;将所述第二变换节点的输出参数,确定为所述第五变换节点的输出参数。
在另一种可能实现方式中,所述网络模型部署在处理器中,所述计算图包括每个节点的参数,所述节点的参数指示所述节点所表征的网络层的参数;所述多个节点还包括功能节点,所述功能节点用于对数据进行处理;所述装置还包括:
更新模块,用于基于所述处理器的性能参数,对所述功能节点的第一参数进行更新,得到所述功能节点的第二参数,所述第二参数与所述性能参数匹配;
添加模块,用于基于所述第一参数及所述第二参数,在所述计算图中添加与所述功能节点相邻的数据变换节点,添加的数据变换节点用于将输入至所述功能节点的数据变换为与所述第二参数匹配的数据,或者,用于将所述功能节点输出的数据变换为与所述第一参数匹配的数据。
在另一种可能实现方式中,所述返回模块,用于基于更新后的计算图中的节点的参数,创建每个节点对应的网络层;
基于更新后的计算图中节点之间的连接关系,将创建的网络层连接,得到所述更新后的网络模型文件。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如上述方面所述的模型更新方法所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如上述方面所述的模型更新方法所执行的操作。
再一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述方面所述的模型更新方法所执行的操作。
本申请实施例提供的方案中,对网络模型文件进行解析,以获取用于表征网络模型文件的计算图,采取优化计算图的方式,减少计算图包含的数据变换节点,以减少更新后的网络模型文件包含的、用于变换数据的格式的网络层,实现了对网络模型文件的优化,在保证网络模型文件的功能的前提下,减少网络模型文件包含的网络层,以使后续基于更新后的网络模型文件对数据进行处理时,能够减少更新后的网络模型文件的数据搬运行为,进而提升更新后的网络模型的处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的结构示意图;
图2是本申请实施例提供的一种模型更新方法的流程图;
图3是本申请实施例提供的另一种模型更新方法的流程图;
图4是本申请实施例提供的一种对数据进行形状重塑的示意图;
图5是本申请实施例提供的一种对数据进行转置的示意图;
图6是本申请实施例提供的一种对数据进行扩充的示意图;
图7是本申请实施例提供的一种节点等效替换的示意图;
图8是本申请实施例提供的另一种节点等效替换的示意图;
图9是本申请实施例提供的再一种模型更新方法的流程图;
图10是本申请实施例提供的再一种模型更新方法的流程图;
图11是本申请实施例提供的再一种模型更新方法的流程图;
图12是本申请实施例提供的再一种模型更新方法的流程图;
图13是本申请实施例提供的再一种模型更新方法的流程图;
图14是本申请实施例提供的再一种节点等效替换的示意图;
图15是本申请实施例提供的再一种模型更新方法的流程图;
图16是本申请实施例提供的再一种模型更新方法的流程图;
图17是本申请实施例提供的再一种节点等效替换的示意图;
图18是本申请实施例提供的再一种模型更新方法的流程图;
图19是本申请实施例提供的再一种节点等效替换的示意图;
图20是本申请实施例提供的再一种模型更新方法的流程图;
图21是本申请实施例提供的再一种节点等效替换的示意图;
图22是本申请实施例提供的再一种模型更新方法的流程图;
图23是本申请实施例提供的一种模型更新装置的结构示意图;
图24是本申请实施例提供的另一种模型更新装置的结构示意图;
图25是本申请实施例提供的一种终端的结构示意图;
图26是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请所使用的术语“第一”、“第二”、“第三”、“第四”、“第五”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一变换节点称为第二变换节点,且类似地,可将第二变换节点称为第一变换节点。
本申请所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或两个以上,多个包括两个或两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个。举例来说,多个数据变换节点包括3个数据变换节点,而每个是指这3个数据变换节点中的每一个数据变换节点,任一是指这3个数据变换节点中的任意一个,能够是第一个数据变换节点,或者是第二个数据变换节点,或者是第三个数据变换节点。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的模型更新请求及网络模型文件均是在充分授权的情况下获取的。
本申请实施例提供的模型更新方法,由计算机设备执行。可选地,该计算机设备为终端或服务器。可选地,该服务器是独立的物理服务器,或者,是多个物理服务器构成的服务器集群或者分布式系统,或者,是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。可选地,该终端是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能语音交互设备、智能家电及车载终端等,但并不局限于此。
在一些实施例中,本申请实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备能够组成区块链系统。
在一些实施例中,计算机设备被提供为服务器。图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境包括终端101和服务器102。终端101和服务器102之间通过无线或者有线网络连接。
终端101用于向服务器102发送模型更新请求,服务器102用于基于模型更新请求,对模型更新请求指示的网络模型文件进行更新,并向终端101返回更新后的网络模型文件。
在一种可能实现方式中,终端101上安装由服务器102提供服务的应用,终端101能够通过该应用实现例如数据传输、模型更新等功能。可选地,应用为终端101操作系统中的应用,或者为第三方提供的应用。例如,应用为模型更新应用,该模型更新应用具有模型更新的功能,当然,该模型更新应用还能够具有其他功能,例如,点评功能、购物功能、导航功能、游戏功能等。
终端101用于通过应用与服务器102进行交互,向服务器102发送模型更新请求,服务器102用于基于模型更新请求,对模型更新请求指示的网络模型文件进行更新,并通过应用向终端101返回更新后的网络模型文件。
图2是本申请实施例提供的一种模型更新方法的流程图,由计算机设备执行,如图2所示,该方法包括以下步骤。
201、计算机设备接收模型更新请求,对模型更新请求指示的网络模型文件进行解析,得到计算图,计算图包括多个节点及多个节点之间的连接关系,节点用于表示网络模型包含的网络层,多个节点包括数据变换节点,数据变换节点用于变换数据的格式。
在本申请实施例中,模型更新请求用于请求对所指示的网络模型文件进行更新,以优化网络模型文件中冗余的网络层,以保证优化后的网络模型文件的处理效率。网络模型文件即为待更新的网络模型,网络模型是由多个网络层组成,通过对网络模型文件进行解析,以便能够获取到用于表征网络模型的模型结构的计算图,进而能够基于计算图来获知网络模型的模型结构,对网络模型进行更新。
其中,模型更新请求是由请求方发送,该请求方为请求更新该网络模型文件的任一方。网络模型文件能够表示任意的网络模型,例如,网络模型为深度学习神经网络模型(Deep Neural Network,DNN)、卷积神经网络模型(Convolutional Neural Network,CNN)、极限学习机模型(Extreme Learning Machine,ELM)或其他的神经网络模型等。
数据变换节点用于表示网络模型中用于变换数据的格式的网络层,数据的格式是指数据的形状或数据包含元素的排布格式等,以数据为矩阵的形式表示为例,数据的形状即为矩阵的尺寸,如矩阵的尺寸为3×2,或者矩阵的尺寸为3×3×3,数据包含元素的排布格式是指数据包含的元素在内存中排布情况,例如,数据为3×2的矩阵,即该数据包含6个元素,对该数据包含的元素的排布格式进行变换,得到数据为2×3,也即是,将矩阵的行和列进行变换。在本申请实施例中,数据变换节点所表征的网络层在网络模型中,仅是为了将数据调整为下一个网络层所适配格式的数据,在网络模型对数据进行处理时,数据变换节点所表征的网络层仅会产生一些数据搬运操作,但并不涉及任何计算逻辑。
多个节点之间的连接关系具有指向性,多个节点之间的连接关系能反映出网络模型中各个网络层之间的数据流动。例如,对于网络模型中相邻的任两个网络层,该两个网络层之间的连接关系由第一个网络层指向第二个网络层,第一个网络层的输出为第二个网络层的输入,在计算图中,第一个网络层对应的节点与第二个网络层对应的节点之间的连接关系,由第一个网络层对应的节点指向第二个网络层对应的节点。
202、计算机设备将计算图中的多个目标变换节点进行融合,用得到的融合节点替换计算图中多个目标变换节点,得到更新后的计算图,多个目标变换节点为计算图中属于相同节点类型的数据变换节点,且多个目标变换节点之间具有连接关系。
在本申请实施例中,在计算图包括具有连接关系、且连续的多个数据变换节点的情况下,将该多个数据变换节点称为目标变换节点,将多个目标变换节点融合,得到融合节点,将融合节点替换多个目标变换节点,实现了计算图中节点的等效替换,即在融合节点与多个目标变换节点中第一个目标变换节点的输入数据相同的情况下,融合节点输出的数据与多个目标变换节点中最后一个目标变换节点输出的数据相同,以保证更新后的计算图与更新前的计算图所具有的功能相同。
其中,计算图中多个目标变换节点依次连接,也即是,第一个目标变换节点与其他节点连接,并与第二个目标变换节点连接,第二个目标变换节点与下一个目标变换节点连接,最后一个目标变换节点与其他节点连接。
203、计算机设备基于更新后的计算图,生成更新后的网络模型文件,返回更新后的网络模型文件。
其中,更新后的网络模型文件相当于更新后的网络模型。
在本申请实施例中,更新后的计算图包含的节点数量减少,基于更新后的计算图包含的节点及节点之间的连接关系,能够生成更新后的网络模型文件,以使更新后的网络模型中网络层的数量减少,以减少更新后的网络模型在对数据处理时的数据搬运行为,进而提升更新后的网络模型的处理效率。
本申请实施例提供的方案中,对网络模型文件进行解析,以获取用于表征网络模型文件的计算图,采取优化计算图的方式,减少计算图包含的数据变换节点,以减少更新后的网络模型文件包含的、用于变换数据的格式的网络层,实现了对网络模型文件的优化,在保证网络模型文件的功能的前提下,减少网络模型文件包含的网络层,以使后续基于更新后的网络模型文件对数据进行处理时,能够减少更新后的网络模型文件的数据搬运行为,进而提升更新后的网络模型的处理效率。
在图2所示实施例的基础上,本申请实施例还能够对计算图中具有连接关系的多个数据变换节点进行等效替换,以使等效替换后数据变换节点与属于相同节点类型的数据变换节点相邻,以便能够优化更多的数据变换节点,进一步提升优化后的网络模型文件的性能,具体过程详见下述实施例。
图3是本申请实施例提供的另一种模型更新方法的流程图,由计算机设备执行,如图3所示,该方法包括以下步骤。
301、计算机设备接收模型更新请求,对模型更新请求指示的网络模型文件进行解析,得到计算图,计算图包括多个节点及多个节点之间的连接关系,节点用于表示网络模型包含的网络层,多个节点包括数据变换节点,数据变换节点用于变换数据的格式,计算图包括每个节点的参数,节点的参数指示节点所表征的网络层的参数。
本申请实施例是以计算图包括每个节点的参数为例进行说明,参数即为节点所表征的网络层的参数。也即是,该计算图能够表征该网络模型文件,基于该计算图能够生成完整的网络模型文件。
在一种可能实现方式中,网络模型文件为已经训练完成的网络模型的文件。本申请实施例提供了一种对已经训练完成的网络模型进行优化的方案,在已经训练完成网络模型的情况下,考虑到网络模型可能包含仅用于变换数据的格式的网络层,这些网络层不涉及任何计算逻辑,因此,对已训练完成的网络模型中用于变换数据的格式的网络层进行优化,以减少网络模型中用于变换数据的格式的网络层,进而减少网络模型在对数据处理过程中的数据搬运操作,进而提升网络模型的处理效率。
在一种可能实现方式中,节点的参数以张量的形式表示。
在本申请实施例中,网络模型中张量(Tensor)是一个多维数组,以ONNX(OpenNeural Network Exchange,开放神经网络交换格式)标准为例,张量以(秩(rank)、形状(shape)、节点类型(date type))三元组来表示。例如,张量以三元组来表示时,张量如表1所示。
表1
在一种可能实现方式中,数据变换节点包括属于转置类型的转置节点、属于形状重塑类型的形状重塑节点及属于扩充类型的扩充节点,将数据变换节点所表征的网络层称为数据变换层,则数据变换层包括Transpose(转置层)、Reshape(形状重塑层)、Pad(扩充层)。其中,数据变换层相当于网络模型中的数据处理算子。
形状重塑节点用于对输入的数据的形状进行重塑,以将数据的形状重塑为目标形状,但是在重塑数据的过程中,不改变数据包含的元素个数和元素在数据中的排布情况。例如,输入形状重塑节点的数据以矩阵的形式表示,如图4所示,输入形状重塑节点的矩阵的尺寸为[2,3,4],即输入形状重塑节点的矩阵为2×3×4的张量,形状重塑节点输出的矩阵的尺寸为[6,4],也即是形状重塑节点用于将尺寸为[2,3,4]的矩阵变换为尺寸为[6,4]的矩阵。
转置节点用于对输入的数据进行转置,以改变数据包含的元素的排布情况。可选地,转置节点具有转置参数,将转置节点所表征的网络层称为转置层,转置层具有转置参数(Permutation),该转置参数指示对数据进行转置的格式,也即是,转置参数指示对数据进行怎样的转置,例如,以数据为矩阵为例,该转置参数指示将矩阵中的某个或多个维度进行交换。例如,输入转置节点的数据以矩阵的形式表示,如图5所示,输入转置节点的矩阵的尺寸为[2,3,4],即表示矩阵为2×3×4的张量,转置节点的转置参数为[0,2,1],转置参数表示将输入转置节点的矩阵中序号为1的维度与序号为2的维度进行交换,转置节点输出的矩阵的尺寸为[2,4,3]。也即是,以输入转置节点的矩阵A为例,转置节点输出的矩阵能够表示为Transpose(A,Permutation)。
扩充节点用于扩充数据的尺寸并在为数据填充新的元素,以使扩充后的数据包含的元素数量增大。可选地,扩充节点具有扩充参数,扩充参数指示扩充输入至扩充节点的数据的情况,例如,以输入至扩充节点的数据为矩阵为例,扩充参数指示在矩阵的哪个位置进行扩充,并且扩充后的位置填充哪些元素。可选地,扩充参数包括pads参数和constant_value(常量值),pads参数指示在矩阵的哪个位置进行扩充,constant_value指示扩充后的位置填充哪些元素。例如,以扩充节点的pads参数为[0,2,0,0],pads参数中从左至右的四个数值分别表示对矩阵的右侧、左侧、上侧或下册进行扩充的行数或列数。pads参数[0,2,0,0]表示在输入至扩充节点的矩阵的左侧扩充2列,以constant_value=0为例,如图6所示,输入至扩充节点的数据是尺寸为[2,2]的矩阵,扩充节点对该数据进行扩充后,输出的数据是尺寸为[4,2]的矩阵,也即是,在输入至扩充节点的矩阵的左侧扩充2列,并在扩充出的2列中添加元素为0,得到扩充后的矩阵。也即是,以输入扩充节点的矩阵A为例,扩充节点输出的矩阵能够表示为Pad(A,pads,constant_value)。
在一种可能实现方式中,计算机设备被提供为服务器,该步骤301包括:服务器接收到终端发送的模型更新请求,模型更新请求携带模型标识,从存储的网络模型文件中查询模型标识指示的网络模型文件,对查询到的网络模型文件进行解析得到计算图;或者,模型更新请求携带待更新的网络模型文件,则对模型更新请求携带的网络模型文件进行解析,得到计算图。
其中,模型标识能够以任意的形式表示,模型标识用于指代网络模型文件。网络模型文件存储在该服务器中,或者,存储在其他服务器中,在网络模型文件存储在该服务器中的情况下,服务器从本地存储的网络模型文件中查询模型标识指示的网络模型文件;在网络模型文件存储在其他服务器中的情况下,服务器与其他服务器进行交互,以便从其他服务器中获取模型标识指示的网络模型文件。终端为任意类型的终端,例如,终端为开发人员所使用的终端。开发人员能够通过终端与服务器进行交互,以便对已经训练完成的网络模型进行优化。
302、计算机设备从计算图包含的多个节点中,确定第一变换节点、第二变换节点及第三变换节点,第一变换节点、第二变换节点及第三变换节点为计算图中具有连接关系的数据变换节点,第一变换节点与第三变换节点属于相同的节点类型,且与第二变换节点属于不同的节点类型。
在本申请实施例中,第一变换节点、第二变换节点及第三变换节点之间的连接关系为:第一变换节点与第二变换节点连接,第二变换节点与第三变换节点连接,也即是第二变换节点分别与第一变换节点和第三变换节点相邻。考虑到计算图中存在不相邻、但属于相同节点类型的数据变换节点,因此,采取等效替换的方式,将计算图中相邻但属于不同节点类型的数据变换节点进行等效替换,以使等效替换后的数据变换节点与属于相同节点类型的数据变换节点相邻,以便后续能够消除更多的数据变换节点,进而提升网络模型的性能。
对于第一变换节点、第二变换节点及第三变换节点之间的连接顺序:第一变换节点的输出为第二变换节点的输入,第二变换节点的输出为第三变换节点的输入;或者,第三变换节点的输出为第二变换节点的输入,第二变换节点的输出为第一变换节点的输入。第一变换节点的输入和输出即为第一变换节点所表征的网络层的输入和输出,第二变换节点的输入和输出即为第二变换节点所表征的网络层的输入和输出,第三变换节点的输入和输出即为第三变换节点所表征的网络层的输入和输出。
其中,第一变换节点与第三变换节点能够属于任意的节点类型,例如,第一变换节点和第三变换节点属于转置类型,第二变换节点属于形状重塑类型;或者,第一变换节点和第三变换节点属于形状重塑类型,第二变换节点属于转置类型。
在一种可能实现方式中,该步骤302包括:从计算图包含的多个节点中,确定满足等效替换条件的第一变换节点、第二变换节点及第三变换节点。
在本申请实施例中,对于计算图包含的数据变换节点,能够进行等效替换的两个数据变换节点需满足的等效替换条件为:等效变换后的两个数据变换节点中任一数据变换节点与属于相同节点类型的数据变换节点相邻。例如,数据变换节点1与数据变换节点2属于不同的节点类型;但与数据变换节点1相邻的数据变换节点3与数据变换节点2属于相同的节点类型,则数据变换节点1与数据变换节点2满足等效替换条件;或者,与数据变换节点2相邻的数据变换节点4与数据变换节点1属于相同的节点类型,则数据变换节点1与数据变换节点2满足等效替换条件。
在一种可能实现方式中,该步骤302包括:对计算图包含的多个节点及多个节点之间的连接关系进行语义分析,得到计算图中的第一变换节点、第二变换节点及第三变换节点。
在本申请实施例中,计算图中每个节点用于表征网络模型中的网络层,且多个节点之间的连接关系能够反映出网络模型中多个网络层之间的连接关系,因此,对计算图包含的多个节点及多个节点之间的连接关系进行语义分析,能够确定出计算图包含的多个节点的节点类型,以确定出在计算图中具有连接关系的多个数据变换节点,进而确定出第一变换节点、第二变换节点及第三变换节点,以便确定出能够进行等效替换的数据变换节点,后续能够对计算图进行优化,进而能够保证后续优化后的网络模型的性能。
303、计算机设备用第四变换节点及第五变换节点,等效替换计算图中的第一变换节点及第二变换节点,第四变换节点与第二变换节点属于相同的节点类型,第五变换节点与第一变换节点属于相同的节点类型,且与第三变换节点相邻。
在本申请实施例中,由于第一变换节点与第三变换节点属于相同的节点类型,且与第二变换节点属于不同的节点类型,因此采取等效替换的方式,用与第二变换节点属于相同的节点类型的第四变换节点及与第一变换节点属于相同的节点类型的第五变换节点,替换计算图中第一变换节点及第二变换节点,使得替换后的计算图中第五变换节点与第三变换节点为相邻的、且属于相同节点类型的数据变换节点,且使得第四变换节点与第五变换节点在计算图中所起到的作用,与第一变换节点与第二变换节点在计算图中所起到的作用相同,也即是,保证任一数据通过第四变换节点和第五变换节点变换后的数据,与该数据通过第一变换节点和第二变换节点变换后的数据相同,以便在保证计算图的功能不变的同时,保证后续能够优化计算图包含的数据变换节点,进而达到优化模型结构的目的。
其中,在替换后的替换图中,第四变换节点与第五变换节点连接,第五变换节点与第三变换节点连接,计算图中原来与第一变换节点连接的其他节点与第四变换节点连接。例如,等效替换前的计算图中,节点1与第一变换节点连接,第一变换节点与第二变换节点连接,第二变换节点与第三变换节点连接;等效替换后的计算图中,节点1与第四变换节点连接,第四变换节点与第五变换节点连接,第五变换节点于第三变换节点连接。
在一种可能实现方式中,该步骤303包括:基于第一变换节点的参数及第二变换节点的参数,确定第四变换节点的参数及第五变换节点的参数;基于第四变换节点的参数及第五变换节点的参数,用第四变换节点及第五变换节点,替换计算图中的第一变换节点及第二变换节点。
在本申请实施例中,计算图中每个节点具有参数,节点的参数为节点所表征的网络层的参数,基于第一变换节点的参数及第二变换节点的参数,确定出第四变换节点的参数及第五变换节点的参数,进而利用第四变换节点的参数及第五变换节点的参数,在计算图中生成第四变换节点及第五变换节点,替换第一变换节点及第二变换节点,使得第四变换节点与第五变换节点在计算图中所起到的作用,与第一变换节点与第二变换节点在计算图中所起到的作用相同,保证实现等效替换,进而保证等效替换后计算图的准确性。
需要说明的是,上述步骤302-步骤303仅是以计算图包含的第一变换节点、第二变换节点及第三变换节点为例进行说明,而在另一实施例中,按照上述步骤302-步骤303的方式,对计算图中其他能够进行等效替换的数据变换节点进行等效替换。
需要说明的是,本申请是以计算图包含能够进行等效替换的第一变换节点、第二变换节点及第三变换节点为例进行说明,而在另一实施例中,计算图不包含能够等效替换的变换节点的情况下,无需执行上述步骤302-步骤303。
304、计算机设备基于多个目标变换节点的参数,确定融合节点的参数,多个目标变换节点为计算图中属于相同节点类型的数据变换节点,且多个目标变换节点之间具有连接关系。
在本申请实施例中,多个目标变换节点在计算图中依次连接且连续,例如,多个目标变换节点包含4个,第1个目标变换节点与第2个目标变换节点连接,第2个目标变换节点与第3个目标变换节点连接,第3个目标变换节点与第4个目标变换节点连接。在计算图包含依次连接且连续、属于相同节点类型的目标变换节点的情况下,能够将属于相同节点类型的多个目标变换节点进行融合,以使将融合后的数据变换节点替换多个目标变换节点,保证融合后的融合节点与多个目标变换节点在计算图中所起到的作用相同同时,能够减少计算图包含的数据变换节点,以达到优化网络模型的目的。
其中,融合节点即为用于等效替换多个目标变换节点的数据变换节点,例如,多个目标变换节点对数据进行处理时,第1个目标变换节点的输出为下一个目标变换节点的输入,以此类推;则对于任一数据,该数据输入至第1个目标变换节点后,通过多个目标变换节点对该数据进行变换,由最后一个目标变换节点输出变换后的数据,而将该数据输入融合节点后,由融合节点输出变换后的数据,且融合节点输出的变换后的数据与最后一个目标变换节点输出变换后的数据,也即是,融合节点与多个目标变换节点在计算图中所起到的作用相同。
在本申请实施例中,由于计算图中每个节点的参数即为节点所表征的网络层的参数,基于多个目标变换节点的参数来确定融合节点的参数,以保证融合节点能够等效替换多个目标变换节点。
305、计算机设备基于融合节点的参数,用融合节点在计算图中替换多个目标变换节点,得到更新后的计算图。
在本申请实施例中,利用融合节点的参数,在计算图中生成融合节点,用融合节点替换多个目标变换节点,使得融合节点在计算图中所起到的作用,与第一变换节点与多个目标变换节点在计算图中所起到的作用相同,保证实现等效替换,也减少了计算图包含的数据变换节点,以保证模型优化效果,提升了网络模型的处理效率。
需要说明的是,本申请是基于多个目标变换节点的参数,直接生成融合节点并替换多个目标变换节点为例进行说明,而在另一实施例中,对于多个目标变换节点,按照上述步骤304-步骤305,每次仅将相邻的两个目标变换节点进行融合,将融合后的数据变换节点替换这两个目标变换节点,而后在对其他相邻的两个目标变换节点进行融合,并且新添加的融合后的数据变换节点也能够作为目标变换节点与相邻的目标变换节点进行融合。另外,在对多个目标变换节点进行融合的过程中,对融合顺序不做限定。
例如,计算图包括4个目标变换节点,即目标变换节点1、目标变换节点2、目标变换节点3及目标变换节点4。按照上述步骤304-步骤305,将目标变换节点1与目标变换节点2进行融合,得到融合节点1,将融合节点1替换目标变换节点1与目标变换节点2。之后,按照上述步骤304-步骤305,将目标变换节点3与目标变换节点4进行融合,得到融合节点2,将融合节点2替换目标变换节点3与目标变换节点4;将融合节点1与融合节点2进行融合,得到融合节点3,将融合节点3替换融合节点1与融合节点2,即实现了将计算图中4个目标变换节点替换为融合节点3。或者,按照上述步骤304-步骤305,将融合节点1与目标变换节点3进行融合,得到融合节点4,将融合节点4替换融合节点1与目标变换节点3;将融合节点4与目标变换节点4进行融合,得到融合节点3,将融合节点3替换融合节点4与目标变换节点4,即实现了将计算图中4个目标变换节点替换为融合节点3。
需要说明的是,本申请实施例是利用目标变换节点的参数,用融合节点等效替换多个目标变换节点,而在另一实施例中,无需执行上述步骤304-步骤305,而是采取其他方式,将计算图中的多个目标变换节点进行融合,用得到的融合节点替换计算图中多个目标变换节点,得到更新后的计算图。
需要说明的是,本申请实施例仅是以计算图包含的多个目标变换节点为例进行说明,而在另一实施例中,在得到更新后的计算图的情况下,能够遍历更新后的计算图包含的节点,以确定更新后的计算图中是否存在具有连接关系、且属于相同类型的数据变换节点,是否存在满足等效替换条件的数据变换节点。在更新后的计算图中存在具有连接关系、且属于相同类型的数据变换节点的情况下,按照上述步骤304-步骤305,对具有连接关系、且属于相同类型的数据变换节点进行等效替换。在更新后的计算图中存在满足等效替换条件的数据变换节点,按照上述步骤302-步骤303,对满足等效替换条件的数据变换节点进行等效替换,而后再按照上述步骤304-步骤305,对等效替换后的计算图中具有连接关系、且属于相同类型的数据变换节点进行等效替换。之后,再按照上述方式遍历更新后的计算图,直至得到的计算图中不存在具有连接关系、且属于相同类型的数据变换节点,也不存在满足等效替换条件的数据变换节点。按照此种方式能够在保证计算图的功能不变的同时,尽可能的减少计算图包含的数据变换节点,以便后续能够在保证网络模型的功能不变的同时,减少网络模型包含的数据变换层,进而能够保证网络模型的处理效率。
306、计算机设备基于更新后的计算图,生成更新后的网络模型文件,返回更新后的网络模型文件。
在一种可能实现方式中,该步骤306包括:基于更新后的计算图中的节点的参数,创建每个节点对应的网络层;基于更新后的计算图中节点之间的连接关系,将创建的网络层连接,得到更新后的网络模型文件。
在本申请实施例中,更新后的计算图中每个节点具有参数,节点的参数指示节点所表征的网络层的参数,因此,基于更新后的计算图中各个节点的参数来创建网络层,以使创建的网络层的参数与对应的节点的参数相同,进而按照各个节点之间的连接关系,将创建的各个网络层连接,使得连接之后的网络层构成更新后的网络模型文件,以保证生成更新后的网络模型文件与更新的计算图匹配,进而保证生成的更新后的网络模型文件的准确性。
在一种可能实现方式中,该步骤306包括:计算机设备基于更新后的计算图,生成更新后的网络模型文件,向终端发送更新后的网络模型文件。
在本申请实施例中,该终端发送模型更新请求的终端,服务器在得到更新后的网络模型文件后,向终端发送更新后的网络模型文件,以便终端能够将更新后的网络模型文件部署在任意的设备上投入使用。
本申请实施例提供的方案中,对网络模型文件进行解析,以获取用于表征网络模型文件的计算图,采取优化计算图的方式,减少计算图包含的数据变换节点,以减少更新后的网络模型文件包含的、用于变换数据的格式的网络层,实现了对网络模型文件的优化,在保证网络模型文件的功能的前提下,减少网络模型文件包含的网络层,以使后续基于更新后的网络模型文件对数据进行处理时,能够减少更新后的网络模型文件的数据搬运行为,进而提升更新后的网络模型的处理效率。
本申请实施例提供了一种网络模型的编译优化方式,采取语义分析和等效转换算法的方式,通过对网络模型中的数据变换层等效替换,以消除网络模型中一些不必要的或者不合理的数据变换层,减少网络模型对数据进行处理的过程中的无效数据搬运行为,从而实现对于网络模型的加速。并且,这种优化方式能够适用于网络模型中采用的任意张量数据排布格式,包括且不限于4D(4 Dimensions,4维)、5D(5 Dimensions,5维)、6D(6Dimensions,6维)张量数据排布格式,能够全面的覆盖可优化的数据变换层的多种场景,提升了适用范围。
在上述图3所示的实施例的基础上,基于多个目标变换节点的参数,确定融合节点的参数的过程,包括以下两种方式。
第一种方式:在多个目标变换节点属于形状重塑类型的情况下,将多个目标变换节点中第一个目标变换节点的输入参数,确定为融合节点的输入参数,属于形状重塑类型的目标变换节点用于重塑数据的形状,目标变换节点的输入参数指示输入至目标变换节点的数据的格式;将多个目标变换节点中最后一个目标变换节点的输出参数,确定为融合节点的输出参数,目标变换节点的输出参数指示目标变换节点输出的数据的格式。
在本申请实施例中,多个目标变换节点属于形状重塑类型,也即是,多个目标变换节点为多个形状重塑节点。对于形状重塑节点,形状重塑节点的参数包括输入参数和输出参数,输入参数指示输入至形状重塑节点的数据的格式,输出参数指示形状重塑节点输出的数据的格式,例如,形状重塑节点的输入参数为[2,3,4],输出参数为[6,4],即能够输入至该形状重塑节点的数据为2×3×4的张量,形状重塑节点输出的数据为6×4的矩阵。而多个目标变换节点依次连接,对于连接的任两个目标变换节点,前一个目标变换节点的输出即为下一个目标变换节点的输入,即前一个目标变换节点的输出参数与下一个目标变换节点的输入参数相同。
在本申请实施例中,在多个目标变换节点属于形状重塑类型的情况下,目标变换节点仅用于将数据有输入参数指示的格式变换为输出参数指示的格式,且多个目标变换节点中,前一个目标变换节点的输出参数与下一个目标变换节点的输入参数相同,因此,仅需将第1个目标变换节点的输入参数和最后一个目标变换节点的输出参数,作为融合节点的输入参数和输出参数,即可使得融合节点能够实现多个目标变换节点的功能,以便后续能够实现等效替换,保证后续等效替换的准确性。
如图7所示,以多个目标变换节点包括2个为例,即目标变换节点Reshape0和目标变换节点Reshape1。目标变换节点Reshape0的输入参数为TensorA=[1,399,256,7],目标变换节点Reshape0用于将256和7所在的维度进行合并,目标变换节点Reshape0的输出参数为TensorB=[1,399,3792],目标变换节点Reshape1的输入参数为TensorB,目标变换节点Reshape1用于将TensorB中3792所在的维度拆分为元素个数为56和32的两个维度,目标变换节点Reshape1的输入参数为TensorC=[1,399,56,32]。因此,将目标变换节点Reshape0和目标变换节点Reshape1进行合并,生成融合节点Reshape2,融合节点Reshape2的输入参数为TensorA,融合节点Reshape2的输出参数为TensorC,融合节点Reshape2用于将TensorA中256和7所在的维度进行合并之后再拆分,生成元素个数为56和32的两个新的维度。
需要说明的是,本申请是基于多个目标变换节点的参数,确定融合节点的参数,而在另一实施例中,按照上述第一种方式,按照多个目标变换节点的顺序,将第1个目标变换节点与第2个目标变换节点进行融合,得到第1个融合节点,则基于第1个目标变换节点的参数及第2变换节点的参数,确定第1个融合节点的输入参数和输出参数;再将第1个融合节点与第3个目标变换节点进行融合,得到第2个融合节点,则基于第1个融合节点的参数及第3变换节点的参数,确定第2个融合节点的输入参数和输出参数,以此类推,直至得到第k个融合节点的输入参数和输出参数,k为大于0的整数,k+1为多个目标变换节点的数量,则第k个融合节点即为多个目标变换节点融合得到的数据变换节点。另外,在多个目标变换节点的数量为2的情况下,基于2个目标变换节点的参数,即可确定融合节点的输入参数和输出参数。
在一种可能实现方式中,以多个目标变换节点包含2个为例,在多个目标变换节点属于形状重塑类型的情况下,则用融合节点替换多个目标变换节点,能够满足以下关系:
Reshape1(Reshape0(A))=Reshape2(A)
其中,A用于表示输入至第1个目标变换节点的数据;Reshape1(·)用于表示第2个目标变换节点,Reshape0(·)用于表示第1个目标变换节点;Reshape2(·)用于表示融合节点。
第二种方式:在多个目标变换节点属于转置类型的情况下,将多个目标变换节点中第一个目标变换节点的输入参数,确定为融合节点的输入参数,属于转置类型的目标变换节点用于对数据进行转置,目标变换节点的输入参数指示输入至目标变换节点的数据的格式;将多个目标变换节点的转置参数进行融合,得到融合节点的转置参数,目标变换节点的转置参数指示对数据进行转置的格式;将多个目标变换节点中最后一个目标变换节点的输出参数,确定为融合节点的输出参数,目标变换节点的输出参数指示目标变换节点输出的数据的格式。
在本申请实施例中,多个目标变换节点属于转置类型,也即是,多个目标变换节点为多个转置节点。对于转置节点,转置节点的参数包括输入参数、输出参数和转置参数,输入参数指示输入至转置节点的数据的格式,输出参数指示转置节点输出的数据的格式,转置参数指示对数据进行怎样的转置。转置节点按照转置参数,对输入参数指示的格式的数据进行转置,输出参数指示的格式的数据,也即是,基于转置节点的输入参数和转置参数,能够获取到转置节点的输出参数;并且,也能够基于转置节点的输出参数和转置参数,能够获取到转置节点的输入参数也能够基于转置节点的输入参数和输出参数,能够获取到转置节点的转置参数。而多个目标变换节点依次连接,对于连接的任两个目标变换节点,前一个目标变换节点的输出即为下一个目标变换节点的输入,即前一个目标变换节点的输出参数与下一个目标变换节点的输入参数相同。
在本申请实施例中,在多个目标变换节点属于转置类型的情况下,多个目标变换节点中,前一个目标变换节点的输出参数与下一个目标变换节点的输入参数相同,且多个目标变换节点的转置参数用于依次对输入的数据进行转置,因此,将第1个目标变换节点的输入参数和最后一个目标变换节点的输出参数,作为融合节点的输入参数和输出参数,并将多个目标变换节点的转置参数进行融合,得到融合节点的转置参数,即可使得融合节点能够实现多个目标变换节点的功能,也即是,融合节点对输入数据进行一次转置得到的数据,与多个目标变换节点对输入数据进行多次转置得到的数据相同,以便后续能够实现等效替换,保证后续等效替换的准确性。
如图8所示,以多个目标变换节点包括2个为例,即目标变换节点Transpose0和目标变换节点Transpose1。目标变换节点Transpose0的输入参数为TensorA=[1,399,256,7],目标变换节点Transpose0的转置参数为permu0=[0,2,1,3],目标变换节点Transpose0用于TensorA中399和256所在的维度进行交换,目标变换节点Transpose0的输出参数为TensorB=[1,256,399,7],以TensorA中1所在的维度的序号为0,399所在的维度的序号为1,256所在的维度的序号为2,7所在的维度的序号为3,目标变换节点Transpose0的转置参数指示将TensorA中的维度2和维度1进行交换。目标变换节点Transpose1的输入参数为TensorB,目标变换节点Transpose1的转置参数为permu1=[0,3,1,2],目标变换节点Transpose1用于TensorB中7所在的维度交换到256所在的维度之前,也即是将TensorB中的维度3交换到维度1之前,目标变换节点Transpose1的输出参数为TensorC=[1,7,256,399]。因此,将目标变换节点Transpose0和目标变换节点Transpose1进行合并,生成融合节点Transpose2,融合节点Transpose2的输入参数为TensorA,融合节点Transpose2的转置参数为permu2=[0,3,2,1],融合节点Transpose2的输出参数为TensorC。
在一种可能实现方式中,在上述第二种方式中,将多个目标变换节点的转置参数进行融合的过程,包括:按照多个目标变换节点的顺序,将第m个目标变换节点的转置参数与第m+1个目标变换节点的转置参数进行融合,将融合得到的转置参数与第m+2个目标变换节点的转置参数进行融合,直至将多个目标变换节点的转置参数融合,得到融合节点的转置参数,m为大于0且不大于n-2的整数。
在本申请实施例中,按照多个目标变换节点的顺序,从第1个目标变换节点开始,将相邻的两个目标变换节点的转置参数进行融合,而后再将融合得到的转置参数与下一个目标变换节点的转置参数进行融合,这样能够保证融合节点的转置参数与多个目标变换节点的转置参数相匹配,以保证融合的准确性,进而保证得到的融合节点的转置参数的准确性。
其中,n为多个目标变换节点的数量,n为大于2的整数。需要说明的是,上述是以多个目标变换节点的数量大于2为例进行说明,而在另一实施例中,在多个目标变换节点的数量为2的情况下,将第1个目标变换节点的转置参数与第2个目标变换节点的转置参数进行融合,得到融合节点的转置参数。
可选地,目标变换节点的转置参数以张量的形式表示,转置参数中的数值用于表示目标变换节点的输入参数包含的数值所处的维度的序号,则将第m个目标变换节点的转置参数与第m+1个目标变换节点的转置参数进行融合的过程,满足以下关系:
Perm2[i]=Perm0[Perm1[i]],i∈[0,rank)
其中,i用于表示融合得到的转置参数中数值所处的维度的序号,Perm2[i]用于表示融合得到的转置参数中第i个维度对应的数值,也即是融合得到的转置参数中从左开始数的第i个数值;Perm1[i]用于表示第m+1个目标变换节点的转置参数中第i个维度对应的数值,也即是第m+1个目标变换节点的转置参数中从左开始数的第i个数值,Perm0[·]用于表示第m个目标变换节点的转置参数中的数值,Perm0[Perm1[i]]是第m个目标变换节点的转置参数中,序号为Perm1[i]的维度对应的数值。
例如,Perm0=[0,2,1,3],Perm1=[0,3,1,2],以转置参数中最左侧的数值对应的维度的序号为0,向右的数值对应的维度序号依次为1、2、3,则按照上述关系,Perm1[0]=0,在融合得到的转置参数中,序号为0的维度对应的数值为Perm2[0]=Perm0[Perm1[0]]=Perm0[0]=0,序号为1的维度对应的数值为Perm2[1]=Perm0[Perm1[1]]=Perm0[3]=3,序号为2的维度对应的数值为Perm2[2]=Perm0[Perm1[2]]=Perm0[1]=2,序号为3的维度对应的数值为Perm2[3]=Perm0[Perm1[3]]=Perm0[2]=1,则融合得到的转置参数为[0,3,2,1]。
需要说明的是,本申请是基于多个目标变换节点的参数,确定融合节点的参数,而在另一实施例中,按照上述第二种方式,按照多个目标变换节点的顺序,将第1个目标变换节点与第2个目标变换节点进行融合,得到第1个融合节点,则基于第1个目标变换节点的参数及第2变换节点的参数,确定第1个融合节点的输入参数、转置参数和输出参数;再将第1个融合节点与第3个目标变换节点进行融合,得到第2个融合节点,则基于第1个融合节点的参数及第3变换节点的参数,确定第2个融合节点的输入参数、转置参数和输出参数,以此类推,直至得到第k个融合节点的输入参数、转置参数和输出参数,k为大于0的整数,k+1为多个目标变换节点的数量,则第k个融合节点即为多个目标变换节点融合得到的数据变换节点。另外,在多个目标变换节点的数量为2的情况下,基于2个目标变换节点的参数,即可确定融合节点的输入参数、转置参数和输出参数。
在一种可能实现方式中,以多个目标变换节点包含2个为例,在多个目标变换节点属于转置类型的情况下,则用融合节点替换多个目标变换节点,能够满足以下关系:
Transpose1(Transpose0(A,Permu0),Perm1)=Transpose2(A,Perm2)
其中,A用于表示输入至第1个目标变换节点的数据;Transpose1(·)用于表示第2个目标变换节点,Transpose0(·)用于表示第1个目标变换节点;Transpose2(·)用于表示融合节点,Permu0用于表示第1个目标变换节点的转置参数,Permu1用于表示第2个目标变换节点的转置参数,Permu2用于表示融合节点的转置参数。
在上述图3所示的实施例的基础上,对第一变换节点及第二变换节点进行等效替换的过程,包括下述图9至图20所示的四种方式。
图9是本申请实施例提供的再一种模型更新方法的流程图,由计算机设备执行,如图9所示,该方法包括以下步骤。
901、在第一变换节点属于形状重塑类型、第二变换节点属于转置类型的情况下,基于第一变换节点的输入参数及输出参数,确定第一映射关系,第一变换节点的输入参数指示输入至第一变换节点的数据的格式,第一变换节点的输出参数指示第一变换节点输出的数据的格式,第一映射关系指示输入参数与输出参数中不同维度的数值之间的映射关系。
在本申请实施例中,第二变换节点为第一变换节点的后继算子,也即是,第一变换节点的输入为第二变换节点的输出。
其中,第一变换节点的输入参数及输出参数均包含多个数值,且输入参数与输出参数包含的数值个数相同或者不同。在第一变换节点属于形状重塑类型的情况下,第一变换节点用于对输入参数中某个维度的数值进行拆分,或者,对相邻的两个维度的数值进行合并。因此,基于第一变换节点的输入参数及输出参数,确定出输入参数与输出参数中不同维度的数值之间的映射关系,以便能够获知第一变换节点对输入的数据进行怎样的形状重塑。
在一种可能实现方式中,第一变换节点的输入参数及输出参数均以张量的形式表示。
在一种可能实现方式中,该步骤901包括:对第一变换节点的输入参数及输出参数进行语义分析,得到第一映射关系。
在本申请实施例中,第一变换节点的输入参数指示输入至第一变换节点的数据的格式,第一变换节点的输出参数指示第一变换节点输出的数据的格式,采取语义分析的方式,对输入参数及输出参数进行处理,以便分析出第一变换节点对输入的数据进行怎样的形状重塑,进而得到第一映射关系,以保证得到的第一映射关系的准确性。
在一种可能实现方式中,第一变换节点的输入参数包括多个第一数值,第一变换节点的输出参数包括多个第二数值,第一数值指示对应的维度包含的元素数量,第二数值指示对应的维度包含的元素数量;该步骤901包括:按照多个第一数值的顺序及多个第二数值的顺序,从输入参数及输出参数中确定多组数值,每组数值包括至少一个第一数值及至少一个第二数值,至少一个第一数值指示的元素数量与至少一个第二数值指示的元素数量相等;将每组数值包含的数值在输入参数及输出参数中的维度序号,构成一组序号,将得到的多组序号构成第一映射关系。
在本申请实施例中,多个第一数值的数量与多个第二数值的数量可能相同,也可能不同。任一组数值可能包含一个第一数值及多个第二数值,或者,包含一个第一数值及一个第二数值,或者,包含多个第一数值及一个第二数值,或者,包含多个第一数值及多个第二数值。在任一组数值包含多个第一数值的情况下,该组数值包含的多个第一数值在输入参数所处的位置连续,在任一组数值包含多个第二数值的情况下,该组数值包含的多个第二数值在输入参数所处的位置连续。在多组数值中,不同组数值包含的第一数值在输入参数中对应的维度不同,不同组数值包含的第二数值在输出参数中对应的维度不同。可选地,多个第一数值指示的元素数量为该多个第一数值的乘积,多个第二数值指示的元素数量为多个第二数值的乘积。
在本申请实施例中,考虑到属于形状重塑类型的第一变换节点对数据进行形状重塑时,不改变数据包含的元素个数,并且第一变换节点仅能将输入参数中相邻的维度的数值进行合并或将某个维度的数值拆分为相邻的多个维度的数值,因此,按照多个第一数值的顺序及多个第二数值的顺序,依次确定出多组数值,以使每组数值中第一数值指示的元素数量与第二数值指示的元素数量相等,进而基于多组数值中第一数值和第二数值在输入参数及输出参数中的维度序号,确定出第一映射关系,以使第一映射关系能够反映出输入参数与输出参数中各个维度序号之间的映射关系,进而保证确定出的第一映射关系的准确性。
可选地,按照多个第一数值的顺序及多个第二数值的顺序,确定第一映射关系的过程,包括:从第1个第一数值开始遍历多个第一数值,从第1个第二数值开始遍历多个第二数值,在当前遍历到第i个第一数值及第j个第二数值的情况下,对比第i个第一数值与第j个第二数值;在第i个第一数值与第j个第二数值相等的情况下,将第i个第一数值与第j个第二数值构成一组数值;在第i个第一数值与第j个第二数值不等的情况下,确定第i个第一数值与第j个第二数值中的较小者与所在参数中的下一个数值乘积,对比第i个第一数值与第j个第二数值中的较大者与该乘积;以此类推,直至得到从第i个第一数值开始的d个第一数值与从第j个第二数值开始的e个第二数值指示的元素数量相等,将从第i个第一数值开始的d个第一数值、从第j个第二数值开始的e个第二数值构成一组数值。其中,i为多个第一数值的序号,也即是第一数值在输入参数中的维度序号,i为大于0小于多个第一数值的数量的整数。j为多个第二数值的序号,也即是第二数值在输入参数中的维度序号,j为大于0小于多个第二数值的数量的整数。d为不小于0的整数,e为不小于0的整数。
如图10所示,假设第一变换节点的输入参数为srcShape=[S1,S2,…,Sm],多个第一数值的数量为srcRank=m,输出参数为dstShape=[D1,D2,…,Dn],多个第二数值的数量为dstRank=n。从第1个第一数值开始遍历多个第一数值,从第1个第二数值开始遍历多个第二数值,分析srcShape的维度序号i和dstShape的维度序号j的映射关系,并将分析获取的映射关系保存起来,并在确定出映射关系后,判断i是否小于srcRank且j是否小于dstRank,若i小于srcRank且j小于dstRank,则表示还未遍历完成,继续遍历后续还未遍历的第一数值和第二数值;若i不小于srcRank且j不小于dstRank,则表示已遍历完成,完成遍历之后能够输出第一映射关系,i是不大于srcRank的整数,j为不大于dstRank的整数。
考虑到属于形状重塑类型的第一变换节点对输入的数据进行形状重塑的过程包含维度合并和维度拆分,其它维度保持不变。因此,将维度序号i、j之间的映射关系分为以下四种:(1)srcShape的维度i和srcShape中与维度i相邻的其它维度进行了维度合并,合并之后映射到dstShape的维度j;(2)对srcShape的维度i进行了维度拆分,拆分映射到dstShape的维度j和dstShape中与维度j相邻的其它维度;(3)srcShape的维度i和srcShape中与维度i相邻的其它维度进行了维度合并,合并之后又拆分映射到dstShape的维度j和dstShape中与维度j相邻的其它维度;(4)srcShape的维度i直接映射到dstShape的维度j。
对于上述映射关系(4),如图11所示,当srcShape中维度序号i对应的第一数值和dstShape中维度序号j对应的第二数值相同时,能够确定srcShape中维度i和dstShape中维度j具有映射关系,映射关系为<i,j>。
对于上述映射关系(1)-(3),从维度序号i开始截取srcShape中一个最小子数组为srcDims,srcDims包括从第i个第一数值开始的d个第一数值;从维度序号j始截取dstShape中的一个最小子数组为dstDims,dstDims包括从第j个第二数值开始的e个第二数值;且满足srcDims中的第一数值指示的元素数量与dstDims中第二数值指示的元素数量相等,则能确定srcShape中维度i至i+d和dstShape中维度j至j+e具有映射关系,映射关系为<[i,…,i+d],[j,…,j+e]>。如图12所示,在当前遍历到第i个第一数值及第j个第二数值的情况下,将第i个第一数值作为第一元素数量,将第j个第一数值作为第二元素数量;对比第一元素数量和第二元素数量是否相等。在第一元素数量小于第二元素数量的情况下,将第i个第一数值存入srcDims;遍历当前遍历的第一数值的下一个第一数值,也即是,第i+1个第一数值;将第一元素数量更新为第i个第一数值与第i+1个第一数值的乘积;之后再按照上述方式对比第一元素数量和第二元素数量是否相等。在第一元素数量大于第二元素数量的情况下,将第j个第一数值存入dstDims;遍历当前遍历的第二数值的下一个第二数值,也即是,第j+1个第二数值;将第二元素数量更新为第j个第二数值与第j+1个第二数值的乘积;之后再按照上述方式对比第一元素数量和第二元素数量是否相等。重复上述过程,即可使得srcDims中的第一数值指示的元素数量与dstDims中第二数值指示的元素数量相等,进而获取映射关系<[i,…,i+d],[j,…,j+e]>。之后从第i+d+1个第一数值开始继续遍历,从第j+e+1个第二数值开始继续遍历,按照上述过程,即可遍历完成多个第一数值及多个第二数值,将遍历过程中得到的映射关系构成第一映射关系。
例如,第一变换节点的输入参数为TensorA=[2,4,12,4,3,6],第一变换节点的输入参数为TensorB=[8,2,6,4,2,9],按照上述方式,即可获取TensorA和TensorB的第一映射关系为{<[0,1],[0]>,<2,[1,2]>,<3,3>,<[4,5],[4,5]>},第一映射关系中的数值为输入参数或输出参数中的维度序号,<[0,1],[0]>表示第一变换节点将输入参数中维度0和维度1合并成输出参数中的维度0,<2,[1,2]>表示第一变换节点将输入参数中维度2拆分为输出参数中的维度1和维度2,<3,3>表示第一变换节点将输入参数中维度3映射为输出参数中的维度3,<[4,5],[4,5]>表示第一变换节点将输入参数中维度4和维度5映射为输出参数中的维度4和维度5。
902、基于第一映射关系,对第二变换节点的转置参数进行更新,得到第四变换节点的转置参数,第二变换节点的转置参数指示对数据进行转置的格式。
在本申请实施例中,计算图中的第一变换节点与第二变换节点是对输入的数据先进行形状重塑而后进行转置,而为了等效替换为对数据先进行转置后进行形状重塑的数据变换节点,因此,基于第一映射关系,对第二变换节点的转置参数进行更新,以保证得到的转置参数与未进行形状重塑时的数据相匹配,进而保证后续的等效替换效果。其中,第四变换节点的转置参数指示对数据进行转置的格式。
在一种可能实现方式中,第一映射关系包括多组序号,每组序号包括第一维度序号和第二维度序号,第一维度序号为第一变换节点的输入参数中的维度序号,第二维度序号为第一变换节点的输出参数中的维度序号;该步骤902包括:对于每组序号包括的第一维度序号和第二维度序号,用第一维度序号替换第二变换节点的转置参数中的第二维度序号,得到第四变换节点的转置参数。
在本申请实施例中,计算图中的第一变换节点与第二变换节点是对输入的数据先进行形状重塑而后进行转置,第一映射关系包括多组序号能够反映出第一变换节点对输入的数据中的维度进行形状重塑的情况,因此,将每组序号包括的第一维度序号替换第二变换节点的转置参数中的第二维度序号,以还原出未进行形状重塑时的数据进行转置的情况,即得到与未进行形状重塑时的数据相匹配的转置参数,进而保证后续的等效替换效果。
本申请实施例中,第二变换节点的转置参数中的维度序号与第一映射关系中的第二维度序号相同,也即是,对于第一映射关系中的每个第二维度序号,均能够从第二变换节点的转置参数中找到第二维度序号。但是,一旦从第二变换节点的转置参数中未找到任一第二维度序号,则表示第一变换节点及第二变换节点无法进行等效替换,则不再执行下述步骤903-步骤906。
在本申请实施例中,第二变换节点的转置参数也相当于一种维度映射关系,根据第一映射关系及第二变换节点的转置参数,判断是否能够对第一变换节点及第二变换节点进行等效转换。如图13所示,遍历第一映射关系包含的多组序号,获取任一组序号<第一维度序号,第二维度序号>,并在第二变换节点的转置参数Permutation中查找是否有第二维度序号,如果没有找到则无法做等效转换,如果找到第二维度序号,则用第一维度序号替换Permutation中的第二维度序号,遍历完成之后就获取了一个新的转置参数Permutation,新的转置参数Permutation为第四变换节点的转置参数。
903、将第一变换节点的输入参数,确定为第四变换节点的输入参数;将第四变换节点的输入参数及转置参数进行融合,得到第四变换节点的输出参数。
在本申请实施例中,将第一变换节点的输入参数,确定为第四变换节点的输入参数,以便后续在用第四变换节点和第五变换节点,等效替换计算图中的第一变换节点和第二变换节点的情况下,输入至第四变换节点的数据的格式不变,进而保证后续的等效替换效果。第四变换节点的输入参数指示了输入至第四变换节点的数据的格式,转置参数指示对数据进行转置的格式,则将输入参数与转置参数进行融合,即可得到第四变换节点对输入的数据进行转置后输出的数据的格式,也即是,第四变换节点的输出参数。
在一种可能实现方式中,转置参数包括多个维度序号,该维度序号指示输入参数中数值对应的维度,则将第四变换节点的输入参数与转置参数进行融合的过程,包括:基于转置参数中的维度序号,对输入参数包含的数值进行排布,得到第四变换节点的输出参数。
例如,第四变换节点的输入参数和转置参数均以张量的形式表示,第四变换节点的输入参数为[1,64,4,7,64],第四变换节点的转置参数为[0,2,1,3,4],第四变换节点的转置参数中的数值即为第四变换节点的输入参数中的数值对应的维度序号,从第四变换节点的输入参数中的最左侧的数值开始,各个数值对应的维度序号依次为0、1、2、3。则基于第四变换节点的转置参数可知,将第四变换节点的输入参数中维度2和维度1对应的数值进行位置调换,其他维度保持不变,则得到第四变换节点的输出参数为[1,4,64,7,64]。
904、将第四变换节点的输出参数,确定为第五变换节点的输入参数,将第二变换节点的输出参数,确定为第五变换节点的输出参数。
在本申请实施例中,计算图中相邻的任两个节点,前一个节点的输出参数为后一个节点的输入参数,在计算图中的数据由第四变换节点输入至第五变换节点的情况下,第四变换节点的输出参数即为第五变换节点的输入参数。由于第五变换节点属于形状重塑类型,则第五变换节点具有输入参数和输出参数,将第四变换节点和第五变换节点作为第一节点组合,将第一变换节点和第二变换节点作为第二节点组合,则而将第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点时,第一节点组合的输入参数和第二节点组合的输入参数相同,第一节点组合的输出参数和第二节点组合的输出参数相同。因此,将第二变换节点的输出参数,确定为第五变换节点的输出参数,以保证后续等效替换效果。
905、基于第四变换节点的输入参数、输出参数及转置参数,用第四变换节点替换计算图中的第一变换节点。
在本申请实施例中,第四变换节点属于转置类型,则基于第四变换节点的输入参数、输出参数及转置参数,即可在计算图中生成第四变换节点,并将生成的第四变换节点替换计算图中的第一变换节点,以使计算图中原来与第一变换节点连接的节点与第四变换节点连接。
906、基于第五变换节点的输入参数及输出参数,用第五变换节点替换计算图中的第二变换节点。
在本申请实施例中,第五变换节点属于形状重塑类型,则基于第五变换节点的输入参数及输出参数,即可在计算图中生成第五变换节点,并将生成的第五变换节点替换计算图中的第二变换节点,以使计算图中原来与第二变换节点连接的节点与第五变换节点连接。
在一种可能实现方式中,用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的过程满足以下关系:
Transpose3(Reshape3(A),Perm3)=Reshape4(Transpose4(A),newPerm1)
其中,A用于表示输入至第一变换节点的数据,Reshape3(·)用于表示第一变换节点,Transpose3(·)用于表示第二变换节点,Perm3用于表示第二变换节点的转置参数,Transpose4(·)用于表示第四变换节点,Reshape4(·)用于表示第五变换节点,newPerm1用于表示第四变换节点的转置参数。
在本申请实施例中,用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的必要条件为满足上述关系,并且用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点后,第四变换节点的前驱节点与第四变换节点属于相同的节点类型,或者,第五变换节点的后继节点与第五变换节点属于相同的节点类型,也即是,第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点后,第四变换节点能够与前驱节点进行合并,或者,第五变换节点能够与后继节点进行合并。如果用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点后,无法将第四变换节点与前驱节点进行合并,且无法将第五变换节点与后继节点进行合并,则无需执行上述等效替换过程。
本申请实施例提供的方案中,在第一变换节点属于形状重塑类型、第二变换节点属于转置类型的情况下,利用第一变换节点的输入参数与输出参数中不同维度的数值之间的映射关系,对转置参数进行更新,进而得到四变换节点的转置参数,并结合第一变换节点的输入参数及第二变换节点的输入参数,确定出第四变换节点和第五变换节点的输入参数和输出参数,使得第四变换节点和第五变换节点的参数,与第一变换节点和第二变换节点的参数相匹配,以保证第四变换节点和第五变换节点能够等效替换第一变换节点和第二变换节点,进而保证等效替换效果,以保证等效替换后的计算图的功能不变,且保证后续能够优化计算图包含的数据变换节点,进而达到优化模型结构的目的。
如图14所示,第一变换节点的输入参数为TensorA=[1,4,64,7,64],第一变换节点的输出参数为TensorB=[1,256,7,64],第一变换节点用于将4和64所在的维度进行合并生成元素数量为256的新的维度,其它维度保持不变。第二变换节点的输入参数即为TensorB,第二变换节点的转置参数为Permuation=[0,3,1,2],则第二变换节点用于将TensorB中维度3交换到维度1之前,第二变换节点的输出参数为TensorC=[1,64,256,7]。通过对第一变换节点的输入参数和输出参数进行语义分析,得到的第一映射关系为{<0,0>,<[1,2],1>,<3,2>,<4,3>},其中,<[0,0]>表示第一变换节点将输入参数中维度0映射为输出参数中的维度0,<[1,2],1>表示第一变换节点将输入参数中维度1和维度2合并成输出参数中的维度1,<3,2>表示第一变换节点将输入参数中维度3映射为输出参数中的维度2,<4,3>表示第一变换节点将输入参数中维度4映射为输出参数中的维度3。基于第一映射关系中的<0,0>,将第二变换节点的转置参数Permuation中的维度0保持不变,基于第一映射关系中的<[1,2],1>,将第二变换节点的转置参数Permuation中的1替换为[1,2],基于第一映射关系中的<3,2>,将第二变换节点的转置参数Permuation中的2替换为维度3;基于第一映射关系中的<4,3>,将第二变换节点的转置参数Permuation中的3替换为4,则得到的第四变换节点的转置参数为newPerm=[0,4,1,2,3]。第四变换节点的输入参数为TensorA=[1,4,64,7,64],则基于第四变换节点的输入参数和第四变换节点的转置参数,将TensorA的维度4交换到维度1之前,得到的第四变换节点的输出参数为TensorB1=[1,64,4,64,7]。第五变换节点的输入参数为TensorB1,第五变换节点的输出参数为TensorC=[1,64,256,7],第五变换节点用于将TensorB1中维度2和维度3进行合并生成元素个数为256的新的维度。假设第一变换节点的前驱节点属于转置类型,第一变换节点的前驱节点的输入参数为TensorD=[1,64,4,7,64],第一变换节点的前驱节点的转置参数为permu0=[0,2,1,3,4],第一变换节点的前驱节点的输出参数为TensorA。则用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的情况下,第一变换节点的前驱节点为第四变换节点的前驱节点,且第四变换节点的前驱节点能与第四变换节点进行融合,融合得到的数据变换节点属于转置类型,融合得到的数据变换节点的输入参数为TensorD=[1,64,4,7,64],融合得到的数据变换节点的输出参数为TensorB1,将第四变换节点的前驱节点的转置参数与第四变换节点的转置参数融合,得到融合得到的数据变换节点的转置参数为[0,4,2,1,3]。
图15是本申请实施例提供的再一种模型更新方法的流程图,由计算机设备执行,如图15所示,该方法包括以下步骤。
1501、在第一变换节点属于转置类型、第二变换节点属于形状重塑类型的情况下,对第一变换节点的转置参数进行逆处理,得到逆转置参数,第一变换节点的转置参数指示对数据进行转置的格式。
在本申请实施例中,第二变换节点为第一变换节点的后继算子,也即是,第一变换节点的输入为第二变换节点的输出。由于属于转置类型的第一变换节点的输出是属于形状重塑类型的第二变换节点的输入,则为了保证后续能够进行等效替换,对第一变换节点的转置参数进行逆运算,以保证后续能够实现等效替换。
在一种可能实现方式中,对第一变换节点的转置参数进行逆处理的过程,满足以下关系:
Tranpose11(A,Perm0)=B
Transpose12(B,Perm1)=A
其中,Tranpose11(·)用于表示第一变换节点,A用于表示输入至第一变换节点的数据,Perm0用于表示第一变换节点的转置参数,B用于表示第一变换节点输出的数据,Tranpose12(·)用于表示用于进行逆处理的数据变换节点,Perm1用于表示逆转置参数。
例如,第一变换节点的输入参数为TensorA=[1,4,64,32],第一变换节点的转置参数为Perm0=[0,2,1,3],第一变换节点的输出参数为TensorB=[1,64,4,32],用于进行逆处理的数据变换节点的输入参数为TensorB,用于进行逆处理的数据变换节点的输出参数为TensorA,进而获取到逆转置参数为Perm1=[0,2,1,3]。
1502、基于第二变换节点的输入参数及输出参数,确定第二映射关系,第二变换节点的输入参数指示输入至第二变换节点的数据的格式,第二变换节点的输出参数指示第二变换节点输出的数据的格式,第二映射关系指示输入参数与输出参数中不同维度的数值之间的映射关系。
该步骤1502与上述步骤901同理,在此不再赘述。
1503、将第二映射关系与逆转置参数进行融合,得到第五变换节点的转置参数;将第二变换节点的输出参数,确定为第五变换节点的输出参数;基于第五变换节点的转置参数及输出参数,确定为第五变换节点的输入参数。
在本申请实施例中,计算图中的第一变换节点与第二变换节点是对输入的数据先进行转置而后进行形状重塑,而为了等效替换为先进行形状重塑而后进行转置的数据变换节点,因此,基于第二映射关系,对逆转置参数进行更新,以保证得到的转置参数与进行形状重塑后的数据相匹配,进而保证后续的等效替换效果。
在本申请实施例中,将第四变换节点和第五变换节点作为第一节点组合,将第一变换节点和第二变换节点作为第二节点组合,则而将第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点时,第一节点组合的输入参数和第二节点组合的输入参数相同,第一节点组合的输出参数和第二节点组合的输出参数相同。因此,将第二变换节点的输出参数,确定为第五变换节点的输出参数,以保证后续等效替换效果。第五变换节点属于转置类型,在得到第五变换节点的转置参数及输出参数的情况下,能够逆向还原出第五变换节点的输入参数。
在一种可能实现方式中,第二映射关系包括多组序号,每组序号包括第三维度序号和第四维度序号,第三维度序号为第二变换节点的输入参数中的维度序号,第四维度序号为第二变换节点的输出参数中的维度序号;步骤1503包括:对于每组序号包括的第三维度序号和第四维度序号,用第四维度序号替换第二变换节点的转置参数中的第三维度序号,得到更新后的逆转置参数;对更新后的逆转置参数进行逆处理,得到第五变换节点的转置参数。
在本申请实施例中,计算图中的第一变换节点与第二变换节点是对输入的数据先进行转置而后进行形状重塑,第二映射关系包括多组序号能够反映出第二变换节点对输入的数据中的维度进行形状重塑的情况,因此,将每组序号包括的第四维度序号替换逆转置参数中的第三维度序号,在对更新后的逆转置参数进行逆处理,以还原出对已进行形状重塑后的数据进行转置的情况,即得到与已进行形状重塑的数据相匹配的逆转置参数,保证了得到的转置参数的准确性,进而保证后续的能够实现等效替换。
本申请实施例中,逆转置参数中的维度序号与第二映射关系中的第三维度序号相同,也即是,对于第二映射关系中的每个第三维度序号,均能够从逆转置参数中找到第三维度序号。但是,一旦从逆转置参数中未找到任一第三维度序号,则表示第一变换节点及第二变换节点无法进行等效替换,则不再执行下述步骤1504-步骤1506。
在本申请实施例中,假设逆转置参数为reversePerm,根据第二映射关系和逆转置参数reversePerm,判断是否可以对第一变换节点及第二变换节点进行等效转换。如图16所示,遍历第二映射关系包含的多组序号,获取任一组序号<第三维度序号,第四维度序号>,并在逆转置参数reversePerm中查找是否有第三维度序号,如果没有找到则无法做等效转换,如果找到第三维度序号,则用第四维度序号替换permutation中的第三维度序号,遍历完成之后就获取了一个新的转置参数newReversePerm,对新的转置参数newReversePerm再进行一次求逆还原,得到第四变换节点的转置参数。
1504、将第一变换节点的输入参数,确定为第四变换节点的输入参数;将第五变换节点的输入参数,确定为第四变换节点的输出参数。
在本申请实施例中,将第四变换节点和第五变换节点作为第一节点组合,将第一变换节点和第二变换节点作为第二节点组合,则而将第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点时,第一节点组合的输入参数和第二节点组合的输入参数相同,第一节点组合的输出参数和第二节点组合的输出参数相同。因此,将第一变换节点的输入参数,确定为第四变换节点的输入参数。并且,计算图中相邻的任两个节点,前一个节点的输出参数为后一个节点的输入参数,在计算图中的数据由第四变换节点输入至第五变换节点的情况下,第四变换节点的输出参数即为第五变换节点的输入参数。
1505、基于第四变换节点的输入参数及输出参数,用第四变换节点替换计算图中的第一变换节点。
1506、基于第五变换节点的输入参数、转置参数及输出参数,用第五变换节点替换计算图中的第二变换节点。
该步骤1505-步骤1506与上述步骤905-步骤906同理,在此不再赘述。
在一种可能实现方式中,用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的过程满足以下关系:
Reshape5(Transpose5(A),Perm5)=Transpose6(Reshape6(A),newPerm2)
其中,A用于表示输入至第一变换节点的数据,Reshape5(·)用于表示第二变换节点,Transpose5(·)用于表示第一变换节点,Perm5用于表示第一变换节点的转置参数,Transpose6(·)用于表示第五变换节点,Reshape6(·)用于表示第四变换节点,newPerm2用于表示第五变换节点的转置参数。
在本申请实施例中,用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的必要条件为满足上述关系,并且用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点后,第四变换节点的前驱节点与第四变换节点属于相同的节点类型,或者,第五变换节点的后继节点与第五变换节点属于相同的节点类型,也即是,第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点后,第四变换节点能够与前驱节点进行合并,或者,第五变换节点能够与后继节点进行合并。如果用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点后,无法将第四变换节点与前驱节点进行合并,且无法将第五变换节点与后继节点进行合并,则无需执行上述等效替换过程。
本申请实施例提供的方案中,在第一变换节点属于转置类型、第二变换节点属于形状重塑类型的情况下,利用第一变换节点的输入参数与输出参数中不同维度的数值之间的映射关系,对逆转置参数进行更新,再对逆转置参数进行逆处理,得到五变换节点的转置参数,并结合第一变换节点的输入参数及第二变换节点的输入参数,确定出第四变换节点和第五变换节点的输入参数和输出参数,使得第四变换节点和第五变换节点的参数,与第一变换节点和第二变换节点的参数相匹配,以保证第四变换节点和第五变换节点能够等效替换第一变换节点和第二变换节点,进而保证等效替换效果,以保证等效替换后的计算图的功能不变,且保证后续能够优化计算图包含的数据变换节点,进而达到优化模型结构的目的。
如图17所示,第一变换节点的输入参数为TensorA=[1,24,16,64],第一变换节点的转置参数为Permutation=[0,2,1,3],第一变换节点用于将TensorA中的维度1和维度2进行交换,第一变换节点的输出参数为TensorB=[1,16,24,64],第二变换节点的输入参数为TensorB,第二变换节点的输出参数为TensorC=[1,16,24,2,32],第二变换节点用于将TensorB中的维度3拆分为元素个数为2和32的两个维度(64=2*32)。第二映射关系为{<0,0>,<1,1>,<2,2>,<3,[3,4]>},其中,<[0,0]>表示第二变换节点将输入参数中维度0映射为输出参数中的维度0,<1,1>表示第二变换节点将输入参数中维度1映射为输出参数中的维度1,<2,2>表示第二变换节点将输入参数中维度2映射为输出参数中的维度2,<3,[3,4]>表示第二变换节点将输入参数中维度3拆分为输出参数中的维度3和维度4。对第一变换节点的转置参数Permutation求逆,得到的逆转置参数为reversePerm=[0,2,1,3]。根据第一映射关系中的<3,[3,4]>,将逆转置参数reversePerm中的3替换为[3,4],第一映射关系中其它映射关系不发生替换操作,于是得到更新后的逆转置参数为newReversePerm=[0,2,1,3,4],对更新后的逆转置参数newReversePerm求逆,可得第五变换节点的转置参数newPerm=[0,2,1,3,4]。第五变换节点用于将输入参数中的维度1和维度2进行交换,得到第五变换节点的输出参数为TensorC,则第五变换节点的输入参数为TensorB1=[1,24,16,2,32]。第四变换节点的输入参数为TensorA,第四变换节点的输出参数为TensorB1。此外,假设第二变换节点的后继节点属于转置类型,第二变换节点的后继节点的输入参数为TensorC,第二变换节点的后继节点的转置参数为[0,2,1,4,3],第二变换节点的后继节点的输出参数为TensorD=[1,24,16,32,2]。则用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的情况下,第二变换节点的后继节点为第五变换节点的后继节点,且第五变换节点能与第五变换节点的后继节点进行融合,融合得到的数据变换节点属于转置类型,融合得到的数据变换节点的输入参数为TensorB1,融合得到的数据变换节点的输出参数为TensorD,将第五变换节点的转置参数与第五变换节点的后继节点的转置参数融合,得到融合得到的数据变换节点的转置参数为[0,2,2,4,3]。
图18是本申请实施例提供的再一种模型更新方法的流程图,由计算机设备执行,如图18所示,该方法包括以下步骤。
1801、在第一变换节点属于转置类型、第二变换节点属于扩充类型的情况下,将第一变换节点的输入参数,确定为第四变换节点的输入参数,第一变换节点用于对数据进行转置,第二变换节点用于扩充输入至第二变换节点的数据,第一变换节点的输入参数指示输入至第一变换节点的数据的格式。
在本申请实施例中,第二变换节点为第一变换节点的后继算子,也即是,第一变换节点的输入为第二变换节点的输出。
在本申请实施例中,属于转置类型的第一变换节点用于将输入数据的维度顺序进行交换,而属于扩充类型的第二变换节点用于扩充数据的尺寸并在为数据填充新的元素,因此,第一变换节点和第二变换节点必然能够进行等效转换。将第一变换节点和第二变换节点作为第二节点组合,则而将第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点时,第一节点组合的输入参数和第二节点组合的输入参数相同,第一节点组合的输出参数和第二节点组合的输出参数相同。因此,将第一变换节点的输入参数,确定为第四变换节点的输入参数。
1802、基于第一变换节点的转置参数,对第二变换节点的扩充参数进行更新,得到第四变换节点的扩充参数,第一变换节点的转置参数指示对数据进行转置的格式,第二变换节点的扩充参数指示扩充输入至第二变换节点的数据的情况。
在本申请实施例中,由于第一变换节点和第二变换节点是先将输入的数据的维度进行交换,而后对交换后的数据的维度进行扩充,因此,用第四变换节点和第五变换节点,等效替换第一变换节点和第二变换节点时,基于第一变换节点的转置参数,对第二变换节点的扩充参数进行更新,以保证第二变换节点与第四变化节点用于对同一维度进行扩充,进而保证后续等效替换效果。
在一种可能实现方式中,该步骤1802包括:对第一变换节点的转置参数进行逆处理,基于得到的逆转置参数,对扩充参数进行转置,得到第四变换节点的扩充参数。
在本申请实施例中,扩充参数与张量的形式表示,将扩充参数作为输入数据,采取逆向转置的方式,即可得到第四变换节点的扩充参数,保证得到的扩充参数的准确性。
1803、基于第四变换节点的输入参数及扩充参数,确定第四变换节点的输出参数,第四变换节点的输出参数指示第四变换节点输出的数据的格式。
1804、将第四变换节点的输出参数,确定为第五变换节点的输入参数;将第一变换节点的转置参数,确定为第五变换节点的转置参数,第一变换节点的转置参数指示对数据进行转置的格式;将第二变换节点的输出参数,确定为第五变换节点的输出参数。
在本申请实施例中,在将属于转置类型的第一变换节点、属于扩充类型的第二变换节点进行等效替换的过程中,除了对第二变换节点的扩充参数进行更新,得到第四变换节点的扩充参数,将第二变换节点其余的参数赋予为第四变换节点,将第一变换节点的参数赋予为第五变节点,即可实现用第四变换节点和第五变换节点,等效替换第一变换节点和第二变换节点。
1805、基于第四变换节点的输入参数、扩充参数及输出参数,用第四变换节点替换计算图中的第一变换节点。
1806、基于第五变换节点的输入参数、转置参数及输出参数,用第五变换节点替换计算图中的第二变换节点。
该步骤1805-步骤1806与上述步骤905-步骤906同理,在此不再赘述。
在一种可能实现方式中,用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的过程满足以下关系:
Pad1(Transpose7(A,Perm7),PadAttr1)=Transpose8(Pad2(A,newPadAttr1),newPerm3)
其中,A用于表示输入至第一变换节点的数据,Pad1(·)用于表示第二变换节点,Transpose7(·)用于表示第一变换节点,Perm7用于表示第一变换节点的转置参数,PadAttr1用于表示第二变换节点的扩充参数,Transpose8(·)用于表示第五变换节点,Pad2(·)用于表示第四变换节点,newPadAttr1用于表示第四变换节点的扩充参数,newPerm3用于表示第五变换节点的转置参数。
本申请实施例提供的方案中,属于转置类型的第一变换节点用于将输入数据的维度顺序进行交换,而属于扩充类型的第二变换节点用于扩充数据的尺寸并在为数据填充新的元素,因此,第一变换节点和第二变换节点必然能够进行等效转换,在将属于转置类型的第一变换节点、属于扩充类型的第二变换节点进行等效替换的过程中,除了对第二变换节点的扩充参数进行更新,得到第四变换节点的扩充参数,将第二变换节点其余的参数赋予为第四变换节点,将第一变换节点的参数赋予为第五变节点,即可实现用第四变换节点和第五变换节点,等效替换第一变换节点和第二变换节点,保证了等效替换效果,以保证等效替换后的计算图的功能不变,且保证后续能够优化计算图包含的数据变换节点,进而达到优化模型结构的目的。
如图19所示,第一变换节点的输入参数为TensorA=[1,1,32,499,32],第一变换节点的转置参数为Pemu0=[0,1,3,2,4],第一变换节点用于将TensorA中维度2和维度3进行交换,第一变换节点的输出参数为TensorB=[1,1,499,32,32]。第二变换节点的输入参数为TensorB,第二变换节点的扩充参数为padding_high=[0,0,13,0,0],第二变换节点用于对TensorB的维度2填充13个元素(也即是,将维度2的数值由499扩充为512),第二变换节点的输出参数为TensorC=[1,1,512,32,32]。用第四变换节点和第五变换节点,等效替换第一变换节点和第二变换节点,第四变换节点的输入参数为TensorA,第四变换节点的扩充参数为new_padding_high=[0,0,0,13,0],第四变换节点用于对TensorA的维度3填充13个元素(也即是,将维度3的数值由499扩充为512),第四变换节点的输出参数为TensorB1=[1,1,32,512,32],第五变换节点的输入参数为TensorB1,第五变换节点的转置参数与第一变换节点的转置参数相同,第五变换节点的输出参数为TensorC。此外,假设第二变换节点的后继节点属于转置类型,第二变换节点的后继节点的输入参数为TensorC,第二变换节点的后继节点的转置参数为[0,1,3,2,4],第二变换节点的后继节点的输出参数为TensorD=[1,1,32,512,32]。则用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的情况下,第二变换节点的后继节点为第五变换节点的后继节点,且第五变换节点能与第五变换节点的后继节点进行融合,融合后第五变换节点与第五变换节点的后继节点相互抵消。
图20是本申请实施例提供的再一种模型更新方法的流程图,由计算机设备执行,如图20所示,该方法包括以下步骤。
2001、在第一变换节点属于形状重塑类型、第二变换节点属于扩充类型的情况下,基第一变换节点的输入参数及输出参数,确定第一映射关系,第一变换节点的输入参数指示输入第一变换节点的数据的格式,第一变换节点的输出参数指示第一变换节点输出的数据的格式,第一映射关系指示输入参数与输出参数中不同维度的数值之间的映射关系。
在本申请实施例中,第二变换节点为第一变换节点的后继算子,也即是,第一变换节点的输入为第二变换节点的输出。该步骤2001与上述步骤901同理,在此不再赘述。
2002、基于第一映射关系,对第二变换节点的扩充参数进行更新,得到第四变换节点的扩充参数,第二变换节点的扩充参数指示扩充输入至第二变换节点的数据的情况,将第一变换节点的输入参数,确定为第四变换节点的输入参数。
在本申请实施例中,计算图中的第一变换节点与第二变换节点是对输入的数据先进行形状重塑而后进行扩充,而为了等效替换为对数据先进行扩充后进行形状重塑的数据变换节点,因此,基于第一映射关系,对第二变换节点的扩充参数进行更新,以保证得到的扩充参数与未进行形状重塑时的数据相匹配,进而保证后续的等效替换效果。其中,第四变换节点的转置参数指示对数据进行转置的格式。
在一种可能实现方式中,第一映射关系包括多组序号,每组序号包括第一维度序号和第二维度序号,第一维度序号为第一变换节点的输入参数中的维度序号,第二维度序号为第一变换节点的输出参数中的维度序号;对第二变换节点的扩充参数进行更新的过程,包括:基于扩充参数包含的数值,确定目标维度序号,目标维度序号指示第二变换节点对输入数据进行扩充的维度;从第一映射关系包含的第二维度序号中查询目标维度序号,确定第一映射关系中目标维度序号对应的第一维度序号;基于目标维度序号对应的第一维度序号,对目标维度序号在扩充参数中对应的数值的位置进行调整,以使调整后的数值在扩充参数中的维度的序号为目标维度序号对应的第一维度序号,得到第四变换节点的扩充参数。
在本申请实施例中,扩充参数包括多个数值,多个数值在扩充参数中的顺序相当于多个数值对应的维度序号。基于第一映射关系,对第二变换节点的扩充参数进行语义分析,找出对扩充参数对第二变换节点的输入数据进行了填充操作的维度,将进行了填充操作的维度序号存放在一维数组padDims中;遍历padDims中的每个维度序号,若padDims中的每个维度序号与第一映射关系中的第二维度序号一一对应,则确定第一变换节点与第二变换节点能够等效替换。其中,第四变换节点的扩充参数的维度数量与第四变换节点的输入参数的维度数量相同。
例如,第一映射关系为{<[0,1],0>,<2,1>,<[3,4],2>},第二变换节点的扩充参数为[0,13,0],则第二变换节点仅对输入的数据中维度序号为1的数值进行扩充,第一变换节点的输出即为第二变换节点的输入,第一映射关系中第二维度序号为1的映射关系数组为<2,1>,即第一变换节点将输入的数据的维度2和维度1进行交换,则若用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点时,第四变换节点的输入数据与第一变换节点的输入数据相同,则第四变换节点是对输入数据的维度2进行扩充,且第四变换节点的扩充参数的维度数量与第四变换节点的输入参数的维度数量相同,因此,第四变换节点的扩充参数为[0,0,13,0]。
2003、基于第四变换节点的扩充参数及输入参数,确定第四变换节点的输出参数,第四变换节点的输出参数指示第四变换节点输出的数据的格式。
2004、将第四变换节点的输出参数,确定为第五变换节点的输入参数;将第二变换节点的输出参数,确定为第五变换节点的输出参数。
在本申请实施例中,在将属于形状重塑类型的第一变换节点、属于扩充类型的第二变换节点进行等效替换的过程中,除了对第二变换节点的扩充参数进行更新,得到第四变换节点的扩充参数,将第二变换节点其余的参数赋予为第四变换节点,将第一变换节点的参数赋予为第五变节点,即可实现用第四变换节点和第五变换节点,等效替换第一变换节点和第二变换节点。
2005、基于第四变换节点的输入参数、扩充参数及输出参数,用第四变换节点替换计算图中的第一变换节点。
2006、基于第五变换节点的输入参数及输出参数,用第五变换节点替换计算图中的第二变换节点。
该步骤2005-步骤2006与上述步骤905-步骤906同理,在此不再赘述。
在一种可能实现方式中,用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的过程满足以下关系:
Pad3(Reshape7(A),PadAttr2)=Reshape8(Pad4(A),newPadAttr2)
其中,A用于表示输入至第一变换节点的数据,Pad3(·)用于表示第二变换节点,Reshape7(·)用于表示第一变换节点,PadAttr2用于表示第二变换节点的扩充参数,Reshape8(·)用于表示第五变换节点,Pad4(·)用于表示第四变换节点,newPadAttr2用于表示第四变换节点的扩充参数。
本申请实施例提供的方案中,属于形状扩充类型的第一变换节点用于对输入的数据的形状进行重塑,而属于扩充类型的第二变换节点用于扩充数据的尺寸并在为数据填充新的元素,因此,基于第一映射关系,对第二变换节点的扩充参数进行更新,以保证得到的扩充参数与未进行形状重塑时的数据相匹配,并将第二变换节点其余的参数赋予为第四变换节点,将第一变换节点的参数赋予为第五变节点,即可实现用第四变换节点和第五变换节点,等效替换第一变换节点和第二变换节点,保证了等效替换效果,以保证等效替换后的计算图的功能不变,且保证后续能够优化计算图包含的数据变换节点,进而达到优化模型结构的目的。
如图21所示,第一变换节点的输入参数为TensorA=[1,1,499,32,32],第一变换节点用于将TensorA中的维度3和维度4合并,第一变换节点的输出参数为TensorB=[1,499,1024]。第二变换节点的输入参数为TensorB,第二变换节点的扩充参数为padding_high=[0,13,0],第二变换节点用于对TensorB的维度1填充13个元素(也即是,将维度1的数值由499扩充为512),第二变换节点的输出参数为TensorC=[1,512,1024]。第一映射关系为{<[0,1],0>,<2,1>,<[3,4],2>},对pad进行语义分析,能够得到padDims={1},也即是,第二变换节点仅对TensorB的维度1进行了填充,从第一映射关系中可以找到TensorB的维度1同TensorA的维度2映射。第四变换节点的输入参数为TensorA,第四变换节点的输入参数与扩充参数的维度数量相同,则,基于第一映射关系对第二变换节点的扩充参数进行更新,得到的第四变换节点的扩充参数为new_padding_high=[0,0,13,0,0],第四变换节点用于对TensorA的维度2填充13个元素(也即是,将维度2的数值由499扩充为512),第四变换节点的输出参数TensorB1=[1,1,512,32,32]。第五变换节点的输入参数为TensorB1,第五变换节点的输出参数为TensorC=[1,512,1024],第五变换节点用于将TensorB1的维度3和维度4合并。此外,假设第二变换节点的后继节点属于形状重塑类型,第二变换节点的后继节点的输入参数为TensorC,第二变换节点的后继节点的转置参数为[0,1,3,2,4],第二变换节点的后继节点的输出参数为输出为TensorD=[1,512,32,32]。则用第四变换节点和第五变换节点等效替换第一变换节点和第二变换节点的情况下,第二变换节点的后继节点为第五变换节点的后继节点,且第五变换节点能与第五变换节点的后继节点进行融合,融合得到的数据变换节点属于形状重塑类型,融合得到的数据变换节点的输入参数为TensorB1,融合得到的数据变换节点的输出参数为TensorD=[1,512,32,32]。
在上述图2至图20所示的实施例的基础上,在解析得到计算图的情况下,还会在计算图中添加数据变换节点,以使更新后的网络模型与处理器相匹配,也即是,网络模型部署在处理器中,计算图包括每个节点的参数,节点的参数指示节点所表征的网络层的参数;多个节点还包括功能节点,功能节点用于对数据进行处理;该方法还包括:基于处理器的性能参数,对功能节点的第一参数进行更新,得到功能节点的第二参数,第二参数与性能参数匹配;基于第一参数及第二参数,在计算图中添加与功能节点相邻的数据变换节点,添加的数据变换节点用于将输入至功能节点的数据变换为与第二参数匹配的数据,或者,用于将功能节点输出的数据变换为与第一参数匹配的数据。
在本申请实施例中,在将网络模型部署在处理器中的情况下,为了保证网络模型能够与处理器的性能参数匹配,因此,对功能节点的输入参数和输出参数进行优化,以提升功能节点所表征的网络层的处理效率,且由于网络模型中前一个网络层的输出为下一个网络层的输入,因此,在对功能节点的输入参数和输出参数进行优化的情况下,在功能节点的前后增加数据变换节点,以使输入至功能节点的数据变换为与第二参数匹配的数据,且能够将功能节点输出的数据变换为与第一参数匹配的数据,使得变换后的数据能够作为下一个网络层的输入,即在保证网络模型的处理效率的同时,保证网络模型中各个网络层之间传输的数据的格式的准确性。其中,性能参数指示处理器对数据排布格式的需求。
在一种可能实现方式中,在计算图中添加与功能节点相邻的数据变换节点的过程,包括:在功能节点与功能节点的前驱节点之间添加第六变换节点,第六变换节点用于将功能节点的前驱节点输出的数据变换为与第二参数匹配的数据;在第二功能节点与功能节点的后继节点之间添加第七变换节点,第七变换节点用于将功能节点输出的数据变换为与第一参数匹配的数据,以便能够输入至功能节点的后继节点。
在本申请实施例中,在计算机和自然语言处理等领域,常见的数据格式包括NCHW(一种数据格式)、NHWC(一种数据格式)、KhKwCiCo(一种数据格式)和B0B1HW(一种数据格式)等。以网络模型中卷积层为例,卷积层的输入特征图的一般有4个维度,即N表示特征图的批量大小,C表示特征图的通道数量,H和W表示特征图的高、宽尺寸。此外,以采用SIMD(Single Instruction Multiple Data,单指令多数据流)架构的处理器为例,为了保证处理器的算力能被充分利用,通常需要将C维度进行拆分,形成一种新的5D数据排布格式NC1HWC0(其中,C0为AI处理器能够并行处理的数据位宽,C1=C/C0)。同样的,B0B1HW数据排布格式在SIMD架构的AI处理器中也会存在对应的5D格式B0B1W1HW0(其中W0为AI处理器能够并行处理的数据位宽,W1=W/W0)。以ONNX标准模型为例,Tensor通常默认使用4D格式,将使用4D格式的ONNX神经网络模型部署在不同硬件厂商定制的处理器上时,为了获取最优的性能,往往需要插入一些用于变换数据的格式的网络层,以使输入至功能节点所表征的网络层的数据的排布格式转换为处理器上性能最优的数据排布格式。由于在计算图中插入数据变换节点时,无法获取当前计算图的完整信息,导致计算图会产生一些不必要、不合理的数据变换节点,因此,在插入数据变换节点后,采用上述图2至图20所示的实施例,对插入后的计算图进行优化。
网络模型在理器上的部署,通常是由深度学习框架或者是叫图编译器来完成。如图22所示,图编译器首先会读取网络模型并将其解析生成计算图。并且,图编译器基于生成的计算图进行一系列的优化,包括算子Layout(布局)变换等。例如,由图编译器基于处理器对数据排布格式的需求,在计算图中相应的功能节点前后插入数据变换节点,在相应的功能节点前插入数据变换节点是出于性能上的需求,将输入数据的形状和排布格式转换为该功能节点所需要的更高效的形式,在相应的功能节点前插入数据变换节点是为了将数据的形状和排布格式进行还原,如果处理器对于数据排布格式没有特殊需求,那么无需执行上述插入数据变换节点的操作。本申请实施例中,对计算图进行Layout变化后,采用上述图2至图20所示的实施例,对变化后的计算图进行优化,消除计算图中引入的一些不必要的或者不合理的数据变换节点。
需要说明的是,本申请实施例提供的模型更新方法能够应用于多种场景,例如,应用与视觉处理场景、语音处理场景、自然语言处理场景下等,在同的场景下,待更新的网络模型文件指示与场景匹配的网络模型,例如,在视觉处理场景下,待更新的网络模型文件指示用于对图像数据进行处理的网络模型,如图像识别或图像分割等。以应用在语音处理场景为例,在对网络模型训练完成的情况下,将训练完成的网络模型文件部署在任一计算机设备的处理器中,在此过程中,能够按照上述实施例提供的模型更新方法,对网络模型文件进行更新,并在处理器中部署更新后的网络模型文件,计算机设备响应于接收到对语音数据处理请求,调用更新的网络模型文件,对语音数据处理请求指示的语音数据进行处理,得到处理结果。在一种可能实现方式中,计算机设备包含芯片,芯片包含处理器,则计算机设备通过芯片中的处理器来实现上述方案。
图23是本申请实施例提供的一种模型更新装置的结构示意图,如图23所示,该装置包括:
接收模块2301,用于接收模型更新请求,对模型更新请求指示的网络模型文件进行解析,得到计算图,计算图包括多个节点及多个节点之间的连接关系,节点用于表示网络模型包含的网络层,多个节点包括数据变换节点,数据变换节点用于变换数据的格式;
融合模块2302,用于将计算图中的多个目标变换节点进行融合,用得到的融合节点替换计算图中多个目标变换节点,得到更新后的计算图,多个目标变换节点为计算图中属于相同节点类型的数据变换节点,且多个目标变换节点之间具有连接关系;
返回模块2303,用于基于更新后的计算图,生成更新后的网络模型文件,返回更新后的网络模型文件。
在一种可能实现方式中,计算图包括每个节点的参数,节点的参数指示节点所表征的网络层的参数;融合模块2302,用于基于多个目标变换节点的参数,确定融合节点的参数;基于融合节点的参数,用融合节点在计算图中替换多个目标变换节点,得到更新后的计算图。
在另一种可能实现方式中,融合模块2302,用于在多个目标变换节点属于形状重塑类型的情况下,将多个目标变换节点中第一个目标变换节点的输入参数,确定为融合节点的输入参数,属于形状重塑类型的目标变换节点用于重塑数据的形状,目标变换节点的输入参数指示输入至目标变换节点的数据的格式;将多个目标变换节点中最后一个目标变换节点的输出参数,确定为融合节点的输出参数,目标变换节点的输出参数指示目标变换节点输出的数据的格式。
在另一种可能实现方式中,融合模块2302,用于在多个目标变换节点属于转置类型的情况下,将多个目标变换节点中第一个目标变换节点的输入参数,确定为融合节点的输入参数,属于转置类型的目标变换节点用于对数据进行转置,目标变换节点的输入参数指示输入至目标变换节点的数据的格式;将多个目标变换节点的转置参数进行融合,得到融合节点的转置参数,目标变换节点的转置参数指示对数据进行转置的格式;将多个目标变换节点中最后一个目标变换节点的输出参数,确定为融合节点的输出参数,目标变换节点的输出参数指示目标变换节点输出的数据的格式。
在另一种可能实现方式中,如图24所示,装置还包括:
确定模块2304,用于从计算图包含的多个节点中,确定第一变换节点、第二变换节点及第三变换节点,第一变换节点、第二变换节点及第三变换节点为计算图中具有连接关系的数据变换节点,第一变换节点与第三变换节点属于相同的节点类型,且与第二变换节点属于不同的节点类型;
替换模块2305,用于用第四变换节点及第五变换节点,等效替换计算图中的第一变换节点及第二变换节点,第四变换节点与第二变换节点属于相同的节点类型,第五变换节点与第一变换节点属于相同的节点类型,且与第三变换节点相邻。
在另一种可能实现方式中,计算图包括每个节点的参数,节点的参数指示节点所表征的网络层的参数;替换模块2305,用于基于第一变换节点的参数及第二变换节点的参数,确定第四变换节点的参数及第五变换节点的参数;基于第四变换节点的参数及第五变换节点的参数,用第四变换节点及第五变换节点,替换计算图中的第一变换节点及第二变换节点。
在另一种可能实现方式中,替换模块2305,用于在第一变换节点属于形状重塑类型、第二变换节点属于转置类型的情况下,基于第一变换节点的输入参数及输出参数,确定第一映射关系,第一变换节点的输入参数指示输入至第一变换节点的数据的格式,第一变换节点的输出参数指示第一变换节点输出的数据的格式,第一映射关系指示输入参数与输出参数中不同维度的数值之间的映射关系;基于第一映射关系,对第二变换节点的转置参数进行更新,得到第四变换节点的转置参数,第二变换节点的转置参数指示对数据进行转置的格式;将第一变换节点的输入参数,确定为第四变换节点的输入参数;将第四变换节点的输入参数及转置参数进行融合,得到第四变换节点的输出参数;将第四变换节点的输出参数,确定为第五变换节点的输入参数,将第二变换节点的输出参数,确定为第五变换节点的输出参数。
在另一种可能实现方式中,替换模块2305,用于基于第四变换节点的输入参数、输出参数及转置参数,用第四变换节点替换计算图中的第一变换节点;基于第五变换节点的输入参数及输出参数,用第五变换节点替换计算图中的第二变换节点。
在另一种可能实现方式中,第一映射关系包括多组序号,每组序号包括第一维度序号和第二维度序号,第一维度序号为第一变换节点的输入参数中的维度序号,第二维度序号为第一变换节点的输出参数中的维度序号;替换模块2305,用于对于每组序号包括的第一维度序号和第二维度序号,用第一维度序号替换第二变换节点的转置参数中的第二维度序号,得到第四变换节点的转置参数。
在另一种可能实现方式中,输入参数包括多个第一数值,输出参数包括多个第二数值,第一数值指示对应的维度包含的元素数量,第二数值指示对应的维度包含的元素数量;替换模块2305,用于按照多个第一数值的顺序及多个第二数值的顺序,从输入参数及输出参数中确定多组数值,每组数值包括至少一个第一数值及至少一个第二数值,至少一个第一数值指示的元素数量与至少一个第二数值指示的元素数量相等;将每组数值包含的数值在输入参数及输出参数中的维度序号,构成一组序号,将得到的多组序号构成第一映射关系。
在另一种可能实现方式中,替换模块2305,用于在第一变换节点属于转置类型、第二变换节点属于形状重塑类型的情况下,对第一变换节点的转置参数进行逆处理,得到逆转置参数,第一变换节点的转置参数指示对数据进行转置的格式;基于第二变换节点的输入参数及输出参数,确定第二映射关系,第二变换节点的输入参数指示输入至第二变换节点的数据的格式,第二变换节点的输出参数指示第二变换节点输出的数据的格式,第二映射关系指示输入参数与输出参数中不同维度的数值之间的映射关系;将第二映射关系与逆转置参数进行融合,得到第五变换节点的转置参数;将第二变换节点的输出参数,确定为第五变换节点的输出参数;基于第五变换节点的转置参数及输出参数,确定为第五变换节点的输入参数;将第一变换节点的输入参数,确定为第四变换节点的输入参数;将第五变换节点的输入参数,确定为第四变换节点的输出参数。
在另一种可能实现方式中,第二映射关系包括多组序号,每组序号包括第三维度序号和第四维度序号,第三维度序号为第二变换节点的输入参数中的维度序号,第四维度序号为第二变换节点的输出参数中的维度序号;替换模块2305,用于对于每组序号包括的第三维度序号和第四维度序号,用第四维度序号替换第二变换节点的转置参数中的第三维度序号,得到更新后的逆转置参数;对更新后的逆转置参数进行逆处理,得到第五变换节点的转置参数。
在另一种可能实现方式中,替换模块2305,用于在第一变换节点属于转置类型、第二变换节点属于扩充类型的情况下,将第一变换节点的输入参数,确定为第四变换节点的输入参数,第一变换节点用于对数据进行转置,第二变换节点用于扩充输入至第二变换节点的数据,第一变换节点的输入参数指示输入至第一变换节点的数据的格式;基于第一变换节点的转置参数,对第二变换节点的扩充参数进行更新,得到第四变换节点的扩充参数,第一变换节点的转置参数指示对数据进行转置的格式,第二变换节点的扩充参数指示扩充输入至第二变换节点的数据的情况;基于第四变换节点的输入参数及扩充参数,确定第四变换节点的输出参数,第四变换节点的输出参数指示第四变换节点输出的数据的格式;将第四变换节点的输出参数,确定为第五变换节点的输入参数;将第一变换节点的转置参数,确定为第五变换节点的转置参数;将第二变换节点的输出参数,确定为第五变换节点的输出参数。
在另一种可能实现方式中,替换模块2305,用于在第一变换节点属于形状重塑类型、第二变换节点属于扩充类型的情况下,基于第一变换节点的输入参数及输出参数,确定第一映射关系,第一变换节点的输入参数指示输入第一变换节点的数据的格式,第一变换节点的输出参数指示第一变换节点输出的数据的格式,第一映射关系指示输入参数与输出参数中不同维度的数值之间的映射关系;基于第一映射关系,对第二变换节点的扩充参数进行更新,得到第四变换节点的扩充参数,第二变换节点的扩充参数指示扩充输入至第二变换节点的数据的情况,将第一变换节点的输入参数,确定为第四变换节点的输入参数;基于第四变换节点的扩充参数及输入参数,确定第四变换节点的输出参数,第四变换节点的输出参数指示第四变换节点输出的数据的格式;将第四变换节点的输出参数,确定为第五变换节点的输入参数;将第二变换节点的输出参数,确定为第五变换节点的输出参数。
在另一种可能实现方式中,网络模型部署在处理器中,计算图包括每个节点的参数,节点的参数指示节点所表征的网络层的参数;多个节点还包括功能节点,功能节点用于对数据进行处理;如图24所示,装置还包括:
更新模块2306,用于基于处理器的性能参数,对功能节点的第一参数进行更新,得到功能节点的第二参数,第二参数与性能参数匹配;
添加模块2307,用于基于第一参数及第二参数,在计算图中添加与功能节点相邻的数据变换节点,添加的数据变换节点用于将输入至功能节点的数据变换为与第二参数匹配的数据,或者,用于将功能节点输出的数据变换为与第一参数匹配的数据。
在另一种可能实现方式中,返回模块2303,用于基于更新后的计算图中的节点的参数,创建每个节点对应的网络层;
基于更新后的计算图中节点之间的连接关系,将创建的网络层连接,得到更新后的网络模型文件。
需要说明的是:上述实施例提供的模型更新装置,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的模型更新装置与模型更新方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现上述实施例的模型更新方法所执行的操作。
可选地,计算机设备提供为终端。图25示出了本申请一个示例性实施例提供的终端2500的结构框图。终端2500包括有:处理器2501和存储器2502。
处理器2501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2501可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2502中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器2501所执行以实现本申请中方法实施例提供的模型更新方法。
在一些实施例中,终端2500还可选包括有:外围设备接口2503和至少一个外围设备。处理器2501、存储器2502和外围设备接口2503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2503相连。具体地,外围设备包括:射频电路2504、显示屏2505、摄像头组件2506、音频电路2507和电源2508中的至少一种。
外围设备接口2503可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器2501和存储器2502。在一些实施例中,处理器2501、存储器2502和外围设备接口2503被集成在同一芯片或电路板上;在一些其他实施例中,处理器2501、存储器2502和外围设备接口2503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路2504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路2504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2504包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路2504还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏2505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏2505是触摸显示屏时,显示屏2505还具有采集在显示屏2505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2501进行处理。此时,显示屏2505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏2505可以为一个,设置在终端2500的前面板;在另一些实施例中,显示屏2505可以为至少两个,分别设置在终端2500的不同表面或呈折叠设计;在另一些实施例中,显示屏2505可以是柔性显示屏,设置在终端2500的弯曲表面上或折叠面上。甚至,显示屏2505还可以设置成非矩形的不规则图形,也即异形屏。显示屏2505可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件2506用于采集图像或视频。可选地,摄像头组件2506包括前置摄像头和后置摄像头。前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件2506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2501进行处理,或者输入至射频电路2504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端2500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2501或射频电路2504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路2507还可以包括耳机插孔。
电源2508用于为终端2500中的各个组件进行供电。电源2508可以是交流电、直流电、一次性电池或可充电电池。当电源2508包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图25中示出的结构并不构成对终端2500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
可选地,计算机设备提供为服务器。图26是本申请实施例提供的一种服务器的结构示意图,该服务器2600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)2601和一个或一个以上的存储器2602,其中,存储器2602中存储有至少一条计算机程序,至少一条计算机程序由处理器2601加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现上述实施例的模型更新方法所执行的操作。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述实施例的模型更新方法所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种模型更新方法,其特征在于,所述方法包括:
接收模型更新请求,对所述模型更新请求指示的网络模型文件进行解析,得到计算图,所述计算图包括多个节点及所述多个节点之间的连接关系,所述节点用于表示网络模型包含的网络层,所述多个节点包括数据变换节点,所述数据变换节点用于变换数据的格式;
将所述计算图中的多个目标变换节点进行融合,用得到的融合节点替换所述计算图中所述多个目标变换节点,得到更新后的计算图,所述多个目标变换节点为所述计算图中属于相同节点类型的数据变换节点,且所述多个目标变换节点之间具有连接关系;
基于所述更新后的计算图,生成更新后的网络模型文件,返回所述更新后的网络模型文件。
2.根据权利要求1所述的方法,其特征在于,所述计算图包括每个节点的参数,所述节点的参数指示所述节点所表征的网络层的参数;所述将所述计算图中的多个目标变换节点进行融合,用得到的融合节点替换所述计算图中所述多个目标变换节点,得到更新后的计算图,包括:
基于所述多个目标变换节点的参数,确定所述融合节点的参数;
基于所述融合节点的参数,用所述融合节点在所述计算图中替换所述多个目标变换节点,得到所述更新后的计算图。
3.根据权利要求2所述的方法,其特征在于,所述基于所述多个目标变换节点的参数,确定所述融合节点的参数,包括:
在所述多个目标变换节点属于形状重塑类型的情况下,将所述多个目标变换节点中第一个目标变换节点的输入参数,确定为所述融合节点的输入参数,属于所述形状重塑类型的目标变换节点用于重塑数据的形状,所述目标变换节点的输入参数指示输入至所述目标变换节点的数据的格式;
将所述多个目标变换节点中最后一个目标变换节点的输出参数,确定为所述融合节点的输出参数,所述目标变换节点的输出参数指示所述目标变换节点输出的数据的格式。
4.根据权利要求2所述的方法,其特征在于,所述基于所述多个目标变换节点的参数,确定所述融合节点的参数,包括:
在所述多个目标变换节点属于转置类型的情况下,将所述多个目标变换节点中第一个目标变换节点的输入参数,确定为所述融合节点的输入参数,属于所述转置类型的目标变换节点用于对数据进行转置,所述目标变换节点的输入参数指示输入至所述目标变换节点的数据的格式;
将所述多个目标变换节点的转置参数进行融合,得到所述融合节点的转置参数,所述目标变换节点的转置参数指示对数据进行转置的格式;
将所述多个目标变换节点中最后一个目标变换节点的输出参数,确定为所述融合节点的输出参数,所述目标变换节点的输出参数指示所述目标变换节点输出的数据的格式。
5.根据权利要求1所述的方法,其特征在于,所述将所述计算图中的多个目标变换节点进行融合,用得到的融合节点替换所述计算图中所述多个目标变换节点,得到更新后的计算图之前,所述方法还包括:
从所述计算图包含的多个节点中,确定第一变换节点、第二变换节点及第三变换节点,所述第一变换节点、所述第二变换节点及所述第三变换节点为所述计算图中具有连接关系的数据变换节点,所述第一变换节点与所述第三变换节点属于相同的节点类型,且与所述第二变换节点属于不同的节点类型;
用第四变换节点及第五变换节点,等效替换所述计算图中的所述第一变换节点及所述第二变换节点,所述第四变换节点与所述第二变换节点属于相同的节点类型,所述第五变换节点与所述第一变换节点属于相同的节点类型,且与所述第三变换节点相邻。
6.根据权利要求5所述的方法,其特征在于,所述计算图包括每个节点的参数,所述节点的参数指示所述节点所表征的网络层的参数;所述用第四变换节点及第五变换节点,等效替换所述计算图中的所述第一变换节点及所述第二变换节点,包括:
基于所述第一变换节点的参数及所述第二变换节点的参数,确定所述第四变换节点的参数及所述第五变换节点的参数;
基于所述第四变换节点的参数及所述第五变换节点的参数,用所述第四变换节点及所述第五变换节点,替换所述计算图中的所述第一变换节点及所述第二变换节点。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第一变换节点的参数及所述第二变换节点的参数,确定所述第四变换节点的参数及所述第五变换节点的参数,包括:
在所述第一变换节点属于形状重塑类型、第二变换节点属于转置类型的情况下,基于所述第一变换节点的输入参数及输出参数,确定第一映射关系,所述第一变换节点的输入参数指示输入至所述第一变换节点的数据的格式,所述第一变换节点的输出参数指示所述第一变换节点输出的数据的格式,所述第一映射关系指示所述输入参数与所述输出参数中不同维度的数值之间的映射关系;
基于所述第一映射关系,对所述第二变换节点的转置参数进行更新,得到所述第四变换节点的转置参数,所述第二变换节点的转置参数指示对数据进行转置的格式;
将所述第一变换节点的输入参数,确定为所述第四变换节点的输入参数;将所述第四变换节点的输入参数及转置参数进行融合,得到所述第四变换节点的输出参数;
将所述第四变换节点的输出参数,确定为所述第五变换节点的输入参数,将所述第二变换节点的输出参数,确定为所述第五变换节点的输出参数。
8.根据权利要求7所述的方法,其特征在于,所述输入参数包括多个第一数值,所述输出参数包括多个第二数值,所述第一数值指示对应的维度包含的元素数量,所述第二数值指示对应的维度包含的元素数量;所述基于所述第一变换节点的输入参数及输出参数,确定第一映射关系,包括:
按照所述多个第一数值的顺序及所述多个第二数值的顺序,从所述输入参数及所述输出参数中确定多组数值,每组数值包括至少一个第一数值及至少一个第二数值,所述至少一个第一数值指示的元素数量与所述至少一个第二数值指示的元素数量相等;
将所述每组数值包含的数值在所述输入参数及所述输出参数中的维度序号,构成一组序号,将得到的多组序号构成所述第一映射关系。
9.根据权利要求6所述的方法,其特征在于,所述基于所述第一变换节点的参数及所述第二变换节点的参数,确定所述第四变换节点的参数及所述第五变换节点的参数,包括:
在所述第一变换节点属于转置类型、第二变换节点属于形状重塑类型的情况下,对所述第一变换节点的转置参数进行逆处理,得到逆转置参数,所述第一变换节点的转置参数指示对数据进行转置的格式;
基于所述第二变换节点的输入参数及输出参数,确定第二映射关系,所述第二变换节点的输入参数指示输入至所述第二变换节点的数据的格式,所述第二变换节点的输出参数指示所述第二变换节点输出的数据的格式,所述第二映射关系指示所述输入参数与所述输出参数中不同维度的数值之间的映射关系;
将所述第二映射关系与所述逆转置参数进行融合,得到所述第五变换节点的转置参数;将所述第二变换节点的输出参数,确定为所述第五变换节点的输出参数;基于所述第五变换节点的转置参数及输出参数,确定为所述第五变换节点的输入参数;
将所述第一变换节点的输入参数,确定为所述第四变换节点的输入参数;将所述第五变换节点的输入参数,确定为所述第四变换节点的输出参数。
10.根据权利要求9所述的方法,其特征在于,所述第二映射关系包括多组序号,每组序号包括第三维度序号和第四维度序号,所述第三维度序号为所述第二变换节点的输入参数中的维度序号,所述第四维度序号为所述第二变换节点的输出参数中的维度序号;所述将所述第二映射关系与所述逆转置参数进行融合,得到所述第五变换节点的转置参数,包括:
对于所述每组序号包括的第三维度序号和第四维度序号,用所述第四维度序号替换所述第二变换节点的转置参数中的所述第三维度序号,得到更新后的逆转置参数;
对所述更新后的逆转置参数进行逆处理,得到所述第五变换节点的转置参数。
11.根据权利要求6所述的方法,其特征在于,所述基于所述第一变换节点的参数及所述第二变换节点的参数,确定所述第四变换节点的参数及所述第五变换节点的参数,包括:
在所述第一变换节点属于转置类型、第二变换节点属于扩充类型的情况下,将所述第一变换节点的输入参数,确定为所述第四变换节点的输入参数,所述第一变换节点用于对数据进行转置,所述第二变换节点用于扩充输入至所述第二变换节点的数据,所述第一变换节点的输入参数指示输入至所述第一变换节点的数据的格式;
基于所述第一变换节点的转置参数,对所述第二变换节点的扩充参数进行更新,得到所述第四变换节点的扩充参数,所述第一变换节点的转置参数指示对数据进行转置的格式,所述第二变换节点的扩充参数指示扩充输入至所述第二变换节点的数据的情况;
基于所述第四变换节点的输入参数及扩充参数,确定所述第四变换节点的输出参数,所述第四变换节点的输出参数指示所述第四变换节点输出的数据的格式;
将所述第四变换节点的输出参数,确定为所述第五变换节点的输入参数;将所述第一变换节点的转置参数,确定为所述第五变换节点的转置参数;将所述第二变换节点的输出参数,确定为所述第五变换节点的输出参数。
12.根据权利要求6所述的方法,其特征在于,所述基于所述第一变换节点的参数及所述第二变换节点的参数,确定所述第四变换节点的参数及所述第五变换节点的参数,包括:
在所述第一变换节点属于形状重塑类型、第二变换节点属于扩充类型的情况下,基于所述第一变换节点的输入参数及输出参数,确定第一映射关系,所述第一变换节点的输入参数指示输入所述第一变换节点的数据的格式,所述第一变换节点的输出参数指示所述第一变换节点输出的数据的格式,所述第一映射关系指示所述输入参数与所述输出参数中不同维度的数值之间的映射关系;
基于所述第一映射关系,对所述第二变换节点的扩充参数进行更新,得到所述第四变换节点的扩充参数,所述第二变换节点的扩充参数指示扩充输入至所述第二变换节点的数据的情况,将所述第一变换节点的输入参数,确定为所述第四变换节点的输入参数;
基于所述第四变换节点的扩充参数及输入参数,确定所述第四变换节点的输出参数,所述第四变换节点的输出参数指示所述第四变换节点输出的数据的格式;
将所述第四变换节点的输出参数,确定为所述第五变换节点的输入参数;将所述第二变换节点的输出参数,确定为所述第五变换节点的输出参数。
13.一种模型更新装置,其特征在于,所述装置包括:
接收模块,用于接收模型更新请求,对所述模型更新请求指示的网络模型文件进行解析,得到计算图,所述计算图包括多个节点及所述多个节点之间的连接关系,所述节点用于表示网络模型包含的网络层,所述多个节点包括数据变换节点,所述数据变换节点用于变换数据的格式;
融合模块,用于将所述计算图中的多个目标变换节点进行融合,用得到的融合节点替换所述计算图中所述多个目标变换节点,得到更新后的计算图,所述多个目标变换节点为所述计算图中属于相同节点类型的数据变换节点,且所述多个目标变换节点之间具有连接关系;
返回模块,用于基于所述更新后的计算图,生成更新后的网络模型文件,返回所述更新后的网络模型文件。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如权利要求1至12任一权利要求所述的模型更新方法所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如权利要求1至12任一权利要求所述的模型更新方法所执行的操作。
CN202311059020.1A 2023-08-22 2023-08-22 模型更新方法、装置、计算机设备及存储介质 Active CN116820524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311059020.1A CN116820524B (zh) 2023-08-22 2023-08-22 模型更新方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311059020.1A CN116820524B (zh) 2023-08-22 2023-08-22 模型更新方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN116820524A true CN116820524A (zh) 2023-09-29
CN116820524B CN116820524B (zh) 2023-11-28

Family

ID=88126023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311059020.1A Active CN116820524B (zh) 2023-08-22 2023-08-22 模型更新方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN116820524B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659728A (zh) * 2019-09-24 2020-01-07 上海寒武纪信息科技有限公司 神经网络优化方法、装置、计算机设备及存储介质
CN114692860A (zh) * 2020-12-28 2022-07-01 华为技术有限公司 一种计算图的节点融合方法及设备
CN114841327A (zh) * 2022-05-27 2022-08-02 北京字节跳动网络技术有限公司 计算图的处理方法、装置、可读介质及电子设备
CN114895920A (zh) * 2022-05-31 2022-08-12 苏州浪潮智能科技有限公司 Transformer网络的算子融合方法及装置
CN115659281A (zh) * 2022-11-16 2023-01-31 之江实验室 一种自适应加速算子融合的方法及装置
CN115956247A (zh) * 2020-08-26 2023-04-11 华为技术有限公司 神经网络模型优化方法及装置
CN116049691A (zh) * 2023-01-29 2023-05-02 维沃移动通信有限公司 模型转换方法、装置、电子设备和存储介质
WO2023093623A1 (zh) * 2021-11-29 2023-06-01 中科寒武纪科技股份有限公司 计算图的优化方法、数据处理方法及相关产品
CN116306812A (zh) * 2023-03-06 2023-06-23 南京大学 用于深度学习模型解析、优化和部署的后端可扩展框架及方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659728A (zh) * 2019-09-24 2020-01-07 上海寒武纪信息科技有限公司 神经网络优化方法、装置、计算机设备及存储介质
CN115956247A (zh) * 2020-08-26 2023-04-11 华为技术有限公司 神经网络模型优化方法及装置
CN114692860A (zh) * 2020-12-28 2022-07-01 华为技术有限公司 一种计算图的节点融合方法及设备
WO2023093623A1 (zh) * 2021-11-29 2023-06-01 中科寒武纪科技股份有限公司 计算图的优化方法、数据处理方法及相关产品
CN114841327A (zh) * 2022-05-27 2022-08-02 北京字节跳动网络技术有限公司 计算图的处理方法、装置、可读介质及电子设备
CN114895920A (zh) * 2022-05-31 2022-08-12 苏州浪潮智能科技有限公司 Transformer网络的算子融合方法及装置
CN115659281A (zh) * 2022-11-16 2023-01-31 之江实验室 一种自适应加速算子融合的方法及装置
CN116049691A (zh) * 2023-01-29 2023-05-02 维沃移动通信有限公司 模型转换方法、装置、电子设备和存储介质
CN116306812A (zh) * 2023-03-06 2023-06-23 南京大学 用于深度学习模型解析、优化和部署的后端可扩展框架及方法

Also Published As

Publication number Publication date
CN116820524B (zh) 2023-11-28

Similar Documents

Publication Publication Date Title
CN111178507B (zh) 图谱卷积神经网络数据处理方法及装置
CN112989767B (zh) 医学词语标注方法、医学词语映射方法、装置及设备
CN116842307B (zh) 数据处理方法、装置、设备、芯片及存储介质
CN112990053B (zh) 图像处理方法、装置、设备及存储介质
CN111324699A (zh) 语义匹配的方法、装置、电子设备及存储介质
CN113570030A (zh) 数据处理方法、装置、设备以及存储介质
CN114586055A (zh) 具有微结构掩码的多尺度因子图像超分辨率
CN112463160A (zh) 编译方法、装置、电子设备和存储介质
CN115115724A (zh) 图像处理方法、装置、计算机设备及存储介质
CN113763931B (zh) 波形特征提取方法、装置、计算机设备及存储介质
CN110362698A (zh) 一种图片信息生成方法、装置、移动终端及存储介质
CN116820524B (zh) 模型更新方法、装置、计算机设备及存储介质
CN116188724A (zh) 动画渲染的方法、装置、设备及存储介质
CN116883708A (zh) 图像分类方法、装置、电子设备及存储介质
CN114419517A (zh) 视频帧处理方法、装置、计算机设备及存储介质
CN113657584A (zh) 神经网络模型计算方法、数据处理方法、电子设备及介质
CN114282543A (zh) 文本数据处理方法、装置、计算机设备及存储介质
CN113822084A (zh) 语句翻译方法、装置、计算机设备及存储介质
CN114510911B (zh) 文本处理方法、装置、计算机设备及存储介质
CN116980277B (zh) 数据处理方法、装置、计算机设备及存储介质
CN116909626B (zh) 数据处理方法、处理器及计算机设备
CN116959606A (zh) 生成物预测方法、装置、计算机设备及存储介质
CN116781484B (zh) 数据处理方法、装置、计算机设备及存储介质
CN117349222A (zh) 处理器、数据处理方法及计算机设备
CN114510911A (zh) 文本处理方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40094505

Country of ref document: HK