CN114817117B - 协议兼容方法、电子设备及计算机可读存储装置 - Google Patents
协议兼容方法、电子设备及计算机可读存储装置 Download PDFInfo
- Publication number
- CN114817117B CN114817117B CN202210718549.9A CN202210718549A CN114817117B CN 114817117 B CN114817117 B CN 114817117B CN 202210718549 A CN202210718549 A CN 202210718549A CN 114817117 B CN114817117 B CN 114817117B
- Authority
- CN
- China
- Prior art keywords
- protocol
- parameter
- original
- type
- target
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种协议兼容方法、电子设备及计算机可读存储装置。该方法包括:获取深度学习框架网络层所支持的原协议文本,基于原协议文本进行解析,获取原协议参数;基于原协议参数所支持的功能类型,确定筛选条件;利用筛选条件在协议集合筛选出满足原协议参数的功能类型的目标协议;利用目标协议兼容原协议参数。通过上述方式,本申请能够实现数据在不同协议之间的传输。
Description
技术领域
本申请涉及数据传输领域,特别是涉及一种协议兼容方法、电子设备及计算机可读存储装置。
背景技术
在深度学***台中,可接收到各个用户发送的数据模块,而其他用户如果想要使用该数据模块,就需要本地使用的协议与该数据模块依照的协议相同,否则无法使用。
发明内容
本申请主要目的是提供一种协议兼容方法、电子设备及计算机可读存储装置,能够解决不同协议之间数据传输的技术问题。
为解决上述技术问题,本申请采用的第一个技术方案是:提供一种协议兼容方法。该方法包括:获取深度学习框架网络层所支持的原协议文本,基于原协议文本进行解析,获取原协议参数;基于原协议参数所支持的功能类型,确定筛选条件;利用筛选条件在协议集合筛选出满足原协议参数的功能类型的目标协议;利用目标协议兼容原协议参数。
为解决上述技术问题,本申请采用的第二个技术方案是:提供一种电子设备。该电子设备包括存储器和处理器,存储器用于存储程序数据,程序数据能够被处理器执行,以实现如第一个技术方案中所述的方法。
为解决上述技术问题,本申请采用的第三个技术方案是:提供一种计算机可读存储装置。该计算机可读存储装置存储有程序数据,能够被处理器执行,以实现如第一个技术方案中所述的方法。
本申请的有益效果是:本申请通过获取原协议文本,解析得到原协议包含的各个参数以及参数对应支持的功能,在根据原协议支持的功能确定筛选条件对协议集合中的协议进行筛选,得到能够进行兼容转换的目标协议。基于目标协议对原协议文本进行转换以实现兼容。如果目标输入场景能够支持目标协议,则就能够将兼容后的原协议文本输出至目标输入场景以实现不同协议之间数据的传输。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请协议兼容方法第一实施例的流程示意图;
图2是本申请协议兼容方法第二实施例的流程示意图;
图3是本申请协议兼容方法第三实施例的流程示意图;
图4是本申请协议兼容方法第四实施例的流程示意图;
图5是本申请协议兼容方法第五实施例的流程示意图;
图6是本申请协议兼容方法第六实施例的流程示意图;
图7是本申请协议兼容方法第七实施例的流程示意图;
图8是本申请协议兼容方法第八实施例的流程示意图;
图9是本申请协议兼容方法第九实施例的流程示意图;
图10是本申请电子设备一实施例的结构示意图;
图11是本申请计算机可读存储装置一实施例的结构示意图;
图12是本申请电子装置一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
介绍本申请的技术方案之前,先对一些相关技术进行简单介绍。
Caffe框架,全称Convolutional Architecture for Fast Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。由伯克利人工智能研究小组和伯克利视觉和学习中心开发。Caffe支持多种类型的深度学习架构,面向图像分类和图像分割,还支持CNN、RCNN、LSTM和全连接神经网络设计。
Caffe中层协议的描述是基于一个叫caffe.proto文件,这个proto文件是基于谷歌的开源protobuf工具进行描述的。Caffe模型有两个文件,一个是caffemodel,一个是prototxt,都是基于caffe.proto来解析。以caffe中的上采样层协议为例,基于不同的环境,用户可能设计出不同版本的上采样层协议,协议之间存在区别。当基于某个版本的上采样层的数据(其依照的是该版本的caffe.proto进行解析使用),输入至另一版本的上采样层协议中,此时就会使用另一上采样层协议的caffe.proto对其进行解析,则就可能会出现解析失败,数据错误。
在AI开放平台中,用户可以上传基于caffe框架进行描述的数据功能模块,也可以下载其他用户上传的基于caffe框架进行描述的数据功能模块。用户使用caffe框架完成数据功能模块时,其在对应的层级结构中需使用相应的层级协议进行数据文本输入。假如用户想使用其他用户基于caffe框架的数据功能模块,但是,下载之后发现其基于的框架层级结构中使用的层级协议与用户本地使用的对应层级结构中的层级协议不一致,那么该数据功能模块在本地就无法解析,无法被使用。为了能够使用从AI开放平台中下载的基于不同层级协议描述的数据功能模块,使得数据能够在不同版本的协议之间进行传输使用,本申请提出了以下实施例。
参照图1,图1为本申请协议兼容方法第一实施例的流程示意图。其包括以下步骤:
S11:获取深度学习框架网络层所支持的原协议文本,基于原协议文本进行解析,获取原协议参数。
该方法是为了实现深度学***台的学***台中继续使用,需对其进行兼容。在获取到原协议文本后,对原协议文本进行解析。进行兼容之前,先对原协议文本进行分解,剔除无关的语句,仅留下能够代表支持多种功能的各个参数。
S12:基于原协议参数所支持的功能类型,确定筛选条件。
在确定了各个参数后,进一步确定参数所能够支持的功能类型。功能类型可以包括以下至少一种:维度变换、数值变换、维度变换宽高分开分配、pad(图像数据边缘填充,在不改变原图内容的情况下,扩展图像大小)功能、指定维度输出。进一步地,筛选条件可以确定为协议是否支持维度变换、协议是否支持数值变换、协议是否支持维度变换宽高分开分配、协议是否支持pad功能、协议是否支持指定维度输出等等。
S13:利用筛选条件在协议集合筛选出满足原协议参数的功能类型的目标协议。
获取原协议文本中参数支持的功能类型后,进一步确定对于目标协议的筛选条件,通过筛选条件在协议集合中筛选出满足条件的目标协议。协议集合中包括了至少一协议,以及该协议包含的参数,参数对应支持的功能类型。协议集合中的协议可以是事先录入的,也可以是在获取到目标输入场景支持的协议后,将目标输入场景支持的协议录入至协议集合中。
S14:利用目标协议兼容原协议参数。
确定了满足筛选条件的目标协议后,可利用该目标协议对原协议中的参数进行兼容。对原协议中的参数进行调整修改以使其能够符合目标协议中参数的设置条件。
在确定了目标协议后,需确定目标输入场景支持的协议类型,然后以目标输入场景支持的协议类型对第一次获取的目标协议进行筛选得到最终的目标协议,进一步以最终的目标协议对原协议文本中的参数进行兼容。兼容之后的原协议文本即可输入至目标输入场景进行使用。如果筛选未得到最终的目标协议,则表明无法对原协议文本进行兼容以使其能够输入至目标输入场景,被目标输入场景所支持。
在本实施例中,通过获取原协议文本,解析得到原协议包含的各个参数以及参数对应支持的功能,在根据原协议支持的功能确定筛选条件对协议集合中的协议进行筛选,得到能够进行兼容转换的目标协议。基于目标协议对原协议文本进行转换以实现兼容。如果目标输入场景能够支持目标协议,则就能够将兼容后的原协议文本输出至目标输入场景以实现不同协议之间数据的传输。
参照图2,图2为本申请协议兼容方法第二实施例的流程示意图。该方法是对上述实施例的进一步扩展。其包括以下步骤:
S21:若利用筛选条件在协议集合中不能筛选出满足原协议参数的功能类型的目标协议,则判断为协议集合中的协议无法兼容原协议参数。
当利用功能对应的筛选条件对协议集合中的协议进行筛选时,若无法筛选出能够支持源协议参数所支持的功能类型的目标协议,则表明协议集合中不存在能够兼容原协议文本的协议,原协议文本不能被兼容。而协议集合中包含了目标输入场景所支持的协议类型,则原协议文本也不能被目标输入场景所兼容和进一步的使用。原协议文本仅适用于支持原协议的相关场景,无法输入至不支持原协议的其他场景中。
参照图3,图3为本申请协议兼容方法第三实施例的流程示意图。该方法是对步骤S11的进一步扩展。其包括以下步骤:
S31:判断原协议文本中是否包含同一变换类型的第一变换参数和第二变换参数,且第一变换参数的值和第二变换参数的值相同。
判断原协议文本中是否存在属于同一变换类型的不同参数,且其值相同。同一变换类型的第一变换参数和第二变换参数可以是,例如,协议文本中包括的scale-h和scale-w两种参数。协议中未包括stride参数,则scale-h参数对应维度变换的宽度,scale-w参数对应维度变换的高度。在另一实施例中,同一变换类型的第一变换参数和第二变换参数可以是协议文本中的包括stride-h和stride-w两种参数。协议中未包括scale参数,则stride-h参数对应维度变换的宽度,stride-w参数对应维度变换的高度。
若是,执行步骤S32。
S32:利用第一变换参数和第二变换参数确定变换类型的最终变换参数,并将最终变换参数作为原协议参数。
当第一变换参数和第二变换参数的值相同时,利用第一第二参数的值确定该变换类型最终的参数值。进一步地,将第一变换参数和第二变换参数删除,为最终的参数值生成一个新的变换参数,而该最终变换参数对应了该变换类型的功能。该最终变换参数代替了第一变换参数和第二变换参数作为原协议文本中的参数。
在一实施例中,当协议文本中包括scale-h和scale-w两种参数。协议中未包括stride参数,则scale-h参数对应维度变换的宽度,scale-w参数对应维度变换的高度。若scale-h参数和scale-w参数的值相同,则将scale-h参数和scale-w参数合并为一个新的参数,scale参数。scale参数对应了维度变换功能,其值与scale-h参数或scale-w参数的值相同。
若同一变换类型下第一参数与第二参数的值不相同,则不对其进行处理,继续执行后续确定原协议参数支持的功能和筛选条件的步骤。
参照图4,图4为本申请协议兼容方法第四实施例的流程示意图。该方法是对上述实施例的进一步扩展。其包括以下步骤:
S41:获取原协议参数支持的所有的功能类型。
确定原协议中参数对应支持的功能类型。功能类型包括以下至少一种:维度变换、数值变换、维度变换宽高分开分配、pad功能、指定维度输出。
S42:基于功能类型在协议集合上筛选满足所有的功能类型的协议,确定满足所有的功能类型的协议为目标协议。
基于功能类型确定了筛选条件。筛选条件与支持的功能类型对应,包括以下至少一种:协议是否支持维度变换、协议是否支持数值变换、协议是否支持维度变换宽高分开分配、协议是否支持pad功能、协议是否支持指定维度输出。通过筛选条件对协议集合中包括的协议进行筛选,筛选出的能够支持所有条件,满足所有功能的协议确定为目标协议,能够用于对原协议文本进行兼容。
参照图5,图5为本申请协议兼容方法第五实施例的流程示意图。该方法是对第四实施例的进一步扩展。其包括以下步骤:
S51:基于原协议参数支持的功能类型对协议集合中的协议进行多次筛选。
在确定原协议参数对应支持的功能类型为多个的基础上,在筛选过程中,对协议集合中的协议进行多次筛选。依照每一功能类型对应的筛选条件就执行一次筛选。而基于当前功能类型进行筛选的对象为基于上一个功能类型进行筛选之后得到的协议集合。例如,原协议参数对应支持了第一功能类型和第二功能类型。第一功能类型对应第一筛选条件,第二功能类型对应了第二筛选条件。通过第一筛选条件对协议集合中的协议进行第一次筛选,得到第一协议集合。第一协议集合中的协议都能够支持第一功能类型。再通过第二筛选条件进行筛选时,筛选的对象为第一协议集合。通过对第一协议集合进行筛选得到第二协议集合。而第二协议集合中的协议能够支持第一功能类型和第二功能类型。之后的筛选过程以此类推。
通过递进的筛选过程,能够减少筛选对象的数量,从而减少计算资源的消耗,加快协议兼容速度。进一步地,将一些比较少见的功能类型作为靠前筛选的筛选条件能够在前期就剔除掉大量的协议,从而减少后续的计算资源消耗。
参照图6,图6为本申请协议兼容方法第六实施例的流程示意图。该方法是对上述实施例的进一步扩展。其包括以下步骤:
S61:获取原协议参数的数值类型以及目标协议中对应参数的数值类型。
当判断到原协议文本与目标协议中存在对应同一功能类型的参数时,确定各自协议中该参数的数值类型。数值类型包括浮点类型和整数类型。浮点类型和整数类型的区别在于浮点类型的参数的值可以进一步包括小数部分。
S62:判断原协议参数的数值类型与目标协议中对应参数的数值类型是否满足转换条件。
参数的数值类型为整数类型时,其值只能是整数。参数的数值类型为浮点类型时,其值可以是整数,也可以是浮点数。转换条件可以是当原协议参数的数值类型为整数类型时,目标协议中对应参数的数值类型也为整数类型;原协议参数的数值类型为浮点类型,目标协议中对应参数的数值类型也为浮点类型;原协议参数的数值类型为整数类型,目标协议中对应参数的数值类型为浮点类型;原协议参数的数值类型为浮点类型,且参数值为非真正浮点数,目标协议中对应参数为整数类型。即当原协议文本中参数的值能够转换为符合目标协议中对应参数数值类型的值时,即满足转换条件,可以进行下一步的兼容操作。若不满足,执行步骤S63。若满足,执行步骤S64。
S63:兼容失败。
若不满足转换条件,原协议文本中参数的值不能转换为符合目标协议中对应参数数值类型的形式,无法依照目标协议对原协议进行兼容。
S64:将原协议参数的数值类型转换为目标协议中对应参数的数值类型。
满足转换条件后,依照协议中的数值类型进行转换。当原协议参数的数值类型为整数类型,目标协议中对应参数的数值类型也为整数类型;原协议参数的数值类型为浮点类型,目标协议中对应参数的数值类型也为浮点类型时,原协议参数的数值类型无需进行转换。当原协议参数的数值类型为整数类型,目标协议中对应参数的数值类型为浮点类型时,将原协议参数的值修改为浮点数类型,将原协议参数的数值类型修改为浮点类型。例如,原协议参数值为2,将其修改为2.0,参数类型有整数类型修改为浮点类型。当原协议参数的数值类型为浮点类型,且参数值为非真正浮点数,目标协议中对应参数为整数类型时,将原协议参数值修改为整数类型,将原协议参数的数值类型修改为整数类型。真正的浮点数是不能转换为整数的浮点数,非真正的浮点数是能够转换为整数的浮点数。例如,2.0为非真正浮点数,2.1为真正的浮点数。原协议参数值为2.0,参数数值类型为浮点类型,将参数值修改为2,将参数数值类型修改为整数类型。
参照图7,图7为本申请协议兼容方法第七实施例的流程示意图。该方法是对上述实施例的进一步扩展。其包括以下步骤:
S71:获取原协议参数支持的功能类型。
获取原协议中的参数。每一种参数对应着支持的一种功能类型。
S72:基于功能类型判断目标协议中支持相同功能类型的参数与原协议参数的名称是否一致。
为了避免命名混乱,兼容时需要对名称进行统一。判断目标协议中支持某一功能类型的参数与原协议中同样支持该功能类型的参数的名称是否一致。若是,执行步骤S73。若否,执行步骤S74。
S73:无需对原协议参数的名称进行修改。
支持相同功能类型的参数其在原协议和目标协议中的命名相同,则无需进行修改。目标协议可直接对其兼容。
S74:将原协议参数的名称修改为与目标协议中参数的名称一致。
支持相同功能类型的参数在原协议和目标协议中的命名不一致,将其修改为与目标协议中的一致,以避免命名混乱造成***错误。
参照图8,图8为本申请协议兼容方法第八实施例的流程示意图。其包括以下步骤:
S81:获取深度学习框架网络层所支持的原协议文本,基于原协议文本进行解析,获取原协议参数。
该方法是为了实现深度学***台的学***台中继续使用,需对其进行兼容。在获取到原协议文本后,对原协议文本进行解析。进行兼容之前,先对原协议文本进行分解,剔除无关的语句,仅留下能够代表支持多种功能的各个参数。
S82:判断原协议文本中是否包含同一变换类型的第一变换参数和第二变换参数,且第一变换参数的值和第二变换参数的值相同。
若是,执行步骤S83。若第一变换参数与第二变换参数的值不同,则无需修改,进行下一步的兼容操作。
S83:利用第一变换参数和第二变换参数确定变换类型的最终变换参数,并将最终变换参数作为原协议参数。
对原协议文本中参数进行简化,从而减少原协议文本中的数据,减少后续兼容过程中的计算资源消耗。
S84:基于原协议参数支持的功能类型对协议集合中的协议进行多次筛选。
S85:筛选得到满足原协议所有功能类型的协议,确定满足原协议所有功能类型的协议为目标协议。
获取原协议文本中参数支持的功能类型后,进一步确定对于目标协议的筛选条件,通过筛选条件在协议集合中筛选出满足条件的目标协议。协议集合中包括了至少一协议,以及该协议包含的参数,参数对应支持的功能类型。协议集合中的协议可以是事先录入的,也可以是在获取到目标输入场景支持的协议后,将目标输入场景支持的协议录入至协议集合中。能够满足原协议文本支持的所有功能类型的协议为可用于进行协议兼容的目标协议。
S86:判断原协议参数的数值类型与目标协议中对应参数的数值类型是否满足转换条件。
若是,执行步骤S87。不满足转换条件则无法兼容。
S87:将原协议参数的数值类型转换为目标协议中对应参数的数值类型。
将原协议文本中参数与目标协议中对应参数的数值类型修改为一致。对应参数为目标协议中与原协议文本中参数支持相同功能类型的参数。例如,原协议文本中的scale与目标协议的参数scale,或是原协议文本中的stride与目标协议中的参数scale。
S88:基于功能类型判断目标协议中支持相同功能类型的参数与原协议参数的名称是否一致。
若是,执行步骤S89。若否,执行步骤S90。
S89:无需对原协议参数的名称进行修改,可以兼容。
S90:将原协议参数的名称修改为与目标协议中参数的名称一致。
为了避免命名不一致导致的数据混乱,将原协议文本中参数与目标协议中支持相同功能类型的参数的名称进行匹配修改。
最后兼容成功,可以输出最终的协议文本至目标输入场景。
数值类型的修改和参数名称的修改顺序在此不做限定,本实施例中的顺序仅是示例性的说明,本实施中其他相关步骤可参照上述实施例的描述,在此不再赘述。
以上实施例中所描述的原协议文本依照的协议以及协议集合中包括的协议均为深度学习框架中的层协议。以caffe深度学习框架为例,caffe中包括了多种层级结构,包括主干层级结构,以及发展的其他非主干的层级结构。每一层对应着相关的协议用于进行数据文本的描述和传递。由于框架开源,因此对于同一层级结构,用户可以基于应用场景在原有协议的基础上进行开发,开发出不同版本的协议进行使用。不同版本的协议之间大体相似,但是存在区别,且都用于该层级结构。上述实施例的协议兼容方法应用于同一层中不同版本的层协议,其可以是应用于非主干层,也可以是应用于主干层。
参照图9,图9为本申请协议兼容方法第九实施例一流程示意图。该方法是一具体实施例。
该实施例是以caffe中上采样层的协议进行兼容为例进行说明。在caffe中,层协议的描述是基于caffe.proto文件,该proto文件是基于谷歌的开源protobuf工具进行描述。Caffe的模型会有两个文件,一个是caffemodel文件,一个是prototxt文件,其都是基于caffe.proto文件进行解析。在下面描述的兼容的修改操作都是通过修改prototxt文件来完成。
以下举例几个版本的上采样层协议:
第一协议proto_darknet:其包括参数int32 stride、float scale。
第二协议proto_SegNet:其包括参数uint32 scale、uint32 scale_h、uint32scale_w、pad_out_h、pad_out_w、uint32 upsample_h、uint32 upsample_w。
第三协议proto_darknet_expand:其包括参数float scale、int32 stride、int32stride_h、int32 stride_w。
第四协议proto_other0:其包括参数int32 stride。
第五协议proto_other1:其包括参数int32 scale、int32 stride。
第六协议proto_other2:其包括参数float scale。
第七协议proto_other3:其包括参数int scale。
其中,int32、uint32、float表示该参数的数值类型,int32、uint32表示整数类型,float表示浮点类型。
当协议仅包括scale参数或stride参数时,其都是表示支持维度变化功能,当协议既包括scale参数也包括stride参数时,stride表示支持维度变换,scale表示支持数值变换。而stride_h、stride_w、scale_w、scale_h参数表示支持维度变换宽高分开分配。pad参数表示支持pad功能。upsample_h和upsample_w表示支持指定维度输出。则各个协议所支持的功能如下表所示。
协议 | 维度变换 | 数值变换 | 维度变换宽高分开分配 | PAD | 指定维度输出 |
proto_darknet | 支持 | 支持 | 不支持 | 不支持 | 不支持 |
proto_SegNet | 支持 | 不支持 | 支持 | 支持 | 支持 |
proto_darknet_expand | 支持 | 支持 | 支持 | 不支持 | 不支持 |
proto_other0 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
proto_other1 | 支持 | 支持 | 不支持 | 不支持 | 不支持 |
proto_other2 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
proto_other3 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
假设以上协议都包含在协议集合中,目标输入场景支持的协议可能被包括在其中,原协议文本依照的协议包括在其中。则开始对原协议的prototxt文本进行兼容。
S91:获取prototxt文本,并对其进行解析,获取上采样层参数。
prototxt文本即原协议文本。
S92:判断原协议文本是否同时包含了stride_h、stride_w,且二者值相等,或者同时包含了scale_w、scale_h,且二者值相等。
这是判断原协议文本中是否包含同一变换类型的第一变换参数和第二变换参数,且第一变换参数的值和第二变换参数的值相同。对原协议文本中的参数进行简化,方便执行后续的筛选兼容过程。
S93:将stride_h、stride_w合并为stride,或将scale_w、scale_h合并为scale。
对值相同的属于维度变换类型的参数进行合并,确定该变换类型的最终参数scale或stride,并将值赋予该最终参数。
S94:判断原协议文本是否包含pad_out_h、pad_out_w、upsample_h、upsample_w参数。
开始以原协议中参数支持的功能类型对协议集合中的协议进行筛选。若是,执行步骤S95。若否,执行步骤S96。
S95:以协议是否支持PAD和指定维度输出进行筛选得到能够支持功能的proto_SegNe协议,判断目标输入场景是否支持proto_SegNe协议。
判断到原协议支持PAD和指定维度输出时,在协议集合中的协议中只有proto_SegNe协议能够符合条件,表明原协议为proto_SegNe协议。进一步判断目标输入场景是否能够支持proto_SegNe协议,能够支持则可以兼容,无需进行修改,执行步骤S107。无法支持,则无法兼容,文本转换失败,执行步骤S108。
S96:判断原协议文本是否包含stride_h、stride_w或scale_w、scale_h。
若是,执行步骤S97。若否,执行步骤S101。
S97:以协议是否支持维度变换宽高分开分配进行筛选得到支持功能的proto_darknet_expand协议。
判断到原协议支持维度变换宽高分开分配时,原本应得到proto_SegNe协议和proto_darknet_expand协议,但proto_SegNe协议已在上一次筛选中剔除,因此仅剩下proto_darknet_expand协议。
S98:判断目标输入场景是否支持proto_darknet_expand协议。
若是,执行步骤S99。若否,执行步骤S100。
S99:将参数名称修改为stride_h、stride_w。
目标输入场景支持维度变换宽高分开分配,若其支持proto_darknet_expand协议,表明其维度变换的宽高分开分配的参数名称为stride_h、stride_w。为了避免名称混乱,在兼容时需使原协议文本中支持维度变换宽高参数的参数名称与目标输入场景支持的协议一致。若相同,则无需修改,若不同,则修改为一致。
S100:将参数名称修改为scale_w、scale_h。
若目标输入场景支持维度变换宽高分开分配,但其不支持proto_darknet_expand协议,其表明维度变换的宽高分开分配的参数名称为scale_w、scale_h,就像proto_SegNe协议中示出的。为了避免名称混乱,在兼容时需使原协议文本中支持维度变换宽高参数的参数名称与目标输入场景支持的协议一致。若相同,则无需修改,若不同,则修改为一致。
修改完成之后,进一步进行数值类型的判断后完成兼容过程,本实施例中示例的协议由于存在维度变换宽高的参数都是整数,因此未执行数值类型判断的过程,名称修改完成后即视为兼容成功,可以输出原协议文本。
S101:判断原协议文本是否同时包含stride和scale。
若是,执行步骤S102。若否,执行步骤S105。
S102:以协议是否支持维度变换和数值变换进行筛选得到支持功能的proto_darknet协议和proto_other1协议。
判断到原协议支持维度变换和数值变换时,进一步筛选得到proto_darknet协议和proto_other1协议。
S103:判断目标输入场景是否支持proto_darknet协议或proto_other1协议。
若目标场景支持该两种协议,则进一步对参数的数值类型进行判断。
S104:判断原协议文本中参数的数值类型与目标输入场景支持协议中对应参数的数值类型是否满足转换条件。
转换条件可以是当原协议参数的数值类型为整数类型时,目标协议中对应参数的数值类型也为整数类型;原协议参数的数值类型为浮点类型,目标协议中对应参数的数值类型也为浮点类型;原协议参数的数值类型为整数类型,目标协议中对应参数的数值类型为浮点类型;原协议参数的数值类型为浮点类型,且参数值为非真正浮点数,目标协议中对应参数为整数类型。即当原协议文本中参数的值能够转换为符合目标协议中对应参数数值类型的值时,即满足转换条件,可以进行下一步的兼容操作。
若是,执行步骤S106。若否,则兼容失败,执行步骤S108。
S105:在剩余的协议中,判断原协议文本中参数的数值类型与目标输入场景支持协议中对应参数的数值类型是否满足转换条件。
在协议集合中仅余下了proto_other0、proto_other2、proto_other3三种协议。当仅存在scale或stride时,其都为支持维度变换的参数。进一步进行数值类型转换条件的判断。若满足,执行S106。
S106:将原协议文本中参数的数值类型修改成与目标输入场景支持协议中对应参数的数值类型相同,或无需修改。
满足了数值转换条件,对原协议文本中参数进行数值类型的修改,或无需修改直接使用。对应参数为目标输入场景支持协议中支持相同功能类型的参数。
还可继续判断协议中支持同一功能类型的参数其名称是否一致,例如判断原协议文本中scale或stride参数的名称与目标场景支持协议中的支持维度变换参数的名称是否一致,若不一致,修改为与目标场景中协议参数的名称一致,scale或stride,若一致,无需修改。参数的值对应数值类型进行变换。
S107:兼容成功,输出原协议文本。
S108:原协议文本无法兼容,转换失败。
如图10所示,图10为本申请电子设备一实施例的结构示意图。
该电子设备包括处理器110、存储器120。
处理器110控制电子设备的操作,处理器110还可以称为CPU(Central ProcessingUnit,中央处理单元)。处理器110可能是一种集成电路芯片,具有信号序列的处理能力。处理器110还可以是通用处理器、数字信号序列处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器120存储处理器110工作所需要的指令和程序数据。
处理器110用于执行指令以实现本申请协议兼容方法的任一实施例及可能的组合所提供的方法。
如图11所示,图11为本申请计算机可读存储装置一实施例的结构示意图。
本申请可读存储装置一实施例包括存储器210,存储器210存储有程序数据,该程序数据被执行时实现本申请协议兼容方法任一实施例及可能的组合所提供的方法。
存储器210可以包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。
如图12所示,图12为本申请电子装置一实施例的结构示意图。
该电子装置包括控制模块310,文本解析模块320、协议筛选模块330,协议兼容模块340。
文本解析模块320用于获取原协议文本,并对协议文本进行解析得到参数。协议筛选模块330用于获取相关参数,基于参数对协议集合中的协议进行筛选,得到能够进一步用于兼容的目标协议。协议兼容模块340用于选取目标协议,基于目标协议中参数的名称和数值类型对原协议文本中的参数和数值类型进行修改以实现兼容目的。控制模块310与文本解析模块320、协议筛选模块330、协议兼容模块340建立通信连接以实现上述协议兼容方法任一实施例及可能的组合所提供的方法。
综上所述,通过获取原协议文本,解析得到原协议包含的各个参数以及参数对应支持的功能,在根据原协议支持的功能确定筛选条件对协议集合中的协议进行筛选,得到能够进行兼容转换的目标协议。基于目标协议对原协议文本进行转换以实现兼容。如果目标输入场景能够支持目标协议,则就能够将兼容后的原协议文本输出至目标输入场景以实现不同协议之间数据的传输。
在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种协议兼容方法,其特征在于,所述方法包括:
获取深度学习框架网络层所支持的原协议文本,基于所述原协议文本进行解析,获取原协议参数;
基于所述原协议参数所支持的功能类型,确定筛选条件;
利用所述筛选条件在协议集合筛选出满足所述原协议参数的功能类型的目标协议;
利用所述目标协议兼容所述原协议参数以符合所述目标协议中参数的数值类型和/或功能类型。
2.根据权利要求1所述的方法,其特征在于,在所述基于所述原协议参数所支持的功能类型,确定筛选条件之后,所述方法还包括:
若利用所述筛选条件在所述协议集合中不能筛选出满足所述原协议参数的功能类型的所述目标协议,则判断为所述协议集合中的协议无法兼容所述原协议参数。
3.根据权利要求1所述的方法,其特征在于,所述基于所述原协议文本进行解析,获取原协议参数,包括:
判断所述原协议文本中是否包含同一变换类型的第一变换参数和第二变换参数,且所述第一变换参数的值和所述第二变换参数的值相同;
若是,利用所述第一变换参数和所述第二变换参数确定所述变换类型的最终变换参数,并将所述最终变换参数作为所述原协议参数。
4.根据权利要求1所述的方法,其特征在于,所述原协议参数所支持的所述功能类型为多个,所述基于所述功能类型在所述协议集合上筛选满足所有的所述功能类型的协议包括:
基于所述原协议参数支持的所述功能类型对所述协议集合中的协议进行多次筛选;
其中,基于当前功能类型进行筛选的对象为基于上一个功能类型进行筛选之后得到的协议集合。
5.根据权利要求1所述的方法,其特征在于,所述利用所述目标协议兼容所述原协议参数包括:
获取所述原协议参数的数值类型以及所述目标协议中对应参数的数值类型;
判断所述原协议参数的数值类型与所述目标协议中对应参数的数值类型是否满足转换条件;
若否,则兼容失败;
若是,将所述原协议参数的数值类型转换为所述目标协议中对应参数的数值类型。
6.根据权利要求1所述的方法,其特征在于,所述利用所述目标协议兼容所述原协议参数包括:
获取所述原协议参数支持的所述功能类型;
基于所述功能类型判断所述目标协议中支持相同所述功能类型的参数与所述原协议参数的名称是否一致;
若不一致,将所述原协议参数的名称修改为与所述目标协议中参数的名称一致;
若一致,无需对所述原协议参数的名称进行修改。
7.根据权利要求1所述的方法,其特征在于,所述协议集合上的协议支持的功能类型至少包括以下功能类型中一种:维度变换、数值变换、维度变换宽高分开分配、pad功能、指定维度输出。
8.根据权利要求1所述的方法,其特征在于,所述原协议文本依照的协议和所述协议集合上的协议为深度学习框架中同一层的层协议。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储程序数据,所述程序数据能够被所述处理器执行,以实现如权利要求1-8任一项所述的方法。
10.一种计算机可读存储装置,其特征在于,存储有程序数据,能够被处理器执行,以实现如权利要求1-8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210718549.9A CN114817117B (zh) | 2022-06-23 | 2022-06-23 | 协议兼容方法、电子设备及计算机可读存储装置 |
EP23176239.4A EP4297377A1 (en) | 2022-06-23 | 2023-05-30 | Methods and systems for protocol compatibility |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210718549.9A CN114817117B (zh) | 2022-06-23 | 2022-06-23 | 协议兼容方法、电子设备及计算机可读存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114817117A CN114817117A (zh) | 2022-07-29 |
CN114817117B true CN114817117B (zh) | 2022-10-04 |
Family
ID=82520460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210718549.9A Active CN114817117B (zh) | 2022-06-23 | 2022-06-23 | 协议兼容方法、电子设备及计算机可读存储装置 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP4297377A1 (zh) |
CN (1) | CN114817117B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267438A (zh) * | 2008-04-24 | 2008-09-17 | 中兴通讯股份有限公司 | 协议兼容的实现方法及客户端 |
CN102769630A (zh) * | 2012-08-01 | 2012-11-07 | 烽火通信科技股份有限公司 | 一种终端管理中CWMP与UPnP协议的转换方法 |
CN108364454A (zh) * | 2018-03-02 | 2018-08-03 | 哈尔滨电工仪表研究所有限公司 | 一种智能协议转换装置 |
CN110119271A (zh) * | 2018-12-19 | 2019-08-13 | 厦门渊亭信息科技有限公司 | 一种跨机器学习平台的模型定义协议及适配*** |
CN110515889A (zh) * | 2019-07-27 | 2019-11-29 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 嵌入式fpga集群智能计算平台硬件框架 |
CN112448933A (zh) * | 2019-09-02 | 2021-03-05 | 浙江宇视科技有限公司 | 一种自适应兼容平台互联域间协议的方法和*** |
CN113079198A (zh) * | 2021-03-18 | 2021-07-06 | 青岛海信智慧生活科技股份有限公司 | 一种云平台接口协议转换的方法及装置 |
CN113642137A (zh) * | 2021-08-04 | 2021-11-12 | 温州科技职业学院 | 一种5g网络传输接入转换协议控制*** |
CN114553608A (zh) * | 2022-04-26 | 2022-05-27 | 云丁网络技术(北京)有限公司 | 用于接入云平台的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170124187A (ko) * | 2016-05-02 | 2017-11-10 | 엘에스산전 주식회사 | 통신 프로토콜 자동 호환 기능을 갖는 IoT 플랫폼 |
US11017291B2 (en) * | 2017-04-28 | 2021-05-25 | Intel Corporation | Training with adaptive runtime and precision profiling |
CN109981522A (zh) * | 2017-12-27 | 2019-07-05 | 深圳市优必选科技有限公司 | 通信协议的兼容方法及装置 |
US11436005B2 (en) * | 2019-04-30 | 2022-09-06 | Salesforce.Com, Inc. | Generic integrated development environment extension tool for design systems |
CN111031138B (zh) * | 2019-12-19 | 2022-08-05 | 青岛海尔科技有限公司 | 物联网的通信方法和装置及计算机可读存储介质 |
-
2022
- 2022-06-23 CN CN202210718549.9A patent/CN114817117B/zh active Active
-
2023
- 2023-05-30 EP EP23176239.4A patent/EP4297377A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267438A (zh) * | 2008-04-24 | 2008-09-17 | 中兴通讯股份有限公司 | 协议兼容的实现方法及客户端 |
CN102769630A (zh) * | 2012-08-01 | 2012-11-07 | 烽火通信科技股份有限公司 | 一种终端管理中CWMP与UPnP协议的转换方法 |
CN108364454A (zh) * | 2018-03-02 | 2018-08-03 | 哈尔滨电工仪表研究所有限公司 | 一种智能协议转换装置 |
CN110119271A (zh) * | 2018-12-19 | 2019-08-13 | 厦门渊亭信息科技有限公司 | 一种跨机器学习平台的模型定义协议及适配*** |
CN110515889A (zh) * | 2019-07-27 | 2019-11-29 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 嵌入式fpga集群智能计算平台硬件框架 |
CN112448933A (zh) * | 2019-09-02 | 2021-03-05 | 浙江宇视科技有限公司 | 一种自适应兼容平台互联域间协议的方法和*** |
CN113079198A (zh) * | 2021-03-18 | 2021-07-06 | 青岛海信智慧生活科技股份有限公司 | 一种云平台接口协议转换的方法及装置 |
CN113642137A (zh) * | 2021-08-04 | 2021-11-12 | 温州科技职业学院 | 一种5g网络传输接入转换协议控制*** |
CN114553608A (zh) * | 2022-04-26 | 2022-05-27 | 云丁网络技术(北京)有限公司 | 用于接入云平台的方法和装置 |
Non-Patent Citations (1)
Title |
---|
多接口协议转换器的设计与实现;张科等;《信息化研究》;20090720(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114817117A (zh) | 2022-07-29 |
EP4297377A1 (en) | 2023-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116894413B (zh) | 一种基于硬件的逻辑映射方法、装置、设备及存储介质 | |
CN111045683A (zh) | 小程序代码编译方法、装置、设备及介质 | |
CN113674374B (zh) | 基于生成式对抗网络的中文文本生成图像方法及装置 | |
CN109683890B (zh) | 层叠样式表模块化的方法、装置、存储介质及设备 | |
CN109522405A (zh) | 文件信息处理方法、电子设备以及计算机可读存介质 | |
CN111967598A (zh) | 神经网络压缩方法、装置、设备及计算机可读存储介质 | |
CN111443959A (zh) | 任务的执行方法、装置和服务器 | |
CN113407254B (zh) | 表单生成方法、装置、电子设备及存储介质 | |
CN107122785B (zh) | 文本识别模型建立方法和装置 | |
CN114817117B (zh) | 协议兼容方法、电子设备及计算机可读存储装置 | |
CN110119459B (zh) | 图像数据检索方法及图像数据检索装置 | |
CN112947900B (zh) | web应用开发方法、装置、服务器及开发终端 | |
CN110609991B (zh) | 文本生成方法、电子装置及存储介质 | |
CN115587075B (zh) | 版式文件处理方法、装置、终端设备及存储介质 | |
CN111967478A (zh) | 一种基于权重翻转的特征图重构方法、***、存储介质及终端 | |
CN110942488A (zh) | 图像处理装置、图像处理***、图像处理方法及记录介质 | |
CN113656717A (zh) | 一种网页的控件渲染方法、装置、设备及存储介质 | |
CN113553865A (zh) | 信息显示方法、装置、电子设备及存储介质 | |
CN112950167A (zh) | 设计服务匹配方法、装置、设备及存储介质 | |
CN111562928A (zh) | 资源提供方法及装置、资源下载方法及装置 | |
CN104239221B (zh) | 阅读器内存优化***及方法 | |
CN113792247B (zh) | 基于代码特征生成功能流程图的方法、装置、设备和介质 | |
CN106897074A (zh) | 一种vr开发平台的数据处理方法及其*** | |
CN111488189B (zh) | 窗体显示方法、装置、设备以及计算机可读存储介质 | |
CN115659710A (zh) | Cad平台的信息导入方法、装置和存储介质及电子装置 |
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 |