CN114706568B - 深度学习在线编码方法和系统 - Google Patents
深度学习在线编码方法和系统 Download PDFInfo
- Publication number
- CN114706568B CN114706568B CN202210425555.5A CN202210425555A CN114706568B CN 114706568 B CN114706568 B CN 114706568B CN 202210425555 A CN202210425555 A CN 202210425555A CN 114706568 B CN114706568 B CN 114706568B
- Authority
- CN
- China
- Prior art keywords
- training
- container
- data set
- online
- model
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000013135 deep learning Methods 0.000 title claims abstract description 49
- 238000011161 development Methods 0.000 claims abstract description 31
- 238000012549 training Methods 0.000 claims description 128
- 238000012795 verification Methods 0.000 claims description 73
- 238000011156 evaluation Methods 0.000 claims description 20
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 230000037303 wrinkles Effects 0.000 claims description 6
- 238000010200 validation analysis Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000018109 developmental process Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 10
- 238000002955 isolation Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000001815 facial effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 239000002537 cosmetic Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000001061 forehead Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000699 topical effect Effects 0.000 description 1
Abstract
本申请公开了一种深度学习在线编码方法和系统。其中,该方法包括:接收输入的所选编程任务,基于所选编程任务创建项目;针对所述项目,初始化编码容器,以供在线编码所用;其中,所述编码容器包括:在线代码编辑器,用于提供在线代码开发;深度学习框架,用于为所述在线代码编辑器提供在线代码开发所需的深度学习的框架;编码数据集,用于为所述在线代码编辑器提供在线代码开发所需的数据集。本申请解决了相关技术中的在线编码方法安全性不高的技术问题。
Description
技术领域
本申请涉及人工智能领域,具体而言,涉及一种深度学习在线编码方法和系统。
背景技术
目前现有的这些人工智能编程方案,存在以下问题:1)方案比较笼统,对编程系统的编程及程序运行核心机制部分描述缺失,很多方案更多是一个信息系统;2)在编程平台的安全机制上缺失,没有描述任何保证在线编码过程中数据安全、程序运行安全等安全问题的解决;3)尚未有方案专门针对深度学习,更没有针对深度学习领域的优化。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种深度学习在线编码方法和系统,以至少解决相关技术中的在线编码方法安全性不高的技术问题。
根据本申请实施例的一个方面,提供了一种深度学习在线编码方法,包括:接收输入的所选编程任务,基于所选编程任务创建项目;针对所述项目,初始化编码容器,以供在线编码所用;其中,所述编码容器包括:在线代码编辑器,用于提供在线代码开发;深度学习框架,用于为所述在线代码编辑器提供在线代码开发所需的深度学习的框架;编码数据集,用于为所述在线代码编辑器提供在线代码开发所需的数据集。
根据本申请实施例的另一方面,还提供了一种深度学习在线编码系统,包括:创建模块,被配置为接收输入的所选编程任务,基于所选编程任务创建项目;初始化模块,被配置为针对所述项目,初始化编码容器,以供在线编码所用;其中,所述编码容器包括:在线代码编辑器,用于提供在线代码开发;深度学习框架,用于为所述在线代码编辑器提供在线代码开发所需的深度学习的框架;编码数据集,用于为所述在线代码编辑器提供在线代码开发所需的数据集。
在本申请实施例中,采用分割数据集、容器化隔离的方式,解决了相关技术中的在线编码方法安全性不高的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种深度学习在线编码方法的流程图;
图2A是根据本申请实施例的一种在线编码方法的流程图;
图2B是根据本申请实施例的供浏览的数据集市的页面的示意图;
图3A是根据本申请实施例的生成打榜任务的方法的流程图;
图3B是根据本申请实施例的打榜任务的页面的示意图;
图4A是根据本申请实施例的利用编码容器在线编码的方法的流程图;
图4B是根据本申请实施例的编码容器的结构示意图;
图5是根据本申请实施例的基于安全模式的深度学习在线编码方法的流程图;
图6A是根据本申请实施例的基于项目管理模式的深度学习在线编码方法的流程图;
图6B是根据本申请实施例的项目管理页面的示意图;
图7是根据本申请实施例的能够对任务状态进行管理的在线编码方法的流程图;
图8是根据本申请实施例的另一种在线编码方法的流程图;
图9是根据本申请实施例的再一种在线编码方法的流程图;
图10是根据本申请实施例的在线编码系统的结构示意图;
图11是根据本申请实施例的又一种在线编码方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,提供了一种深度学习在线编码方法,如图1所示,该方法包括:
步骤S102,提供数据集市中的数据集供浏览。
数据集是深度学习中必要的元素,作为编程的核心依赖要素,过往的编程平台只提供在线编码功能,而没有提供数据集,这样会导致开发者需要自己去收集数据集,从而导致大量的时间花费在数据集的收集和准备上,进而导致算法开发效率低下,分散了开发者精力。
本申请实施例在编程平台(深度学习在线编码系统)上直接提供了各种主题相关的数据集,形成数据集市,开发者无需重复性的去准备数据集,从而提升了开发效率,并且平台上同一个数据集也不会有重复存储,这样节省了无效存储花费。
步骤S104,提供打榜任务供选择。
在数据集市中的数据集都有其特定的用途,即是为了解决某个问题而存在的,而针对某个具体问题,本实施例会在平台上创建打榜任务,用于以一个打榜排名的机制,鼓励算法开发者前来挑战。
算法开发者可以选择其想参加的打榜任务,然后基于关联的数据集进行算法开发,然后通过本平台的算法评价机制对所开发出的算法进行评价、排序,形成打榜榜单。
步骤S106,创建项目。
当开发者选择了打榜任务并决定参与该任务后,可以点击参与任务,后台即会为开发者的本次参与的打榜任务创建配套的开发项目,预分配后续的软硬件资源。
步骤S108,在线编码。
创建完项目后,算法开发者可以进入到项目详情,根据项目的状态,对项目进行各项操作。
首先,开发者需要在线编码才有后续的步骤。开发者点击在线编码,后台会开始真正的为该项目初始化编码容器,分配相应的资源,包含编码依赖的硬件资源,编码容器的分配。编码容器包含在线代码编辑器、深度学习框架及依赖库、编码数据集等配置。编码环境初始化完成后,跳转进在线代码编辑器,开发者在上面基于编码数据集在线编码。
步骤S110,训练模型。
用户完成编码后,可以发起训练任务进行模型的训练。为了安全,本申请实施例把编码、训练、验证、应用各个环节都进行了容器的隔离,并且数据集也进行了分割,分别为编码数据集、训练数据集、验证数据集;开发者发起训练模型的请求,后台会把编码容器的配置进行拷贝,并替换其中的数据集,然后运行到更为强大的训练硬件环境上的训练容器中。所以,训练过程相较于编码过程,具有更强大的硬件配置、更大量的训练数据集;训练模型通过对训练数据集的学习,输出满足特定指标评价的模型文件。
步骤S112,验证模型。
在训练环节输出模型文件后,开发者可以发起验证模型的任务。后台会继续单独分配验证容器;验证容器的配置和训练容器一样,只是把其中的数据集换成验证数据集;通过验证数据集验证算法模型的泛化能力;验证完毕会输出模型在验证数据集上的性能指标的表现。
步骤S114,部署应用。
当模型文件通过验证后,得到了优秀的指标评价表现,那么开发者可以将该模型上线应用。当开发者发起部署应用后,模型文件结合其推理代码被部署到应用容器中,并对外输出服务接口,以供应用程序调用。
在本申请实施例中,提供了数据集市,数据集市不仅方便开发者直接使用数据集,而且避免了低效重复构建数据集。此外,系统设计的打榜任务,有效的引导开发者集中力量攻关业内难题,鼓励优秀算法,并且,开发者可以参与任务,创建项目,进行在线编码、训练、验证、应用部署等整套流程。不仅如此,本申请实施例还通过分割数据集、容器化隔离各个流程实现数据安全与程序运行安全。此外,通过本实施例,可以极大的提高深度学习领域的算法编程实施。
实施例2
根据本申请实施例,提供了一种数据集的准备方法,如图2A所示,该方法包括:
步骤S202,将数据分类,形成数据集。
例如,可以将样本图片分类到人脸色斑数据集、人脸皱纹数据集,舌头数据集、舌苔类型数据集、菜品分类数据集或化妆分类数据集中。
每一个数据集,都有相应的详情页对其进行描述,包括:概述、说明、分类数据、数据集的切分规则、样例展示、关联的打榜。这样算法开发者可以清晰的理解这个数据集的目的和使用规则。
步骤S204,根据数据集形成数据集市。
数据集市是数据集的汇总。可以通过分组组织数据集,如热门数据集、最新数据集、以及其他分组将数据集进行分类。例如,按照开发者的使用数量,将人脸色斑数据集、人脸皱纹数据集,舌头数据集分类到热门数据集中;按照更新时间,将舌苔类型数据集、菜品分类数据集或化妆分类数据集分类到最新数据集中。在一个示例性实施例中,还可以提供数据集的搜索。这样,开发者只需要在平台上选择自己需要的数据集即可。如此,平台通过运营数据集市来吸引开发者前来开发算法。
形成数据集市之后,可以提供数据集市的页面供开发者浏览选择。供浏览的数据集市的页面可以如图2B所示。
现有的编程平台需要开发者自己准备数据集,这样的方式主要缺陷为:
1)低效。在人工智能领域,特别是深度学习,非常依赖数据集的大小和质量;而现有技术中的在线编码平台都没有提供数据集,需要开发者自己解决,导致开发者在编写算法之前,花费大量的时间在数据准备上,从而导致开发效率低下。
2)重复。每个算法开发者自己准备数据,意味着在平台上相同的任务会有大量几乎相同的数据集,这导致重复占用平台资源。
而本申请实施例,在编程平台提供数据集市,里面有各类问题依赖的数据集,让开发者专注于核心算法的开发,从而提高了开发者的开发效率。此外,平台提供一套数据集,不需要开发者存储重复的数据集,从而能够避免重复存储,降低存储成本。
实施例3
除了提供数据集,为了集中力量去解决一些业内当前的一些重要或紧急的问题,本申请实施例在平台上设计了打榜任务。
根据本申请实施例,提供了一种生成打榜任务的方法,如图3A所示,该方法包括:
步骤S302,提供打榜任务的描述。
打榜任务是为了解决某个问题而发起的算法需求,它依赖数据集市的某个或多个数据集。
在打榜任务中对该任务进行描述,例如,任务的目标、类型、有效时间、算法结果输出格式、评价标准、激励机制等。
步骤S304,发布打榜任务,供开发者参与。
打榜任务发布后,算法开发者可以参与打榜,即,选择打榜任务。
步骤S306,提供打榜评价。
榜单是根据算法评价体系对同一个任务不同项目的表现进行打分并排序的列表。本申请实施例的算法评价指标主要包含:准确率、召回率、F1、训练耗时、验证耗时、CPU使用占比、内存占用大小。本申请实施例的算法评价指标仅是示例,不排除利用其他指标来进行评价。在本申请实施例中,进行评价时,不仅考虑算法的效果、也考虑了算法的代价。
图3B是一个打榜任务的详情页设计示例图。打榜任务的详情可以包括名称、海报、分类、状态、起止时间、多少人看、多少人参与、关联的项目数、介绍、榜单、关联的数据集等。
生成打榜任务并提供打榜评价体系之后,开发者点击该任务详情页面中的″立即参与″,便可以参与到打榜任务中。
平台基于所选的打榜任务创建项目,接收开发者的在线编码,并利用数据集训练、验证模型之后,可以利用预设的评价机制形成打榜排行,并根据激励机制激励那些在榜单前面的算法贡献者。
本实施例通过在系统中设计打榜任务模块,可以极大的明确算法主题,有效的引导算法开发者对行业难题、重点问题进行比赛式的攻关,并获得激励。
实施例4
根据本申请实施例,提供了一种利用编码容器在线编码的方法。该方法如图4A所示,包括以下步骤:
步骤S402,提供在线代码编辑器。
如图4B所示,编码容器的架构由以下三部分构成:在线代码编辑器42、深度学习架构44和容器环境46。
在线代码编辑器可以选择主流的Web IDE(在线集成开发环境)并对其进行项目结构的定制。本实施例支持JupterLab、VSCode等主流Web IDE。
本申请实施例的在线代码编辑器的核心在于对项目结构的定制。以下是根据本实施例的项目定制的结构表:
本实施例中制定了项目标准结构。通过制定项目标准结构:1)降低了开发者工程化的门槛,使得开发者可以按照既定的工程结构来开发即可;2)使得自动化变得可能,因为平台需要对各个项目进行统计、自动化执行、管理的操作等,如果每个项目结构都不一样,那么平台对项目的管理会变得非常困难;所以,本实施例制定规范的项目结构、使其模板化,和系统之间的接口变得统一,极大的便捷了平台的管理和控制、统计。
步骤S404,提供深度学习架构。
深度学习编程往往会依赖一些业内通用的架构,以便开发者更加专注于核心算法本身。本实施例提供了业内主流深度学习框架,如TensorFlow、Pytorch等。在编程平台直接提供深度学习框架,避免了开发者重复的去下载框架,节约了开发者的时间,并节约了平台的存储资源。
步骤S406,设置容器环境。
本实施例最底层的容器可以采用Docker容器化,并采用Kubernet进行容器的编排。
需要说明的是,上述的是编码容器的架构、平台上还有训练容器、验证容器、应用容器;其中,训练容器的架构、验证容器的架构和编码容器的架构类似,只是各自的数据集不一样,因此不再赘述。本实施例之所以设置这么多容器,主要是为了安全考虑,将每一步进行风险隔离。
步骤S408,利用各个容器进行编码、训练、验证、应用部署。
本实施例中,编码、训练、验证、应用部署这4个环节,都是在不同的容器环境中运行的。具体地,利用编码容器进行编码,利用训练容器训练模型,利用验证容器验证训练好的模型,利用应用容器,进行应用调用。
相较于现有的方案,本实施例采用容器化的运行环境,具有以下有益效果:
1)高效运维。容器化的运行环境具有很好的独立性、容器容易迁移、拷贝、扩展部署等,都比直接在宿主机上运行要好,所以本实施例采用容器化的运行环境;
2)安全运行。容器化的运行环境具有很好的隔离性,每个容器内运行的程序就像在一个沙箱里运行,即便出错了,也只影响到容器内。
实施例5
根据本申请实施例,提供了一种基于安全模式的深度学习在线编码方法。
编程平台的安全主要有两个方面,一个方面是数据安全,另一个方面是程序运行安全。
本实施例的深度学习在线编码方法如图5包括以下步骤:
步骤S502,对数据集进行保护和隔离,以确保数据安全。
本实施例为开发者提供数据集,但不希望开发者可以从平台下载数据集,因为数据集本身也是一个平台的核心竞争力之一。所以,本实施例需要对数据集进行保护。
此外,本实施例对数据集切分:将数据集切分为编码数据集、训练数据、验证数据集。
步骤S504,对容器进行隔离,以确保程序运行安全。
程序运行安全是指程序运行过程中的安全问题。本实施例的安全策略是:对深度学习程序运行的几个大流程步骤,每个步骤单独分配容器,并且分配对应的数据集。
为了实现程序运行安全,本实施例提供了容器隔离和数据集切分两个安全保护方法。
容器隔离:本实施例对编码、训练、验证、(推理)应用分配编码容器、训练容器、验证容器、应用容器。
容器隔离和数据集隔离的对应关系及说明如下表所示:
步骤S506,利用相应的数据集和容器进行编码、训练、验证操作。
本实施例通过上述容器的隔离与数据集的切分,实现了程序运行安全与数据访问安全的有益效果。
实施例6
本实施例提供了一种能够进行项目管理的在线编码方法。开发者参与一个任务,就会创建一个项目,而项目的生命周期,即项目的状态包含了编码、训练、验证、应用。为了更加方便的管理项目,本申请实施例提供了相应的项目详情页,包含了项目的各类信息与状态、以及状态之间的流转过程。
本实施例的项目详情的信息结构如图6A所示,图6A所示不仅是信息结构,也是一个项目顺序流程的体现。如图6A所示,本实施例的方法包括以下步骤:
步骤S602,提供基本信息。
基本信息主要包含项目名称、状态、编码容器的资源、训练容器的资源、验证容器的资源、深度学习的框架、关联的数据集、创建时间、更新时间以及其他新信息。
步骤S604,提供在线编码环境。
开发者浏览了项目的基本信息后,可以点击进入在线编码界面,开始编码。此功能在上面的实施例已描述,此处不再赘述。
步骤S606,执行训练任务。
对开发者利用编码容器进行的编码进行训练,得到模型文件。
本实施例中,对本项目多次训练任务的执行进行记录,例如,记录任务ID、进度、发起时间、开始训练时间、结束训练时间、任务状态等。
步骤S608,训练输出。
正常训练完成的训练任务,会产生模型文件,所以在模型文件Tab可以看模型文件相关信息,包含关联的训练任务ID、文件存储路径、文件大小、创建时间、训练总结等。
步骤S610,执行验证任务。
针对训练输出的模型文件,可以发起验证,因为只有在验证集上得分高的模型,才说明其具有很好的泛化能力。验证任务的描述包括模型文件、发起时间、开始验证时间、结束验证时间、任务状态等。
步骤S612,验证输出。
验证任务执行完,会输出对模型在验证数据集上各项指标的性能表现总结,评价该模型是否优秀。具体信息设计包括验证任务ID、模型文件路径、文件大小、验证时间、验证总结等。
步骤S614,应用部署。
被验证的模型,用户可以部署上线,即应用部署。信息设计包含部署ID、模型文件、接口地址、上线时间、下线时间、调用次数、服务状态等;
基于这个项目的信息结构,一个可实现的界面设计示例如图6B所示,但不限于这种样式,本实施例不对界面展开说明。
实施例7
上述项目的状态流程中,涉及到训练任务、验证任务,都是任务;而任务就涉及到对任务状态的管理。本实施例提供了一种能够对任务状态进行管理的在线编码方法。如图7所示,该方法包括以下步骤:
步骤S702,发起任务。
开发者利用编码容器进行在线编码之后,可以点击发起训练或发起验证的任务。
步骤S704,排队中。
由于训练和验证都非常的耗时,所以在有限的硬件条件下,需要对任务进行排队调度,所有的任务都需要按优先级及时间先后顺序进行排队等候。
步骤S706,执行任务中。
当任务排队等到了资源后,就可以进入到真正的训练和验证执行过程。
步骤S708,已完成任务。
如果任务没有异常、用户没有取消,正常结束,则任务变为已完成,训练任务会输出模型文件,验证任务会输出模型的验证表现。
步骤S710,已取消任务。
任务在排队中、执行中,都有可能被取消。主要原因有三种,第一种是用户主动取消、第二种是程序异常出错导致、第三种是平台强制中断;平台中断任务大多因为任务违反了规则、资源使用过量等原因。
实施例8
根据本申请实施例,还提供了一种在线编码的方法,该方法如图8包括以下步骤:
步骤S802,将数据集至少分切为编码数据集、训练数据集和验证数据集;
步骤是804,在编码容器中,利用所述编程数据集进行在线编码;在训练容器中,利用训练数据集,来训练在线编码所得到的代码,并生成模型文件;在验证容器中,利用验证数据集,来验证所述模型文件。
在一个实施例中,在验证模型文件之后,还可以在应用容器中,部署应用,为外部调用提供调用接口。
本实施例通过上述容器的隔离与数据集的切分,实现了程序运行安全与数据访问安全的有益效果。
实施例9
本实施例提供了一种深度学习在线编码方法,该方法如图9所示,包括以下步骤:
步骤S902,接收输入的所选编程任务,基于所选编程任务创建项目;
步骤S904,针对所述项目,初始化编码容器,以供在线编码所用;
在一个示例性实施例中,所述编码容器包括:在线代码编辑器,用于提供在线代码开发;深度学习框架,用于为所述在线代码编辑器提供在线代码开发所需的深度学习的框架;编码数据集,用于为所述在线代码编辑器提供在线代码开发所需的数据集。
在一个示例性实施例中,所述在线代码编辑器包括以下至少之一的数据结构:数据集目录,用于存放包括所述编码数据集的多个数据集;源码目录,用于存放利用所述在线代码编辑器开发的代码;模型文件目录,用于存放基于所开发的代码生成的模型文件;日志文件目录,用于存放日志文件。
在一个示例性实施例中,在开发者完成编码之后,还可以基于开发者发出的训练模型的请求,将所述编码容器中的所述编码数据集替换为训练数据集,并将所述编码容器的配置拷贝到训练容器中,其中,所述训练容器的硬件资源比所述编码容器的硬件资源好;并利用所述训练数据集,对所述训练容器中的代码进行模型训练,生成满足预定指标评价的模型文件。
在一个示例性实施例中,在训练模型之后,所述方法还可以包括:基于开发者发出的验证模型的请求,将所述训练容器中的训练数据集替换为验证数据集,并将所述训练容器的配置拷贝到验证容器中;利用所述验证数据集,在所述验证容器中,验证所述模型文件对应的模型的泛化能力。
在一个示例性实施例中,在进行训练或进行验证之前,所述方法还包括:在接收到所述训练模型的请求或所述验证模型的请求之后,按照预设的优先级顺序,对所述训练模型的请求或所述验证模型的请求进行排队等候分配资源,以进行训练或进行验证。此外,在排队等候期间,开发者可以选择取消训练模型的请求或验证模型的请求。
在一个示例性实施例中,所述方法还包括:在开始编码之前,将样本图片进行分类,得到多个数据集;将所述多个数据集划分为所述编码数据集、所述训练数据集和所述验证数据集,其中,所述训练数据集占所述多个数据集的比例为80%以上,所述训练数据集包括用于训练模型的训练数据子集和用于测试模型的测试数据子集。
在一个示例性实施例中,所述方法还包括:对所述项目进行管理,所述管理包括以下至少之一:提供并管理所述项目的基本信息,其中,所述项目的基本信息包括以下至少之一:项目名称、状态、所述编码容器的资源、所述训练容器的资源、所述验证容器的资源、所述深度学习框架、关联的数据集、创建时间、以及更新时间;提供并管理对所述项目进行训练的训练信息,其中,所述训练信息包括以下至少之一:任务ID、进度、发起时间、开始训练时间、结束训练时间和任务状态;提供并管理对所述项目进行训练后生成的模型文件的相关信息,所述模型文件的相关信息包括以下至少之一:关联的训练任务ID、文件存储路径、文件大小、创建时间、训练总结;提供并管理验证所述模型文件的信息,其中,验证所述模型文件的信息包括以下至少之一:所述模型文件、发起时间、开始验证时间、结束验证时间和任务状态;提供并管理验证所述模型文件的验证结果信息,其中,所述验证结果信息包括以下至少之一:验证任务ID、模型文件路径、文件大小、验证时间和验证总结;提供并管理部署信息,其中,所述部署信息包括以下至少之一:部署ID、所述模型文件、接口地址、上线时间、下线时间、调用次数和服务状态。
在一个示例性实施例中,所述方法还包括:基于以下至少之一的算法评价指标对所开发出的代码进行评价和排序:准确率、召回率、准确率和召回率的综合评价指标F1、训练耗时、验证耗时、CPU使用占比和内存占用大小,其中,F1=2*所述准确率*所述召回率。
在一个示例性实施例中,所述方法还包括:将所述模型文件结合所述模型文件的推理代码部署到应用容器中,并对外输出服务接口;接收到所述服务接口的调用请求后,调用所述应用容器中的所述模型文件。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例10
根据本申请实施例,还提供了一种深度学习在线编码系统。该系统包括彼此隔离的编码容器12、训练容器14和验证容器16。在一个示例性实施例中,除了上述容器之外,还可以包括应用容器。
将数据集至少分切为编码数据集、训练数据集和验证数据集。为编码容器、训练容器和验证容器分别提供不同的编码数据集、训练数据集和验证数据集。在编码容器中,利用所述编程数据集进行在线编码;在训练容器中,利用训练数据集,来训练在线编码所得到的代码,并生成模型文件;在验证容器中,利用验证数据集,来验证所述模型文件。
其中,所述编码容器包括:在线代码编辑器,用于提供在线代码开发;深度学习框架,用于为所述在线代码编辑器提供在线代码开发所需的深度学习的框架;编码数据集,用于为所述在线代码编辑器提供在线代码开发所需的数据集。
实施例11
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以位于网络中的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,存储介质被设置为存储用于执行实施例1至9中的方法的程序代码。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
实施例12
根据本申请实施例,还提供了一种深度学习在线编码方法,如图11所示,该方法包括以下步骤:
步骤S1102,将数据集划分为编码数据集、训练数据集和验证数据集。
步骤S1104,编码容器利用编码数据集提供在线编码环境。
步骤S1106,训练容器利用训练数据集训练在线编码得到的代码,生成模型文件。
在一个示例性实施例中,选择所述样本图片上的一像素P,并获取像素P的亮度。如果该像素P的亮度小于预设阈值,则判定该像素所在的区域可能为皱纹或色斑所在的区域。将像素P确定为特征点。
确定了特征点的方向之后,进一步确定特征点的方向。
在样本图片中截取一小图像块,将图像块的矩定义为:
基于以下公式确定质心:
在所述小图像块中,将几何中心点O与质心C连线,并基于以下公式确定所述特征点的方向:
其中,mpq为图像块的矩,B为选取的图像块,I(x,y)为所述图像块在坐标点(x,y)处的像素的灰度,p为在所述图像块上选取的一像素,q为在所述图像块上选取的临近像素P的像素点,m01为在所述图像块上选取的像素p的一阶矩,m02为在所述图像块上选取的像素q的一阶矩,m00为所述图像块上的零阶矩,θ为特征点的方向。
确定了特征点的方向之后,将所述像素P作为中心,以沿着特征点的方向为对称轴并以预设值为半径做半圆,在该半圆内选择多个像素;在所述圆具有亮度小于预设阈值的连续N个点,则判定所述像素P所在的半圆区域为所述特征点所在的区域,重复上述步骤,直至确定出所述样本图片上的所有特征点。在本实施例中,针对像素P,选择的是半径为预设圆的区域,在其他实施例中,可以针对识别的目标不同,例如,如果识别的是额头区域的抬头纹,则选择的区域可以是预设长度和宽度的长方形区域。
通过确定出样本图片中的特征点的数量,可以将样本图片进行分类,例如,可以基于特征点的数量,将样本图片中的皱纹按照严重程度分为严重、轻微、无皱纹等级别,以进一步利用分类的样本图片来训练模型。
在本实施例中,通过确定特征点的方向,来寻找其他的特征点,提高了确定特征点的速度和精确度,并进一步提高了识别样本图片的速度和准确度,从而为使用这些样本图片来训练模型提供了保证。
在卷积神经网络中,通常利用误差函数来更新网络的参数。首先求出网络的输出值与目标值之间的误差,当误差大于期望值时,将误差传回网络中。网络中各层的误差可以理解为对于网络的总误差,当误差等于或小于期望值时,结束训练。本申请实施例中为了提高训练的准确性,可以采用以下公式来计算误差:
其中,E表示误差,N表示训练数据集中的样本数,fi表示真实值,yi表示预测值,λF为分数阶导数算子,x为输入信号,bn2为多项式常数项系数,K为常数系数。
步骤S1108,验证容器利用验证数据集验证所生成的模型文件。
模型验证的目的是为了确保数据分析的准确性、模型设计的合理性、开发过程和结果的有效性、稳定性。针对以上几个关键点,可以从以下几个方面对模型进行验证。
数据验证主要包括数据来源的准确性、数据选择的完整性、数据质量及缺陷的处理方式等。数据集中的数据应该基本能够覆盖风险特征的各个维度,确保样本的全面性。此外,对于缺失率高的样本图片或者极端值可以应当剔除。
由于神经网络的泛化能力要比线性模型要强,因此,本实施例选择了神经网络模型。首先设置神经网络的层数和每层神经网络的神经元个数以及正则化的一些参数。之后调节这些超参数来使得模型泛化能力最强。
步骤S1110,部署应用。
当模型文件通过验证后,得到了优秀的指标评价表现,那么开发者可以将该模型上线应用。当开发者发起部署应用后,模型文件结合其推理代码或部署到推理容器中,并对外输出服务接口,以供应用程序调用。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (9)
1.一种深度学习在线编码方法,其特征在于,包括:
接收输入的所选编程任务,基于所选编程任务创建项目;
针对所述项目,初始化编码容器,以供在线编码所用;
其中,所述编码容器包括:
在线代码编辑器,用于提供在线代码开发;
深度学习框架,用于为所述在线代码编辑器提供在线代码开发所需的深度学习的框架;
编码数据集,用于为所述在线代码编辑器提供在线代码开发所需的数据集;
其中,所述方法还包括:基于训练模型的请求,将所述编码容器中的所述编码数据集替换为训练数据集,并将所述编码容器的配置拷贝到训练容器中,其中,所述训练容器的硬件资源比所述编码容器的硬件资源好;利用所述训练数据集,对所述训练容器中的代码进行模型训练,生成满足预定指标评价的模型文件;
其中,所述训练数据集中的样本图片上的所有特征点基于以下确定:选择所述样本图片上的一像素P,并获取像素P的亮度,如果该像素P的亮度小于预设阈值,则判定该像素所在的区域可能为皱纹或色斑所在的区域,将像素P确定为特征点;将所述像素P作为中心,以沿着特征点的方向为对称轴并以预设值为半径做半圆,在该半圆内选择多个像素;在所述半圆具有亮度小于预设阈值的连续N个点,则判定所述像素P所在的半圆区域为所述特征点所在的区域,重复上述特征点的确定步骤,直至确定出所述样本图片上的所有特征点;基于所述样本图片上的所有特征点的数量,来对所述样本图片进行分类,以利用分类后的所述样本图片来对模型进行训练。
2.根据权利要求1所述的方法,其特征在于,所述在线代码编辑器包括以下至少之一:
数据集目录,用于存放包括所述编码数据集的多个数据集;
源码目录,用于存放利用所述在线代码编辑器开发的代码;
模型文件目录,用于存放基于所开发的代码生成的模型文件;
日志文件目录,用于存放日志文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于验证模型的请求,将所述训练容器中的训练数据集替换为验证数据集,并将所述训练容器的配置拷贝到验证容器中;
利用所述验证数据集,在所述验证容器中,验证所述模型文件对应的模型的泛化能力。
4.根据权利要求2或3所述的方法,其特征在于,在进行训练或进行验证之前,所述方法还包括:
在接收到所述训练模型的请求或验证模型的请求之后,按照预设的优先级顺序,对所述训练模型的请求或所述验证模型的请求进行排队等候分配资源,以进行训练或进行验证。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将样本图片进行分类,得到多个数据集;
将所述多个数据集划分为所述编码数据集、所述训练数据集和所述验证数据集,其中,所述训练数据集占所述多个数据集的比例为80%以上,所述训练数据集包括用于训练模型的训练数据子集和用于测试模型的测试数据子集。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:对所述项目进行管理,所述管理包括以下至少之一:
提供并管理所述项目的基本信息,其中,所述项目的基本信息包括以下至少之一:项目名称、状态、所述编码容器的资源、所述训练容器的资源、所述验证容器的资源、所述深度学习框架、关联的数据集、创建时间、以及更新时间;
提供并管理对所述项目进行训练的训练信息,其中,所述训练信息包括以下至少之一:任务ID、进度、发起时间、开始训练时间、结束训练时间和任务状态;
提供并管理对所述项目进行训练后生成的模型文件的相关信息,所述模型文件的相关信息包括以下至少之一:关联的训练任务ID、文件存储路径、文件大小、创建时间、训练总结;
提供并管理验证所述模型文件的信息,其中,验证所述模型文件的信息包括以下至少之一:所述模型文件、发起时间、开始验证时间、结束验证时间和任务状态;
提供并管理验证所述模型文件的验证结果信息,其中,所述验证结果信息包括以下至少之一:验证任务ID、模型文件路径、文件大小、验证时间和验证总结;
提供并管理部署信息,其中,所述部署信息包括以下至少之一:部署ID、所述模型文件、接口地址、上线时间、下线时间、调用次数和服务状态。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于以下至少之一的算法评价指标对所开发出的代码进行评价和排序:准确率、召回率、准确率和召回率的综合评价指标F1、训练耗时、验证耗时、CPU使用占比和内存占用大小,其中, F1=2*所述准确率*所述召回率。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述模型文件结合所述模型文件的推理代码部署到应用容器中,并对外输出服务接口;
接收到所述服务接口的调用请求后,调用所述应用容器中的所述模型文件。
9.一种深度学习在线编码系统,其特征在于,包括:
创建模块,被配置为接收输入的所选编程任务,基于所选编程任务创建项目;
初始化模块,被配置为针对所述项目,初始化编码容器,以供在线编码所用;
其中,所述编码容器包括:
在线代码编辑器,用于提供在线代码开发;
深度学习框架,用于为所述在线代码编辑器提供在线代码开发所需的深度学习的框架;
编码数据集,用于为所述在线代码编辑器提供在线代码开发所需的数据集;
其中,所述深度学习在线编码系统还被配置为:基于训练模型的请求,将所述编码容器中的所述编码数据集替换为训练数据集,并将所述编码容器的配置拷贝到训练容器中,其中,所述训练容器的硬件资源比所述编码容器的硬件资源好;利用所述训练数据集,对所述训练容器中的代码进行模型训练,生成满足预定指标评价的模型文件;
其中,所述训练数据集中的样本图片上的所有特征点基于以下确定:选择所述样本图片上的一像素P,并获取像素P的亮度,如果该像素P的亮度小于预设阈值,则判定该像素所在的区域可能为皱纹或色斑所在的区域,将像素P确定为特征点;将所述像素P作为中心,以沿着特征点的方向为对称轴并以预设值为半径做半圆,在该半圆内选择多个像素;在所述半圆具有亮度小于预设阈值的连续N个点,则判定所述像素P所在的半圆区域为所述特征点所在的区域,重复上述特征点的确定步骤,直至确定出所述样本图片上的所有特征点;基于所述样本图片上的所有特征点的数量,来对所述样本图片进行分类,以利用分类后的所述样本图片来对模型进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210425555.5A CN114706568B (zh) | 2022-04-22 | 深度学习在线编码方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210425555.5A CN114706568B (zh) | 2022-04-22 | 深度学习在线编码方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114706568A CN114706568A (zh) | 2022-07-05 |
CN114706568B true CN114706568B (zh) | 2024-07-05 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310934A (zh) * | 2020-02-14 | 2020-06-19 | 北京百度网讯科技有限公司 | 一种模型生成方法、装置、电子设备和存储介质 |
CN111901294A (zh) * | 2020-06-09 | 2020-11-06 | 北京迈格威科技有限公司 | 一种构建在线机器学习项目的方法及机器学习系统 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310934A (zh) * | 2020-02-14 | 2020-06-19 | 北京百度网讯科技有限公司 | 一种模型生成方法、装置、电子设备和存储介质 |
CN111901294A (zh) * | 2020-06-09 | 2020-11-06 | 北京迈格威科技有限公司 | 一种构建在线机器学习项目的方法及机器学习系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022252363A1 (zh) | 数据处理方法、计算机设备以及可读存储介质 | |
US20050223354A1 (en) | Method, system and program product for detecting software development best practice violations in a code sharing system | |
CN111523413B (zh) | 生成人脸图像的方法和装置 | |
US11461774B1 (en) | Creating and managing artificially intelligent entities represented by non-fungible tokens on a blockchain | |
Singh | Deploy machine learning models to production | |
WO2021155691A1 (zh) | 用户画像生成方法、装置、存储介质及设备 | |
CN107807935B (zh) | 应用推荐方法及装置 | |
CN113010255A (zh) | 基于捆绑会话组的交互方法、装置和计算机设备 | |
CN114461906A (zh) | 一种聚焦于用户核心兴趣的序列推荐方法及装置 | |
WO2021258968A1 (zh) | 小程序分类方法、装置、设备及计算机可读存储介质 | |
JP7447251B2 (ja) | デジタルコンテンツの視覚的品質の評価 | |
CN114706568B (zh) | 深度学习在线编码方法和系统 | |
Pechenizkiy et al. | A framework for guiding the museum tours personalization | |
CN115186305B (zh) | 一种构建数据元件模型并生产数据元件的方法 | |
CN115730142A (zh) | 一种确定投放内容的方法、装置、计算机设备及存储介质 | |
Paech et al. | An Experience-Based Approach for Integrating Architecture and Requirements Engineering. | |
CN114706568A (zh) | 深度学习在线编码方法和系统 | |
CN117897738A (zh) | 人工智能辅助的实况体育数据质量保证 | |
US11227122B1 (en) | Methods, mediums, and systems for representing a model in a memory of device | |
CN111158654A (zh) | 算法调用方法、装置、服务器及存储介质 | |
KR20200139038A (ko) | 게임 의뢰자와 제작자 간을 중계하는 장치 및 방법 | |
CN114724718A (zh) | 健康分析开放服务系统及方法 | |
US12026484B2 (en) | Automated generation of software applications using analysis of submitted content items | |
JP7284298B2 (ja) | デジタルコンテンツの視覚的品質の評価 | |
US20230229904A1 (en) | Transfer learning through composite model slicing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |