CN108279881A - 基于深度学习预测部分的跨平台实现架构及方法 - Google Patents

基于深度学习预测部分的跨平台实现架构及方法 Download PDF

Info

Publication number
CN108279881A
CN108279881A CN201810145538.XA CN201810145538A CN108279881A CN 108279881 A CN108279881 A CN 108279881A CN 201810145538 A CN201810145538 A CN 201810145538A CN 108279881 A CN108279881 A CN 108279881A
Authority
CN
China
Prior art keywords
interface
deep learning
predicted portions
cross
platform
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
CN201810145538.XA
Other languages
English (en)
Other versions
CN108279881B (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.)
Shenzhen Ikinoop Technology Co Ltd
Original Assignee
Shenzhen Ikinoop 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 Shenzhen Ikinoop Technology Co Ltd filed Critical Shenzhen Ikinoop Technology Co Ltd
Priority to CN201810145538.XA priority Critical patent/CN108279881B/zh
Publication of CN108279881A publication Critical patent/CN108279881A/zh
Application granted granted Critical
Publication of CN108279881B publication Critical patent/CN108279881B/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/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于深度学习预测部分的跨平台实现架构,包括基础层、接口层和开发层;基础层包括集成操作内核、跨平台编译环境、预测代码裁剪配置和人工神经网络;基础层用于封装出深度学习预测部分统一接口;接口层包括所述深度学习预测部分统一接口及接口转换工具;接口转换工具用于将深度学习预测部分统一接口转换成预设目标接口;开发层包括各类开发端,用于连接接口层,并调用与开发端支持接口类型对应的适用接口,以实现深度学习预测部分的跨平台移植。本发明还公开了一种基于深度学习预测部分的跨平台实现方法。本发明完善了深度学习开发框架基于深度学习预测部分的跨平台实现,从而提高深度学习预测部分的产品化效率。

Description

基于深度学习预测部分的跨平台实现架构及方法
技术领域
本发明涉及机器学习的技术领域,尤其涉及基于深度学习预测部分的跨平台实现架构及方法。
背景技术
机器学习作为一门多领域交叉学科,是人工智能的核心研究领域。而深度学习是机器学习的关键性技术,其越来越受到各国研究人员的关注和重视。
机器学习和深度学习领域有很多的开发框架,例如Tensorflow、Caffe、Theano。其中,Tensorflow是迄今为止应用最广泛、具有优异表现的深度学习开发框架。谷歌公司在2015年开源了Tensorflow的首个版本;而且Tensorflow目前在深度学习开发框架中世界排名第一。
但是,目前深度学习开发框架更多是侧重于云计算和在线预测,对于端侧设备本地直接预测的场景都还有很大完善空间。另外,从用户端速度体验、离线预测方案需求、以及端侧设备计算资源充分利用等角度来看,对深度学习的预测部分进行跨平台、轻量级的实现是必要的,而且将会极大地提高深度学习预测部分的产品化效率。
以Tensorflow为例,在跨平台预测的实现上,仍存在很多需要完善的方面,具体包括:
(1)Tensorflow接口不统一。对于不同平台,提供的实现方案不同;对于不同的编程语言,支持的接口各异,导致用户学习成本上升;不同端侧实现相同业务的代码迥异,开发和维护管理成本高,质量控制困难。
(2)Tensorflow应用层接口封装方式不够统一、变化较快,甚至造成部分业务在某些平台上无法实现。
(3)Tensorflow官方发布支持平台种类有限。例如官方没有宣称负责支持维护嵌入式设备。在移动端、嵌入式系统等端侧设备的高效率移植、功能的实现、性能调优方面均有待完善。
(4)Tensorflow框架内核体量较大、使用应用层接口无法深入。由于抢占云计算研发入口的战略等因素,Tensorflow整体倾向于云计算、在线预测。内核体量较大,包含了训练和预测两部分的代码。多数开发者仅工作在应用层,无法深入Tensorflow底层进行裁剪。
发明内容
本发明主要目的在于提供一种基于深度学习预测部分的跨平台实现架构及方法,旨在完善深度学习开发框架基于深度学习预测部分的跨平台实现,从而提高深度学习预测部分的产品化效率。
为实现上述目的,本发明提供的一种基于深度学习预测部分的跨平台实现架构,所述架构包括基础层、接口层和开发层;其中,
所述基础层包括集成操作内核、跨平台编译环境、预测代码裁剪配置和人工神经网络;所述基础层用于封装出深度学习预测部分统一接口;
所述接口层包括所述深度学习预测部分统一接口及接口转换工具;其中,所述接口转换工具用于将所述深度学习预测部分统一接口转换成预设目标接口;
所述开发层包括开发端,用于连接所述接口层,并调用与开发端支持接口类型对应的适用接口,以实现深度学习预测部分的跨平台移植;
其中,所述适用接口为所述深度学习预测部分统一接口或者所述预设目标接口。
优选地,所述集成操作内核为Tensorflow框架内核。
优选地,所述深度学习预测部分统一接口为C++接口,用于连接支持所述C++接口的开发端的连接,以供支持所述C++接口的开发端进行调用;
所述接口转换工具为SWIG工具,用于连接不支持所述C++接口的开发端,并将所述C++接口转换成预设目标接口,以供不支持所述C++接口的开发端进行调用。
优选地,所述开发层包括支持所述C++接口的第一类开发端、以及不支持所述C++接口的第二类开发端。
优选地,所述第一类开发端包括:IOS、C++server、Linux、Embedded device。
优选地,所述第二类开发端包括:Android、Python server、Java server、Rserver、Go server。
此外,为实现上述目的,本发明还提供一种基于深度学习预测部分的跨平台实现方法,应用于如上所述的基于深度学习预测部分的跨平台实现框架,包括如下步骤:
搭建基础层,以封装出深度学习预测部分统一接口;其中,所述基础层包括集成操作内核、跨平台编译环境、预测代码裁剪配置和人工神经网络;
基于所述深度学习预测部分统一接口,搭建接口层;其中,所述接口层包括所述深度学习预测部分统一接口及接口转换工具;所述接口转换工具用于将所述深度学习预测部分统一接口转换成预设目标接口;
当检测到开发端连接所述接口层的请求信号时,确认所述开发端支持的接口类型;
根据所述开发端支持的接口类型,确定对应的适用接口,并实现所述开发端对所述适用接口的调用,以实现深度学习预测部分的跨平台移植;
其中,所述适用接口为所述深度学习预测部分统一接口或者所述预设目标接口。
优选地,所述根据所述开发端支持的接口类型,确定对应的适用接口的步骤,具体包括:
当所述开发端支持的接口类型包括所述深度学习预测部分统一接口的接口类型时,确定所述深度学习预测部分统一接口为所述适用接口;
当所述开发端支持的接口类型不包括所述深度学习预测部分统一接口的接口类型时,通过所述接口转换工具将所述深度学习预测部分统一接口转换成预设目标接口;其中所述开发端支持的接口类型包括所述预设目标接口的接口类型。
优选地,所述集成操作内核为Tensorflow框架内核。
优选地,所述深度学习预测部分统一接口为C++接口,用于连接支持所述C++接口的开发端的连接,以供支持所述C++接口的开发端进行调用;
所述接口转换工具为SWIG工具,用于连接不支持所述C++接口的开发端,并将所述C++接口转换成预设目标接口,以供不支持所述C++接口的开发端进行调用。
优选地,所述开发层包括支持所述C++接口的第一类开发端、以及不支持所述C++接口的第二类开发端;其中,所述第一类开发端包括:IOS、C++server、Linux、Embeddeddevice;所述第二类开发端包括:Android、Pythonserver、Java server、R server、Goserver。
本发明提供一种基于深度学习预测部分的跨平台实现架构及方法,对某一深度学习开发框架下在各个开发端上各自实现的纷乱接口进行了剥离,直接使用集成的深度学习开发框架内核,并重新针对业务需求封装出深度学习预测部分统一接口,并结合接口层的接口转换工具的条件性使用,提供适用于不同开发端的相关接口,避免了不同类别开发端重复生成接口,使得不同的开发系统平台、不同编程语言的开发端均可以应用本实施例中的跨平台架构,并实现深度学习的预测功能。同时,通过搭建基础层(包括集成操作内核、跨平台编译环境、预测代码裁剪配置和人工神经网络)与接口层,避免了不同类别开发端重复生成接口、重复定义训练代码等繁琐、重复性操作流程,提高了深度学习预测部分的产品化效率,有助于降低开发系统的维护成本、以及提升软件性能。
附图说明
图1为本发明基于深度学习预测部分的跨平台实现架构的第一实施例框图。
图2为本发明基于深度学习预测部分的跨平台实现架构的第二实施例框图。
图3为本发明基于深度学习预测部分的跨平台实现方法的第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明提供一种基于深度学习预测部分的跨平台实现架构,包括基础层10、接口层20和开发层30;其中,
所述基础层10包括集成操作内核110、跨平台编译环境120、预测代码裁剪配置130和人工神经网络140;所述基础层用于封装出深度学习预测部分统一接口;
在本实施例中,集成操作内核110优选为Tensorflow框架内核,其原因在于用户可以通过Tensorflow框架方便地设计神经网络结构,而无需为追求高效率亲自编写C++或CUDA代码。Tensorflow的核心代码是通过C++语言进行编写的,从而简化了线上部署的负责度。此外,集成操作内核110还可以使用其他第三方深度学习开发框架内核,例如Caffe、Theano。其中,Caffe全称为Convolutional Architecture for Fast Feature Embedding,即快速特征嵌入的卷积体系结构,是一个被广泛使用的开源深度学习开发框架。Theano是一个高性能的符号计算及深度学习库。
跨平台编译环境120至少包括了编译程序和连接程序,具体可通过跨平台地编写Make file文件的方式搭建,还可以通过其他方式搭建。其中,Makefile文件用于描述深度学习的预测功能对应的编译、连接等规则。
预测代码裁剪配置130,用于对神经网络的训练代码进行裁剪,并保留实现预测功能的相关代码。神经网络通常包含训练和预测两部分代码。由于本实施例建立了跨平台实现架构,从而使得各开发端可以共用本实施例中的跨平台实现架构的基础层的训练代码,避免了各开发端在每次的深度学习开发时需要重新确定训练代码的无效重复操作,提高了产品化效率。
人工神经网络140,优选为已完成集成训练的人工神经网络。人工神经网络140基于开发层的深度学习预测部分的相关代码,实现人工智能预测部分的功能。
进一步地,所述接口层20包括所述深度学习预测部分统一接口210及接口转换工具220;其中,所述接口转换工具220用于将所述深度学习预测部分统一接口转换成预设目标接口;
所述开发层30包括开发端,用于连接所述接口层,并调用与开发端支持接口类型对应的适用接口,以实现深度学习预测部分的跨平台移植;
其中,所述适用接口为所述深度学习预测部分统一接口210或者所述预设目标接口。即当所述开发端支持的接口类型包括所述深度学习预测部分统一接口的接口类型时,直接调用所述深度学习预测部分统一接口;当所述开发端支持的接口类型不包括所述深度学习预测部分统一接口的接口类型时,通过转换工具将所述深度学习预测部分统一接口转换成适用的预设目标接口并调用之。从而使得各类开发端均能应用本实施例中的架构,实现跨平台的深度学习预测。
在本实施例中,对某一深度学习开发框架下在各个开发端上各自实现的纷乱接口进行了剥离,直接使用集成的深度学习开发框架内核,并重新针对业务需求封装出深度学习预测部分统一接口,并结合接口层的接口转换工具的条件性使用,提供适用于不同开发端的相关接口,避免了不同类别开发端重复生成接口,使得不同的开发系统平台、不同编程语言的开发端均可以应用本实施例中的跨平台架构,并实现深度学习的预测功能。同时,通过搭建基础层(包括集成操作内核、跨平台编译环境、预测代码裁剪配置和人工神经网络)与接口层,避免了不同类别开发端重复生成接口、重复定义训练代码等繁琐、重复性操作流程,提高了深度学习预测部分的产品化效率,有助于降低开发系统的维护成本、以及提升软件性能。
进一步地,如图2所示,基于上述第一实施例,提供第二实施例。第二实施例以集成操作内核110为Tensorflow框架内核为例进行说明。
其中,所述深度学习预测部分统一接口为C++接口2210,用于连接支持所述C++接口的开发端的连接,以供支持所述C++接口的开发端进行调用;所述C++接口具体是自定义C++接口,即通过类实现面向对象的C++编程,以及在基类中只给出纯虚函数的声明,然后在派生类中实现纯虚函数的具体定义的方式实现接口。
所述接口转换工具为SWIG工具2220,用于连接不支持所述C++接口的开发端,并将所述C++接口转换成预设目标接口,以供不支持所述C++接口的开发端进行调用。
此外,所述平台层30包括支持C++接口功能的第一类开发端、以及不支持所述C++接口功能的第二类开发端。需要说明的是,所述第一类开发端、第二类开发端具体包括各类深度学习的开发平台/设备,包括但不限于操作系统平台(如IOS操作系统、Android操作系统、Linux开发系统)、开发服务器平台(如C++server、Python server、Java server、Rserver、Go sever;其中server为服务器之意,上述五者分别代表使用C++、Python、Java、R语言、Go语言的编程语言实现代码编程和功能开发的服务器端)、嵌入式设备(如Embeddeddevice,即嵌入式设备)。
Tensorflow框架的核心代码直接提供C++接口2210,因此,平台层30中的支持C++接口的第一类开发端可以通过接口层20中的C++接口调用基础层10封装的深度学习预测统一接口,从而进行深度学习的预测。第一类开发端包括但不限于:IOS、C++server、Linux、Embedded device。
对于不支持C++接口的第二类开发端,则可以连接Tensorflow框架自带的SWIG工具。SWIG工具,其全称为Simplified Wrapper and Interface Generator,即简化的封装器和接口生成器,是一个被广泛使用的开源工具,支持将C/C++代码与任何主流脚本语言相集成。换言之,SWIG工具可以将上述的C++接口转换成支持与第二类开发端连接的具体目标接口。第二类开发端包括但不限于:Android、Python server、Java server、R server、Gosever。
当集成操作内核110使用Tensorflow框架内核时,由于C++语言的跨平台兼容能力、以及SWIG工具具有无偏转换接口的能力,本实施例的基于深度学习预测部分的跨平台实现架构可以实现深度学习预测部分的跨平台移植。此外,本实施例的技术核心思想在于:通过对传统的Tensorflow在各个平台上各自实现的纷乱接口进行了剥离,直接使用集成Tensorflow框架内核,重新针对业务需求封装出深度学习预测统一接口。
如图3所示,本发明提供一种基于深度学习预测部分的跨平台实现方法的第一实施例,应用于如上所述的基于深度学习预测部分的跨平台实现框架,包括如下步骤:
步骤S10,搭建基础层,以封装出深度学习预测部分统一接口;其中,所述基础层包括集成操作内核、跨平台编译环境、预测代码裁剪配置和人工神经网络;
在本实施例中,集成操作内核优选为Tensorflow框架内核,其原因在于用户可以通过Tensorflow框架方便地设计神经网络结构,而无需为追求高效率亲自编写C++或CUDA代码。Tensorflow的核心代码是通过C++语言进行编写的,从而简化了线上部署的负责度。此外,集成操作内核还可以使用其他第三方深度学习开发框架内核,例如Caffe、Theano。其中,Caffe全称为Convolutional Architecture for Fast Feature Embedding,即快速特征嵌入的卷积体系结构,是一个被广泛使用的开源深度学习开发框架。Theano是一个高性能的符号计算及深度学习库。
跨平台编译环境至少包括了编译程序和连接程序,具体可通过跨平台地编写Makefile文件的方式搭建,还可以通过其他方式搭建。其中,Make file文件用于描述深度学习的预测功能对应的编译、连接等规则。
预测代码裁剪配置130,用于对神经网络的训练代码进行裁剪,并保留实现预测功能的相关代码。神经网络通常包含训练和预测两部分代码。由于本实施例建立了跨平台实现架构,从而使得各开发端可以共用本实施例中的跨平台实现架构的基础层的训练代码,避免了各开发端在每次的深度学习开发时需要重新确定训练代码的无效重复操作,提高了产品化效率。
人工神经网络,优选为已完成集成训练的人工神经网络。人工神经网络基于开发层的深度学习预测部分的相关代码,实现人工智能预测部分的功能。
步骤S20,基于所述深度学习预测部分统一接口,搭建接口层;其中,所述接口层包括所述深度学习预测部分统一接口及接口转换工具;所述接口转换工具用于将所述深度学习预测部分统一接口转换成预设目标接口;
步骤S30,当检测到开发端连接所述接口层的请求信号时,确认所述开发端支持的接口类型;
在开发端上完成代码编程和功能开发之后,开发端向所述接口层发起连接所述接口层的请求信号。
步骤S40,根据所述开发端支持的接口类型,确定对应的适用接口,并实现所述开发端对所述适用接口的调用,以实现深度学习预测部分的跨平台移植;
其中,所述适用接口为所述深度学习预测部分统一接口或者所述预设目标接口。
具体地,所述根据所述开发端支持的接口类型,确定对应的适用接口的步骤,具体包括:
步骤S41,当所述开发端支持的接口类型包括所述深度学习预测部分统一接口的接口类型时,确定所述深度学习预测部分统一接口为所述适用接口;
此时,直接调用所述深度学习预测部分统一接口。
步骤S42,当所述开发端支持的接口类型不包括所述深度学习预测部分统一接口的接口类型时,通过所述接口转换工具将所述深度学习预测部分统一接口转换成预设目标接口;其中所述开发端支持的接口类型包括所述预设目标接口的接口类型。
此时,通过转换工具将所述深度学习预测部分统一接口转换成适用的预设目标接口并调用之。从而使得各类开发端均能应用本实施例中的架构,实现跨平台的深度学习预测。
在本实施例中,对某一深度学习开发框架下在各个开发端上各自实现的纷乱接口进行了剥离,直接使用集成的深度学习开发框架内核,并重新针对业务需求封装出深度学习预测部分统一接口,并结合接口层的接口转换工具的条件性使用,提供适用于不同开发端的相关接口,避免了不同类别开发端重复生成接口,使得不同的开发系统平台、不同编程语言的开发端均可以应用本实施例中的跨平台架构,并实现深度学习的预测功能。同时,通过搭建基础层(包括集成操作内核、跨平台编译环境、预测代码裁剪配置和人工神经网络)与接口层,避免了不同类别开发端重复生成接口、重复定义训练代码等繁琐、重复性操作流程,提高了深度学习预测部分的产品化效率,有助于降低开发系统的维护成本、以及提升软件性能。
进一步地,基于图3所示的基于深度学习预测部分的跨平台实现方法的第一实施例,以集成操作内核110为Tensorflow框架内核为例进行说明。
其中,所述深度学习预测部分统一接口为C++接口2210,用于连接支持所述C++接口的开发端的连接,以供支持所述C++接口的开发端进行调用;所述C++接口具体是自定义C++接口,即通过类实现面向对象的C++编程,以及在基类中只给出纯虚函数的声明,然后在派生类中实现纯虚函数的具体定义的方式实现接口。
所述接口转换工具为SWIG工具2220,用于连接不支持所述C++接口的开发端,并将所述C++接口转换成预设目标接口,以供不支持所述C++接口的开发端进行调用。
此外,所述平台层包括支持C++接口功能的第一类开发端、以及不支持所述C++接口功能的第二类开发端。需要说明的是,所述第一类开发端、第二类开发端具体包括各类深度学习的开发平台/设备,包括但不限于操作系统平台(如IOS操作系统、Android操作系统、Linux开发系统)、开发服务器平台(如C++server、Python server、Java server、R server、Go sever;其中server为服务器之意,上述五者分别代表使用C++、Python、Java、R语言、Go语言的编程语言实现代码编程和功能开发的服务器端)、嵌入式设备(如Embedded device,即嵌入式设备)。
Tensorflow框架的核心代码直接提供C++接口,因此,平台层30中的支持C++接口的第一类开发端可以通过接口层20中的C++接口调用基础层10封装的深度学习预测统一接口,从而进行深度学习的预测。第一类开发端包括但不限于:IOS、C++server、Linux、Embedded device。
对于不支持C++接口的第二类开发端,则可以连接Tensorflow框架自带的SWIG工具。SWIG工具,其全称为Simplified Wrapper and InterfaceGenerator,即简化的封装器和接口生成器,是一个被广泛使用的开源工具,支持将C/C++代码与任何主流脚本语言相集成。换言之,SWIG工具可以将上述的C++接口转换成支持与第二类开发端连接的具体目标接口。第二类开发端包括但不限于:Android、Python server、Java server、R server、Gosever。
当集成操作内核使用Tensorflow框架内核时,由于C++语言的跨平台兼容能力、以及SWIG工具具有无偏转换接口的能力,本实施例的基于深度学习预测部分的跨平台实现架构可以实现深度学习预测部分的跨平台移植。此外,本实施例的技术核心思想在于:通过对传统的Tensorflow在各个平台上各自实现的纷乱接口进行了剥离,直接使用集成Tensorflow框架内核,重新针对业务需求封装出深度学习预测统一接口。
本发明提供的一种基于深度学习预测部分的跨平台实现架构及方法具有如下有益效果:
(1)对Tensorflow接口不统一的问题的改进。
通过使用“自定义C++接口”对Tensorflow框架内核进行的封装,利用C++的跨平台特性,提供不同操作系统下的统一C++接口。同时通过SWIG精准的把C++接口对应到各个语言,实现了跨语言。对Tensorflow在跨平台跨语言方面进行了精准赋能,使得应用的开发成本、维护成本得到降低,软件质量得到提升。
(2)对Tensorflow应用层接口封装方式不够统一、变化较快的问题的改进。
Tensorflow框架内核接口一般不会发生过于剧烈的变化;若Tensorflow框架内核接口发生过于剧烈的变化,“自定义C++接口”也可以保持不变,这样业务不会跟随Tensorflow版本的进化而做修改。上述Tensorflow应用层封装带来的问题在本文所述发明框架中,也不存在,因为该框架剥离了Tensorflow原本的应用层封装。
(3)对Tensorflow官方发布支持平台种类有限的问题的改进。
本文发明框架对Tensorflow的改进:只要目标操作系统平台具有C++编译器(几乎不存在不具有C++编译器的操作系统),就可以移植,而且各个平台上、不同语言上的接口都是一致的。
(4)对Tensorflow框架内核体量较大、使用应用层接口无法深入等问题的改进。
本发明的框架对Tensorflow的改进:基于预设代码裁剪配置130裁剪训练部分的代码,保留预测部分的代码。具体可以使用Makefile结构配置实现裁剪。
本实施例中的基于深度学习预测部分的跨平台实现架构及方法实现神经网络预测的本地化、业务化,为真正落地机器学习解决方案提供了具体方法。以Tensorflow为例,使用C++接口在其内核之上的直接封装,提升了智能预测软件的开发效率、降低维护成本、以及提升软件性能。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于深度学习预测部分的跨平台实现架构,其特征在于,所述架构包括基础层、接口层和开发层;其中,
所述基础层包括集成操作内核、跨平台编译环境、预测代码裁剪配置和人工神经网络;所述基础层用于封装出深度学习预测部分统一接口;
所述接口层包括所述深度学习预测部分统一接口及接口转换工具;其中,所述接口转换工具用于将所述深度学习预测部分统一接口转换成预设目标接口;
所述开发层包括开发端,用于连接所述接口层,并调用与开发端支持接口类型对应的适用接口,以实现深度学习预测部分的跨平台移植;
其中,所述适用接口为所述深度学习预测部分统一接口或者所述预设目标接口。
2.如权利要求1所述的基于深度学习预测部分的跨平台实现架构,其特征在于,所述集成操作内核为Tensorflow框架内核。
3.如权利要求2所述的基于深度学习预测部分的跨平台实现架构,其特征在于,所述深度学习预测部分统一接口为C++接口,用于连接支持所述C++接口的开发端的连接,以供支持所述C++接口的开发端进行调用;
所述接口转换工具为SWIG工具,用于连接不支持所述C++接口的开发端,并将所述C++接口转换成预设目标接口,以供不支持所述C++接口的开发端进行调用。
4.如权利要求3所述的基于深度学习预测部分的跨平台实现架构,其特征在于,所述开发层包括支持所述C++接口的第一类开发端、以及不支持所述C++接口的第二类开发端。
5.如权利要求4所述的基于深度学习预测部分的跨平台实现架构,其特征在于,所述第一类开发端包括:IOS、C++server、Linux、Embedded device;所述第二类开发端包括:Android、Python server、Java server、R server、Go server。
6.一种基于深度学习预测部分的跨平台实现方法,应用于如权利要求1所述的基于深度学习预测部分的跨平台实现框架,其特征在于,包括如下步骤:
搭建基础层,以封装出深度学习预测部分统一接口;其中,所述基础层包括集成操作内核、跨平台编译环境、预测代码裁剪配置和人工神经网络;
基于所述深度学习预测部分统一接口,搭建接口层;其中,所述接口层包括所述深度学习预测部分统一接口及接口转换工具;所述接口转换工具用于将所述深度学习预测部分统一接口转换成预设目标接口;
当检测到开发端连接所述接口层的请求信号时,确认所述开发端支持的接口类型;
根据所述开发端支持的接口类型,确定对应的适用接口,并实现所述开发端对所述适用接口的调用,以实现深度学习预测部分的跨平台移植;
其中,所述适用接口为所述深度学习预测部分统一接口或者所述预设目标接口。
7.如权利要求6所述的基于深度学习预测部分的跨平台实现方法,其特征在于,所述根据所述开发端支持的接口类型,确定对应的适用接口的步骤,具体包括:
当所述开发端支持的接口类型包括所述深度学习预测部分统一接口的接口类型时,确定所述深度学习预测部分统一接口为所述适用接口;
当所述开发端支持的接口类型不包括所述深度学习预测部分统一接口的接口类型时,通过所述接口转换工具将所述深度学习预测部分统一接口转换成预设目标接口;其中所述开发端支持的接口类型包括所述预设目标接口的接口类型。
8.如权利要求6所述的基于深度学习预测部分的跨平台实现方法,其特征在于,所述集成操作内核为Tensorflow框架内核。
9.如权利要求8所述的基于深度学习预测部分的跨平台实现方法,其特征在于,所述深度学习预测部分统一接口为C++接口,用于连接支持所述C++接口的开发端的连接,以供支持所述C++接口的开发端进行调用;
所述接口转换工具为SWIG工具,用于连接不支持所述C++接口的开发端,并将所述C++接口转换成预设目标接口,以供不支持所述C++接口的开发端进行调用。
10.如权利要求9所述的基于深度学习预测部分的跨平台实现方法,其特征在于,所述开发层包括支持所述C++接口的第一类开发端、以及不支持所述C++接口的第二类开发端;其中,所述第一类开发端包括:IOS、C++server、Linux、Embedded device;所述第二类开发端包括:Android、Python server、Java server、R server、Go server。
CN201810145538.XA 2018-02-11 2018-02-11 基于深度学习预测部分的跨平台实现架构及方法 Active CN108279881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810145538.XA CN108279881B (zh) 2018-02-11 2018-02-11 基于深度学习预测部分的跨平台实现架构及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810145538.XA CN108279881B (zh) 2018-02-11 2018-02-11 基于深度学习预测部分的跨平台实现架构及方法

Publications (2)

Publication Number Publication Date
CN108279881A true CN108279881A (zh) 2018-07-13
CN108279881B CN108279881B (zh) 2021-05-28

Family

ID=62808522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810145538.XA Active CN108279881B (zh) 2018-02-11 2018-02-11 基于深度学习预测部分的跨平台实现架构及方法

Country Status (1)

Country Link
CN (1) CN108279881B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110533162A (zh) * 2019-07-25 2019-12-03 中国科学院计算技术研究所 一种自动生成深度学习框架间操作映射的方法及系统
CN110989995A (zh) * 2019-11-27 2020-04-10 开放智能机器(上海)有限公司 基于开源深度学习框架的人工智能应用的处理方法及系统
CN111240656A (zh) * 2020-01-16 2020-06-05 深圳市守行智能科技有限公司 一种高效的深度学习模型部署框架

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107244A1 (en) * 2002-12-02 2004-06-03 Hung-Chi Kuo Scalable and intelligent network platform for distributed system
US20060062734A1 (en) * 2004-09-20 2006-03-23 Melker Richard J Methods and systems for preventing diversion of prescription drugs
CN101710935A (zh) * 2009-12-02 2010-05-19 北京视博数字电视科技有限公司 一种机顶盒的中间件装置、跨平台接口的方法及机顶盒
CN105955744A (zh) * 2016-05-03 2016-09-21 中国建设银行股份有限公司 一种移动跨平台开发系统及方法
CN106155697A (zh) * 2016-07-30 2016-11-23 北京慧摩尔科技有限公司 一种面向服务的开发框架(YC‑Framework)
CN106874016A (zh) * 2017-03-07 2017-06-20 长江大学 一种新型可定制的大数据平台架构方法
CN107423817A (zh) * 2017-04-17 2017-12-01 星环信息科技(上海)有限公司 一种深度学习实现的方法及设备
CN107563512A (zh) * 2017-08-24 2018-01-09 腾讯科技(上海)有限公司 一种数据处理方法、装置以及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040107244A1 (en) * 2002-12-02 2004-06-03 Hung-Chi Kuo Scalable and intelligent network platform for distributed system
US20060062734A1 (en) * 2004-09-20 2006-03-23 Melker Richard J Methods and systems for preventing diversion of prescription drugs
CN101710935A (zh) * 2009-12-02 2010-05-19 北京视博数字电视科技有限公司 一种机顶盒的中间件装置、跨平台接口的方法及机顶盒
CN105955744A (zh) * 2016-05-03 2016-09-21 中国建设银行股份有限公司 一种移动跨平台开发系统及方法
CN106155697A (zh) * 2016-07-30 2016-11-23 北京慧摩尔科技有限公司 一种面向服务的开发框架(YC‑Framework)
CN106874016A (zh) * 2017-03-07 2017-06-20 长江大学 一种新型可定制的大数据平台架构方法
CN107423817A (zh) * 2017-04-17 2017-12-01 星环信息科技(上海)有限公司 一种深度学习实现的方法及设备
CN107563512A (zh) * 2017-08-24 2018-01-09 腾讯科技(上海)有限公司 一种数据处理方法、装置以及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FEIFEI TA0等: "Research of Cross-platform Intersystem Integration", 《INSTITUTE OF ELECTRICAL AND ELECTRONIC ENGINEERS》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110533162A (zh) * 2019-07-25 2019-12-03 中国科学院计算技术研究所 一种自动生成深度学习框架间操作映射的方法及系统
CN110533162B (zh) * 2019-07-25 2022-01-07 中国科学院计算技术研究所 一种自动生成深度学习框架间操作映射的方法及系统
CN110989995A (zh) * 2019-11-27 2020-04-10 开放智能机器(上海)有限公司 基于开源深度学习框架的人工智能应用的处理方法及系统
CN111240656A (zh) * 2020-01-16 2020-06-05 深圳市守行智能科技有限公司 一种高效的深度学习模型部署框架

Also Published As

Publication number Publication date
CN108279881B (zh) 2021-05-28

Similar Documents

Publication Publication Date Title
CN107526624B (zh) 一种基于Java虚拟机的智能合约执行引擎
CN105677302B (zh) 一种应用程序模块化开发方法以及装置
CN103281311B (zh) 一种使用Protobuf描述的物联网协议解析方法
CN104407863A (zh) 抽象控件模型编程装置和方法
CN108279881A (zh) 基于深度学习预测部分的跨平台实现架构及方法
US20030126584A1 (en) Visual tool for developing service components for use in advanced intelligent networks
US10949171B1 (en) Tools, mechanisms, and processes for transforming modules for an application into pluggable modules
CN103513976B (zh) 业务流程建模方法及装置
CN110399119A (zh) 一种组件化构建方法、装置、电子设备及存储介质
CN102819452B (zh) 一种从android系统获取数据的方法
CN108965375B (zh) 服务调用代理控制系统、方法、服务器及可读存储介质
CN111158690B (zh) 桌面应用框架、构建方法、桌面应用运行方法及存储介质
Sabraoui et al. Gui code generation for android applications using a mda approach
CN108509193A (zh) 一种使用可视化组件封装功能模块的系统
CN106873952A (zh) 移动端网页开发的数据处理系统和方法、及应用装置
CN110633076A (zh) 一种自动生成Solidity智能合约Java客户端程序的方法
CN109754072A (zh) 网络离线模型的处理方法、人工智能处理装置及相关产品
CN105955731A (zh) 一种手机游戏快速编写方法和系统
CN102622237A (zh) 一种业务功能流程化的配置方法及系统
KR20220160518A (ko) 액세스 방법, 장치, 전자 기기 및 컴퓨터 저장 매체
CN104239613B (zh) 发动机协同设计集成应用系统
CN108985459A (zh) 训练模型的方法和装置
CN104978170B (zh) 一种基于图形化表示的多智能体系统生成方法
CN102707934B (zh) 一种以脚本形式表示增值业务流程的实现方法和系统
CN114936631B (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