CN114997397B - 一种模型转换方法、装置、终端设备及存储介质 - Google Patents

一种模型转换方法、装置、终端设备及存储介质 Download PDF

Info

Publication number
CN114997397B
CN114997397B CN202210913699.5A CN202210913699A CN114997397B CN 114997397 B CN114997397 B CN 114997397B CN 202210913699 A CN202210913699 A CN 202210913699A CN 114997397 B CN114997397 B CN 114997397B
Authority
CN
China
Prior art keywords
model
operator
tensorflow
basic
basic operator
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.)
Active
Application number
CN202210913699.5A
Other languages
English (en)
Other versions
CN114997397A (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.)
Health Hope (beijing) Technology Co ltd
Original Assignee
Health Hope (beijing) Technology 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 Health Hope (beijing) Technology Co ltd filed Critical Health Hope (beijing) Technology Co ltd
Priority to CN202210913699.5A priority Critical patent/CN114997397B/zh
Publication of CN114997397A publication Critical patent/CN114997397A/zh
Application granted granted Critical
Publication of CN114997397B publication Critical patent/CN114997397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biomedical Technology (AREA)
  • Image Processing (AREA)

Abstract

本发明涉及人工智能技术领域,提供了一种模型转换方法、装置、终端设备及存储介质,该方法包括获取预先训练得到的Pytorch模型的第一基础算子,该第一基础算子包含权重矩阵;根据第一基础算子,构建与Pytorch模型相对应的Tensorflow版模型,并对Tensorflow版模型的第二基础算子进行修改;根据第一基础算子和第二基础算子的匹配关系,将权重矩阵迁移至Tensorflow版模型,得到Tensorflow模型。采用本发明的模型转换方法,不需借助中间件,即可实现Pytorch模型和Tensorflow模型的无损转换,提高了转换效率。

Description

一种模型转换方法、装置、终端设备及存储介质
技术领域
本发明涉及人工智能技术领域,具体涉及一种模型转换方法、装置、终端设备及存储介质。
背景技术
作为深度学习框架,Pytorch框架具有比Tensorflow框架学习成本低、可读性强以及训练方便等优势,但Tensorflow框架适用范围更为广泛。因此,为了便于训练和模型构建,需要使用Pytorch框架,而为了将模型部署在更多设备上,需要使用Tensorflow框架。
例如,公开号为CN114327525A的中国专利申请,提出一种深度学习模型转换部署方法,使用反卷积函数对待处理模型文件进行上采样操作,使用归一化处理得到中间文件并使用激活函数对其进行修正,解决从Pytorch模型转换至TensorRT模型的问题。
目前,相关技术通过ONNX(Open Neural Network Exchange,开放神经网络交换)等中间件来进行Pytorch框架和Tensorflow框架的转换,操作繁琐,并且版本之间不匹配容易造成转换失败,同时增加性能损失。
发明内容
鉴于相关技术中的上述缺陷或不足,期望提供一种模型转换方法、装置、终端设备及存储介质,能够直接进行模型无损转换,不需借助中间件,从而提高转换效率。
第一方面,本发明提供一种模型转换方法,该方法包括:
获取预先训练得到的Pytorch模型的第一基础算子,该第一基础算子包含权重矩阵;
根据第一基础算子,构建与Pytorch模型相对应的Tensorflow版模型,并对Tensorflow版模型的第二基础算子进行修改;
根据第一基础算子和第二基础算子的匹配关系,将权重矩阵迁移至Tensorflow版模型,得到Tensorflow模型。
可选的,在本发明的一些实施例中,第一基础算子和第二基础算子为Conv算子,对Tensorflow版模型的第二基础算子进行修改,包括:
计算第一基础算子的Padding操作对应的填补值;
若该填补值为非整数,则在第二基础算子之前添加Padding算子,并取消第二基础算子的Padding操作。
可选的,在本发明的一些实施例中,第一基础算子的Padding操作对应的填补值通过如下方式计算得到:
Figure 100002_DEST_PATH_IMAGE002
其中,
Figure 100002_DEST_PATH_IMAGE004
表示填补值,
Figure 100002_DEST_PATH_IMAGE006
表示输出图像大小,
Figure 100002_DEST_PATH_IMAGE008
表示输入图像大小,
Figure 100002_DEST_PATH_IMAGE010
表示卷积核大小,
Figure 100002_DEST_PATH_IMAGE012
表示卷积核的移动步长。
可选的,在本发明的一些实施例中,对Tensorflow版模型的第二基础算子进行修改,还包括:
检测第一基础算子的groups参数与input_channel参数是否相等;
若groups参数与input_channel参数相等,则将第二基础算子替换为Pytorch模型中的DepthwiseConv2d算子。
可选的,在本发明的一些实施例中,第一基础算子和第二基础算子为双线性上采样算子,对Tensorflow版模型的第二基础算子进行修改,还包括:
获取输入图像中每个像素点在输出图像的像素网格中的对应位置;
根据上述对应位置,分别计算像素网格中待填补像素点的像素值,并输出上采样后的图像。
可选的,在本发明的一些实施例中,在将权重矩阵迁移至Tensorflow版模型之前,该模型转换方法还包括对权重矩阵进行维度转换。
可选的,在本发明的一些实施例中,根据第一基础算子,构建与Pytorch模型相对应的Tensorflow版模型,包括:
基于第一基础算子在Pytorch模型中的位置顺序,生成基础算子列表;
依次获取基础算子列表中各第一基础算子的类别和属性,并在Tensorflow框架内排布与各第一基础算子对应的第二基础算子,得到Tensorflow版模型。
第二方面,本发明提供一种模型转换装置,该装置包括:
获取模块,配置用于获取预先训练得到的Pytorch模型的第一基础算子,该第一基础算子包含权重矩阵;
构建模块,配置用于根据第一基础算子,构建与Pytorch模型相对应的Tensorflow版模型,并对Tensorflow版模型的第二基础算子进行修改;
迁移模块,配置用于根据第一基础算子和第二基础算子的匹配关系,将权重矩阵迁移至Tensorflow版模型,得到Tensorflow模型。
第三方面,本发明提供一种终端设备,该终端设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,上述指令、程序、代码集或指令集由处理器加载并执行以实现第一方面中所描述的模型转换方法的各步骤。
第四方面,本发明提供一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现第一方面中所描述的模型转换方法的各步骤。
从以上技术方案可以看出,本发明技术方案具有以下优点:
本发明提供了一种模型转换方法、装置、终端设备及存储介质,以预先训练得到的Pytorch模型的第一基础算子为基准,构建与Pytorch模型相对应的Tensorflow版模型,并对Tensorflow版模型的第二基础算子进行修改,从而根据两个基础算子之间的匹配关系,将权重矩阵迁移至Tensorflow版模型,得到Tensorflow模型,由此不需借助中间件,即可实现Pytorch模型和Tensorflow模型的无损转换,同时在构建模型时没有多出算子,不影响推理速度,提高了转换效率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例提供的一种模型转换方法的流程示意图;
图2为本发明实施例提供的一种Pytorch模型结构示意图;
图3为本发明实施例提供的一种卷积操作示意图;
图4为本发明实施例提供的一种填补操作示意图;
图5为本发明实施例提供的另一种填补操作示意图;
图6为本发明实施例提供的一种网格对齐示意图;
图7为本发明实施例提供的一种双线性上采样的示意图;
图8为本发明实施例提供的一种模型转换装置的结构示意图;
图9为本发明实施例提供的另一种模型转换装置的结构示意图;
图10为本发明实施例提供的又一种模型转换装置的结构示意图;
图11为本发明实施例提供的再一种模型转换装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明技术方案,下面将结合本发明实施例中的附图,对实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”“第二”“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便描述的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚的列出的那些步骤或模块,而是可包括没有清楚的列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
需要说明的是,在不冲突的情况下,各实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了便于理解和说明,下面通过图1至图11详细的阐述本发明实施例提供的模型转换方法、装置、终端设备及存储介质。
请参考图1,其为本发明实施例提供的一种模型转换方法的流程示意图,该模型转换方法包括以下步骤:
S101,获取预先训练得到的Pytorch模型的第一基础算子,该第一基础算子包含权重矩阵。
需要说明的是,Pytorch模型由Pytorch框架中的基础算子组成,比如Pytorch模型结构如图2所示,该Pytorch模型包括模块1和模块2,而模块1包括基础算子1和基础算子2等,模块2包括基础算子1和基础算子2等。
示例性的,本发明实施例可以通过Pytorch框架的自带接口来获得Pytorch模型的第一基础算子,比如该第一基础算子包括模块1的基础算子1和基础算子2,以及模块2的基础算子1和基础算子2。
S102,根据第一基础算子,构建与Pytorch模型相对应的Tensorflow版模型,并对Tensorflow版模型的第二基础算子进行修改。
示例性的,本发明实施例可以首先基于第一基础算子在Pytorch模型中的位置顺序,生成基础算子列表,进而依次获取该基础算子列表中各第一基础算子的类别和属性,并在Tensorflow框架内排布与各第一基础算子对应的第二基础算子,得到Tensorflow版模型,其中第二基础算子由Tensorflow框架提供。
优选的,本发明的一些实施例中第一基础算子和第二基础算子为Conv(卷积)算子,由于卷积操作是将一个n×n的矩阵(即卷积核)作为滑窗,请参考图3所示在图片的像素网格上移动,将计算结果作为新图像的像素,而输出图像的尺寸会因卷积核的大小和步长发生改变,此时输出图像的计算公式如式(1),即:
Figure DEST_PATH_IMAGE014
其中,
Figure DEST_PATH_IMAGE016
表示输出图像大小,
Figure 521328DEST_PATH_IMAGE008
表示输入图像大小,
Figure 172889DEST_PATH_IMAGE010
表示卷积核大小,
Figure 483785DEST_PATH_IMAGE012
表示卷积核的移动步长。
比如输入图像为[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],输出图像为[0.37,0.37,0.37,0.37]。
为了保证输出图像尺寸与输入图像一致,需要对图像进行填补,即Padding操作,加入Padding操作后的计算公式如式(2),即:
Figure DEST_PATH_IMAGE018
其中,
Figure 738049DEST_PATH_IMAGE004
表示Padding操作对应的填补值,即需要对输入图像进行填补的像素值。
进一步的,当
Figure 286842DEST_PATH_IMAGE004
为整数时,例如图4所示
Figure DEST_PATH_IMAGE020
即表示需要对输入图像的***填充一圈;
比如Padding操作之前输入图像为:
[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]];
Padding操作之后输入图像为:
[[0,0,0,0,0,0],[0,1,1,1,1,0],[0,1,1,1,1,0],[0,1,1,1,1,0],[0,1,1,1,1,0],[0,0,0,0,0,0]]。
但是当
Figure 437200DEST_PATH_IMAGE004
为非整数,即
Figure DEST_PATH_IMAGE022
时,Pytorch模型和Tensorflow模型会进行不同的Padding操作,例如图5所示Pytorch模型会在图像的上方和左边填充半圈,而Tensorflow模型会在图像的右边和下方填充半圈;
比如,Pytorch模型对应:
[[0,0,0,0,0],[0,1,1,1,1],[0,1,1,1,1],[0,1,1,1,1],[0,1,1,1,1]];
Tensorflow模型对应:
[[1,1,1,1,0],[1,1,1,1,0],[1,1,1,1,0],[1,1,1,1,0],[0,0,0,0,0]]。
因此,为了保证Tensorflow模型和Pytorch模型输入输出一致,本发明实施例对Pytorch模型的Conv算子进行判断,即计算第一基础算子的Padding操作对应的填补值
Figure 471278DEST_PATH_IMAGE004
,如果填补值
Figure 201336DEST_PATH_IMAGE004
为非整数,则在第二基础算子之前添加Padding算子,以模拟Pytorch模型的Padding操作,并取消第二基础算子的Padding操作,而如果填补值
Figure 666953DEST_PATH_IMAGE004
为整数,则不对第二基础算子进行改变。
其中,第一基础算子的Padding操作对应的填补值
Figure 394737DEST_PATH_IMAGE004
通过式(2)的变形,即式(3)得到:
Figure DEST_PATH_IMAGE024
优选的,本发明的一些实施例由于Pytorch模型的DwConv(深度可分离卷积)算子和Conv算子是同一个算子,而Tensorflow模型的DwConv算子和Conv算子是两个单独的算子。因此,本发明实施例通过检测第一基础算子的groups参数与input_channel参数是否相等来进行DwConv算子和Conv算子的区分,并在groups参数与input_channel参数相等的情况中,将第二基础算子替换为Pytorch模型中的DepthwiseConv2d算子,此时第二基础算子为Conv算子。
优选的,本发明的一些实施例中第一基础算子和第二基础算子为UpsamplingBilinear2d(双线性上采样)算子,该双线性上采样算子用于对图像进行放大。由于Pytorch模型的双线性上采样默认开启角对齐(align_corners),而Tensorflow模型默认关闭角对齐,且角对齐操作在部分终端设备上无法使用,所以需要手动计算。
因此,本发明实施例首先对输入图像进行网格对齐,例如图6所示采用align_corners=True方法将输入图像中每个像素点放在输出图像的像素网格中并获取对应位置,然后根据该对应位置,分别计算像素网格中待填补像素点的像素值,从而输出上采样后的图像。例如图7所示,其为本发明实施例提供的一种双线性上采样的示意图,其中Q11、Q12、Q21和Q22为已知像素值,R1的坐标为(xy 1),R2的坐标为(xy 2),而为了得到P点的像素值,可通过式(4)至式(6)进行计算,即:
Figure DEST_PATH_IMAGE026
Figure DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE030
比如,输入图像为[[1,2,3],[4,5,6],[7,8,9]],输出图像为[[1.0, 1.4, 1.8,2.2, 2.6, 3.0],[2.2, 2.6, 3.0, 3.4, 3.8, 4.2],[3.4, 3.8, 4.2, 4.6, 5.0, 5.4],[4.6, 5.0, 5.4, 5.8, 6.2, 6.6],[5.8, 6.2, 6.6, 7.0, 7.4, 7.8],[7.0, 7.4, 7.8,8.2, 8.6, 9.0]]。
S103,根据第一基础算子和第二基础算子的匹配关系,将权重矩阵迁移至Tensorflow版模型,得到Tensorflow模型。
示例性的,本发明实施例可以根据两个模型中基础算子的顺序、权重类型和权重矩阵大小进行匹配,生成算子匹配索引列表,然后根据该算子匹配索引列表将权重矩阵迁移至Tensorflow版模型。
优选的,本发明的一些实施例由于Pytorch框架下图片输入模型的格式是[N,C,H,W],即[图片数量,图片通道数量,图片高度,图片宽度],而Tensorflow框架下图片的输入格式为[N,H,W,C],考虑到输入格式不同,因此在将权重矩阵迁移至Tensorflow版模型之前,本发明实施例还对权重矩阵进行维度转换。比如,输入NCHW为[[[[1,2],[3,4]]]],输出NHWC为[[[[1],[2],[3],[4]]]]。另外,在Pytorch框架中Conv算子的权重(weight)和偏移(bias)是分开存放的,而在Tensorflow框架中权重和偏移放在一个列表里,因此迁移变量时首先获取Pytorch模型Conv算子的权重和偏移,然后经过维度转换将权重和偏移合并放入Tensorflow模型中。
需要说明的是,本发明实施例可以将Tensorflow模型保存为*.h5格式。之后,读取保存的Tensorflow模型,并使用值相同的假数据对该Tensorflow模型进行测试,得到模型的输出偏差小于1e-4,意味着实现了无损转换。
本发明实施例提供了一种模型转换方法,以预先训练得到的Pytorch模型的第一基础算子为基准,构建与Pytorch模型相对应的Tensorflow版模型,并对Tensorflow版模型的第二基础算子进行修改,从而根据两个基础算子之间的匹配关系,将权重矩阵迁移至Tensorflow版模型,得到Tensorflow模型,由此不需借助中间件,即可实现Pytorch模型和Tensorflow模型的无损转换,同时在构建模型时没有多出算子,不影响推理速度,提高了转换效率。
基于前述实施例,本发明实施例提供一种模型转换装置。该模型转换装置100可以应用于图1至图7对应实施例的模型转换方法中。请参考图8,该模型转换装置100包括:
获取模块101,配置用于获取预先训练得到的Pytorch模型的第一基础算子,该第一基础算子包含权重矩阵;
构建模块102,配置用于根据第一基础算子,构建与Pytorch模型相对应的Tensorflow版模型,并对Tensorflow版模型的第二基础算子进行修改;
迁移模块103,配置用于根据第一基础算子和第二基础算子的匹配关系,将权重矩阵迁移至Tensorflow版模型,得到Tensorflow模型。
优选的,如图9所示,本发明的一些实施例中第一基础算子和第二基础算子为Conv算子,构建模块102包括:
计算单元1021,配置用于计算第一基础算子的Padding操作对应的填补值;
添加单元1022,配置用于若填补值为非整数,则在第二基础算子之前添加Padding算子,并取消第二基础算子的Padding操作。
优选的,本发明的一些实施例中第一基础算子的Padding操作对应的填补值通过如下方式计算得到:
Figure DEST_PATH_IMAGE002A
其中,
Figure 430958DEST_PATH_IMAGE004
表示填补值,
Figure 964707DEST_PATH_IMAGE006
表示输出图像大小,
Figure 19251DEST_PATH_IMAGE008
表示输入图像大小,
Figure 183516DEST_PATH_IMAGE010
表示卷积核大小,
Figure 956300DEST_PATH_IMAGE012
表示卷积核的移动步长。
优选的,如图10所示,本发明的一些实施例中构建模块102还包括:
检测单元1023,配置用于检测第一基础算子的groups参数与input_channel参数是否相等;
替换单元1024,配置用于若groups参数与input_channel参数相等,则将第二基础算子替换为Pytorch模型中的DepthwiseConv2d算子。
优选的,如图11所示,本发明的一些实施例中第一基础算子和第二基础算子为双线性上采样算子,构建模块102还包括:
获取单元1025,配置用于获取输入图像中每个像素点在输出图像的像素网格中的对应位置;
输出单元1026,配置用于根据对应位置,分别计算像素网格中待填补像素点的像素值,并输出上采样后的图像。
优选的,本发明的一些实施例中迁移模块103还配置用于在将权重矩阵迁移至Tensorflow版模型之前,对权重矩阵进行维度转换。
优选的,本发明的一些实施例中构建模块102还配置用于基于第一基础算子在Pytorch模型中的位置顺序,生成基础算子列表;以及,
依次获取基础算子列表中各第一基础算子的类别和属性,并在Tensorflow框架内排布与各第一基础算子对应的第二基础算子,得到Tensorflow版模型。
本发明实施例提供了一种模型转换装置,该模型转换装置中获取模块能够获取预先训练得到的Pytorch模型的第一基础算子,该第一基础算子包含权重矩阵,构建模块能够以第一基础算子为基准,构建与Pytorch模型相对应的Tensorflow版模型,并对Tensorflow版模型的第二基础算子进行修改,从而迁移模块能够根据两个基础算子之间的匹配关系,将权重矩阵迁移至Tensorflow版模型,得到Tensorflow模型,由此不需借助中间件,即可实现Pytorch模型和Tensorflow模型的无损转换,同时在构建模型时没有多出算子,不影响推理速度,提高了转换效率。
基于前述实施例,本发明实施例提供一种终端设备,该终端设备包括处理器和存储器。存储器中存储有至少一条指令、至少一段程序、代码集或指令集,指令、程序、代码集或指令集由处理器加载并执行以实现图1至图7对应实施例的模型转换方法的步骤。
作为另一方面,本发明实施例提供一种计算机可读存储介质,用于存储程序代码,该程序代码用于执行前述图1至图7对应实施例的模型转换方法中的任意一种实施方式。
所属领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的***,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。而集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例模型转换方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种模型转换方法,其特征在于,所述模型转换方法包括:
获取预先训练得到的Pytorch模型的第一基础算子,所述第一基础算子包含权重矩阵;
根据所述第一基础算子,构建与所述Pytorch模型相对应的Tensorflow版模型,并对所述Tensorflow版模型的第二基础算子进行修改;所述第一基础算子和所述第二基础算子为Conv算子,其中,对所述Tensorflow版模型的第二基础算子进行修改,包括:计算所述第一基础算子的Padding操作对应的填补值;若所述填补值为非整数,则在所述第二基础算子之前添加Padding算子,并取消所述第二基础算子的Padding操作;
根据所述第一基础算子和所述第二基础算子的匹配关系,将所述权重矩阵迁移至所述Tensorflow版模型,得到Tensorflow模型。
2.根据权利要求1所述的模型转换方法,其特征在于,所述第一基础算子的Padding操作对应的填补值通过如下方式计算得到:
Figure DEST_PATH_IMAGE002
其中,
Figure DEST_PATH_IMAGE004
表示填补值,
Figure DEST_PATH_IMAGE006
表示输出图像大小,
Figure DEST_PATH_IMAGE008
表示输入图像大小,
Figure DEST_PATH_IMAGE010
表示卷积核大小,
Figure DEST_PATH_IMAGE012
表示卷积核的移动步长。
3.根据权利要求1所述的模型转换方法,其特征在于,所述对所述Tensorflow版模型的第二基础算子进行修改,还包括:
检测所述第一基础算子的groups参数与input_channel参数是否相等;
若所述groups参数与所述input_channel参数相等,则将所述第二基础算子替换为所述Pytorch模型中的DepthwiseConv2d算子。
4.根据权利要求1所述的模型转换方法,其特征在于,所述第一基础算子和所述第二基础算子为双线性上采样算子,所述对所述Tensorflow版模型的第二基础算子进行修改,还包括:
获取输入图像中每个像素点在输出图像的像素网格中的对应位置;
根据所述对应位置,分别计算所述像素网格中待填补像素点的像素值,并输出上采样后的图像。
5.根据权利要求1所述的模型转换方法,其特征在于,在将所述权重矩阵迁移至所述Tensorflow版模型之前,还包括对所述权重矩阵进行维度转换。
6.根据权利要求1至5中任意一项所述的模型转换方法,其特征在于,所述根据所述第一基础算子,构建与所述Pytorch模型相对应的Tensorflow版模型,包括:
基于所述第一基础算子在所述Pytorch模型中的位置顺序,生成基础算子列表;
依次获取所述基础算子列表中各所述第一基础算子的类别和属性,并在Tensorflow框架内排布与各所述第一基础算子对应的所述第二基础算子,得到所述Tensorflow版模型。
7.一种模型转换装置,其特征在于,所述模型转换装置包括:
获取模块,配置用于获取预先训练得到的Pytorch模型的第一基础算子,所述第一基础算子包含权重矩阵;
构建模块,配置用于根据所述第一基础算子,构建与所述Pytorch模型相对应的Tensorflow版模型,并对所述Tensorflow版模型的第二基础算子进行修改;所述第一基础算子和所述第二基础算子为Conv算子,其中,对所述Tensorflow版模型的第二基础算子进行修改,包括:计算所述第一基础算子的Padding操作对应的填补值;若所述填补值为非整数,则在所述第二基础算子之前添加Padding算子,并取消所述第二基础算子的Padding操作;
迁移模块,配置用于根据所述第一基础算子和所述第二基础算子的匹配关系,将所述权重矩阵迁移至所述Tensorflow版模型,得到Tensorflow模型。
8.一种终端设备,其特征在于,所述终端设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1至6中任意一项所述的模型转换方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6中任意一项所述的模型转换方法的步骤。
CN202210913699.5A 2022-08-01 2022-08-01 一种模型转换方法、装置、终端设备及存储介质 Active CN114997397B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210913699.5A CN114997397B (zh) 2022-08-01 2022-08-01 一种模型转换方法、装置、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210913699.5A CN114997397B (zh) 2022-08-01 2022-08-01 一种模型转换方法、装置、终端设备及存储介质

Publications (2)

Publication Number Publication Date
CN114997397A CN114997397A (zh) 2022-09-02
CN114997397B true CN114997397B (zh) 2022-10-21

Family

ID=83022380

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210913699.5A Active CN114997397B (zh) 2022-08-01 2022-08-01 一种模型转换方法、装置、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN114997397B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108764487A (zh) * 2018-05-29 2018-11-06 北京百度网讯科技有限公司 用于生成模型的方法和装置、用于识别信息的方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101551903A (zh) * 2009-05-11 2009-10-07 天津大学 步态识别中的超分辨率图像恢复方法
CN107808664B (zh) * 2016-08-30 2021-07-30 富士通株式会社 基于稀疏神经网络的语音识别方法、语音识别装置和电子设备
CN111291882A (zh) * 2018-12-06 2020-06-16 北京百度网讯科技有限公司 一种模型转换的方法、装置、设备和计算机存储介质
CN111753948B (zh) * 2020-06-23 2022-11-01 展讯通信(上海)有限公司 模型处理方法及相关设备
CN112541159A (zh) * 2020-09-30 2021-03-23 华为技术有限公司 一种模型训练方法及相关设备
EP4258173A4 (en) * 2020-12-31 2024-03-06 Huawei Technologies Co., Ltd. PROCESSING METHOD AND APPARATUS FOR MODEL
CN114491399A (zh) * 2021-12-30 2022-05-13 深圳云天励飞技术股份有限公司 数据处理方法、装置、终端设备及计算机可读存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108764487A (zh) * 2018-05-29 2018-11-06 北京百度网讯科技有限公司 用于生成模型的方法和装置、用于识别信息的方法和装置

Also Published As

Publication number Publication date
CN114997397A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
CN111898701B (zh) 模型训练、帧图像生成、插帧方法、装置、设备及介质
CN109508681B (zh) 生成人体关键点检测模型的方法和装置
EP4064189A1 (en) Image processing method, apparatus and device, and storage medium
CN111369440B (zh) 模型训练、图像超分辨处理方法、装置、终端及存储介质
JP6961139B2 (ja) 知覚的な縮小方法を用いて画像を縮小するための画像処理システム
Wohlberg et al. An iteratively reweighted norm algorithm for minimization of total variation functionals
CN109146788A (zh) 基于深度学习的超分辨率图像重建方法和装置
RU2716322C2 (ru) Репродуцирующая аугментация данных изображения
CN109872376A (zh) 一种重建动态磁共振图像的方法、装置及可读存储介质
CN114387317B (zh) Ct图像和mri三维图像的配准方法、装置
CN110335330A (zh) 图像模拟生成方法及其***、深度学习算法训练方法及电子设备
CN109871841A (zh) 图像处理方法、装置、终端及存储介质
CN114997397B (zh) 一种模型转换方法、装置、终端设备及存储介质
CN106780333A (zh) 一种图像超分辨率重建方法
WO2016098323A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
CN111068314B (zh) 一种基于Unity的NGUI资源渲染处理方法及装置
CN113706400A (zh) 图像矫正方法、装置、显微镜图像的矫正方法及电子设备
US20230060988A1 (en) Image processing device and method
CN115170418A (zh) 符合退化的低秩高维图像填充模型及其填充方法与***
CN116342385A (zh) 文本图像超分辨率网络的训练方法、装置以及存储介质
CN115937358A (zh) 图像处理方法及其装置、电子设备和存储介质
US20240185570A1 (en) Undecimated image processing method and device
CN109002802A (zh) 基于自适应鲁棒主成分分析的视频前景分离方法和***
CN113706415A (zh) 训练数据生成、对抗样本生成、图像色彩修正方法及装置
CN114307143A (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