CN110457649B - 数据批量选择的方法、装置和计算机存储介质 - Google Patents

数据批量选择的方法、装置和计算机存储介质 Download PDF

Info

Publication number
CN110457649B
CN110457649B CN201810425693.7A CN201810425693A CN110457649B CN 110457649 B CN110457649 B CN 110457649B CN 201810425693 A CN201810425693 A CN 201810425693A CN 110457649 B CN110457649 B CN 110457649B
Authority
CN
China
Prior art keywords
data
interval
intervals
candidate
range
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
CN201810425693.7A
Other languages
English (en)
Other versions
CN110457649A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810425693.7A priority Critical patent/CN110457649B/zh
Priority to PCT/CN2019/074777 priority patent/WO2019214303A1/zh
Publication of CN110457649A publication Critical patent/CN110457649A/zh
Application granted granted Critical
Publication of CN110457649B publication Critical patent/CN110457649B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Algebra (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据批量选择的方法和装置,不需要对候选数据进行全排序,避免了对候选数据多次重复计算,节省了内存和带宽,提高系统效率。该方法包括:数据分析器统计候选数据中的数据所属的数据区间,以获取统计结果,该统计结果包括多个数据区间中的每个数据区间包含的数据的个数,该每个数据区间的区间范围总和等于该候选数据的数据分布区间范围;区间统计器根据该统计结果,对该每个数据区间包含的数据个数分别做累加,以得到累加结果,该累加结果为该每个数据区间包含的数据个数与该每个数据区间之前的所有数据区间包含的数据个数之和;批量选取器根据该累加结果,确定目标数据所在的目标数据区间,并输出属于该目标数据区间的候选数据。

Description

数据批量选择的方法、装置和计算机存储介质
技术领域
本申请涉及数据处理领域,并且更具体地,涉及一种数据批量选择的方法、装置和计算机存储介质。
背景技术
计算机在对数据进行处理前,一般都需要从海量的候选数据中确定目标数据,进而对该目标数据进行进一步的处理,如在“平安城市”大潮中从海量视频中找到目标人物或者车辆,又如在使用快速区域卷积神经网络Faster R-CNN作图片目标检测时,输入图片经由一系列卷积层以及全层连接后生成多个候选窗口,在该多个候选窗口中检测目标。现有技术中一般均采用对候选数据全排序,进而确定目标数据。对于超大规模的数据,单靠提供处理器主频来提升传统排序或选择算法的运算速度已经越来越难;但是现有分布式并行算法又存在重复计算、内存需求高、扩展性差等问题,导致选择/排序环节成为无法逾越、制约系统性能提升的瓶颈。
如何在海量的数据中准确快速的找到目标数据,是一项亟待解决的问题。
发明内容
本申请提供一种数据批量选择的方法和装置,不需要对候选数据进行全排序,避免了对候选数据多次重复计算,节省了内存和带宽,提高了系统效率。
第一方面,提供了一种数据批量选择的方法,该方法包括:数据分析器统计候选数据中的数据所属的数据区间,以获取统计结果,该统计结果包括多个数据区间中的每个数据区间包含的数据的个数,该每个数据区间的区间范围总和等于该候选数据的数据分布区间范围;区间统计器根据该统计结果,对该每个数据区间包含的数据个数分别做累加,以得到累加结果,该累加结果为该每个数据区间包含的数据个数与该每个数据区间之前的所有数据区间包含的数据个数之和;批量选取器根据该累加结果,确定目标数据所在的目标数据区间,并输出属于该目标数据区间的候选数据。
其中,区间统计器对每个数据区间包含的数据个数分别做累加可以采用分别对每个数据区间包含的数据个数做前缀和运算,以得到每个数据区间各自的累加结果。
可选地,该区间统计器可以采用前缀和prefix sum计算每个数据区间包含的数据个数的累加和。
因此,在本申请实施例中,实现了数据区间有序,但是每个数据区间内的数据无序,不需要对候选数据进行全排序,输出目标数据只需2次全并行扫描和1次并行累加计算就可完成批量选择,避免了对候选数据多次重复计算,节省了内存和带宽,提高了系统效率。
结合第一方面,在第一方面的某些实现方式中,该数据分析器可以是具有多核的处理器,也可以是多个并行处理器,还可以是一个多线程处理器,或者该数据分析器是该多核的处理器,该多个并行处理器和该多线程处理器的组合。
结合第一方面,在第一方面的某些实现方式中,该区间配置器可以是具有多核的处理器,也可以是多个并行处理器,还可以是一个多线程处理器,或者该区间配置器是该多核的处理器,该多个并行处理器和该多线程处理器的组合。
结合第一方面,在第一方面的某些实现方式中,该批量选取器可以是具有多核的处理器,也可以是多个并行处理器,还可以是一个多线程处理器,或者该批量选取器是该多核的处理器,该多个并行处理器和该多线程处理器的组合。
结合第一方面,在第一方面的某些实现方式中,每个数据区间对应一个计数器,该计数器用于记载该数据区间的个数,当该数据分析器确定一个数据属于该数据区间时,在该数据区间对应的计数器中加1。
结合第一方面,在第一方面的某些实现方式中,在该数据分析器统计候选数据中的数据所属的数据区间之前,该方法还包括:区间配置器根据该候选数据的数据信息,确定该多个数据区间的个数和该多个数据区间中的每个数据区间的范围;该区间配置器将该多个数据区间和该多个数据区间中的每个数据区间的范围发送给该数据分析器。
此时,通过该区间配置器根据该候选数据的数据信息,确定该多个数据区间的个数和该多个数据区间中的每个数据区间的范围,可以使得后续批量选择的结果更加精确。
结合第一方面,在第一方面的某些实现方式中,该区间配置器根据该候选数据的数据信息,确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,包括:当该候选数据为均匀分布时,根据均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,该每个数据区间的范围相等;或当该候选数据为非匀分布时,根据非均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,该多个数据区间的范围中的至少两个数据区间的范围不相等。
结合第一方面,在第一方面的某些实现方式中,当该候选数据为均匀分布时,该每个数据区间的范围为Δ时,根据均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,包括:
根据式(1)确定多个数据区间的个数M,
M=x/Δ(1)
其中,x为该候选数据的数据区间范围,M为多个数据区间的个数。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:
根据该候选数据的个数和该输出的目标数据的个数,确定该多个数据区间的个数M;
根据式(1)确定该每个数据区间的范围Δ,
M=x/Δ(1)
其中,x为该候选数据的数据区间范围,M为多个数据区间的个数。
结合第一方面,在第一方面的某些实现方式中,该区间统计器根据该统计结果,对该多个数据区间包括的个数做累加,包括:
当该目标数据为该候选数据中的最小的部分数据时,根据该多个数据区间的升序,对该多个数据区间包括的个数做累加;或
当该目标数据为该候选数据中的最大的部分数据时,根据该多个数据区间的降序,对该多个数据区间包括的个数做累加。
结合第一方面,在第一方面的某些实现方式中,该数据分析器、该区间统计器和该批量选取器为相同的物理实体或部分相同的物理实体。
第二方面,提供了一种数据批量选择的装置,该装置包括:
数据分析器,用于统计候选数据中的数据所属的数据区间,以获取统计结果,该统计结果包括多个数据区间中的每个数据区间包含的数据的个数,该每个数据区间的区间范围总和等于该候选数据的数据分布区间范围;
区间统计器根据该统计结果,对该每个数据区间包含的数据个数分别做累加,以得到累加结果,该累加结果为该每个数据区间包含的数据个数与该每个数据区间之前的所有数据区间包含的数据个数之和;
批量选取器根据该累加结果,确定目标数据所在的目标数据区间,并输出属于该目标数据区间的候选数据。
其中,区间统计器对每个数据区间包含的数据个数分别做累加可以采用分别对每个数据区间包含的数据个数做前缀和运算,以得到每个数据区间各自的累加结果。
结合第二方面,在第二方面的某些实现方式中,该装置还包括:
区间配置器,用于根据该候选数据的数据信息,确定该多个数据区间的个数和该多个数据区间中的每个数据区间的范围;该区间配置器将该多个数据区间和该多个数据区间中的每个数据区间的范围发送给该第一处理器。
结合第二方面,在第二方面的某些实现方式中,该区间配置器具体用于:当该候选数据为均匀分布时,根据均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,该每个数据区间的范围相等;或当该候选数据为非均匀分布时,根据非均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,该多个数据区间的范围中的至少两个数据区间的范围不相等。
结合第二方面,在第二方面的某些实现方式中,当该候选数据为均匀分布时,该每个数据区间的范围为Δ时,该区间配置器具体用于:
根据式(1)确定多个数据区间的个数M,
M=x/Δ(1)
其中,x为该候选数据的数据区间范围,M为多个数据区间的个数。
结合第二方面,在第二方面的某些实现方式中,该区间配置器具体用于:
根据该候选数据的个数和该输出的目标数据的个数,确定该多个数据区间的个数M;
根据式(1)确定该每个数据区间的范围Δ,
M=x/Δ(1)
其中,x为该候选数据的数据区间范围,M为多个数据区间的个数。
结合第二方面,在第二方面的某些实现方式中,该区间统计器具体用于:当该目标数据为该候选数据中的最小的部分数据时,根据该多个数据区间的升序,对该多个数据区间的个数做前缀和运算;或当该目标数据为该候选数据中的最大的部分数据时,根据该多个数据区间的降序,对该多个数据区间的个数做前缀和运算。
结合第二方面,在第二方面的某些实现方式中,该数据分析器、该区间统计器和该批量选取器为相同的物理器件或该相同的物理器件的部分。
第三方面,提供了一种计算机存储介质,其特征在于,该计算机存储介质存储有程序指令,当该指令被执行时,该计算机存储介质可以执行第一方面或第一方面的任一可选的实现方式中的方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括指令,当所述指令被执行时,使得所述数据批量选择的装置可以执行第一方面或第一方面的任一可选的实现方式中的方法。
第五方面,提供了一种芯片系统,包括:至少一个处理器,所述至少一个处理器用于执行存储的指令,以使得所述数据批量选择的装置可以执行第一方面或第一方面的任一可选的实现方式中的方法。
附图说明
图1是根据本申请的一种数据批量选择的方法和设备的系统架构的示意性框图。
图2是本申请的一种数据批量选择的方法的示意性流程图。
图3是本申请的根据前缀和累加多个数据区间的个数的示意性框图。
图4是本申请的根据前缀和累加多个数据区间的个数的示意性框图。
图5是本申请的一种数据批量选择的方法的示意性流程图。
图6是根据本申请的一种数据批量选择的装置的示意性框图。
图7是根据本申请的一种数据批量选择的系统的示意性架构图。
图8示出了本申请提供的数据批量选择的设备的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是根据本申请的一种数据批量选择的方法和设备的系统100架构的示意性框图。如图1所示,该系统100架构包括,前端采集装置110,存储管理装置120,智能分析装置130。其中,前端采集装置110,存储管理装置120,智能分析装置130通过网络连接。该前端采集装置110用于拍摄物体,例如人体,人脸,车体的抓拍,前端采集装置110将拍摄到的信息传递到存储管理装置120,该存储管理装置120对前端采集装置110将拍摄到的信息进行特征提取,该存储管理装置120将特征提取后的数据传递到智能分析装置130,该智能分析装置130根据特征提取后的数据进行批量选择,输出检测目标。
需要说明的是,图1仅为示例性架构图,除图1中所示装置之外,该系统架构还可以包括其他装置,本申请实施例对此不进行限定。
本申请实施例的技术方案可以应用于各种领域,在深度学习领域,所有涉及到基于候选区域的枚举,必然要用到排序算法,必然可以用本发明的算法来替换提速;同时在其他需要做排序然后选取结果的其他领域,也同样可以适用。
此外,本申请的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatile disc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmableread-only memory,EPROM)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,能够存储、包含和/或承载指令和/或数据的各种介质。
下面结合图2详细说明本申请提供的一种数据批量选择的方法,图2是本申请一个实施例的一种数据批量选择的方法200的示意性流程图,该方法200可以应用在图1所示的场景中,当然也可以应用在其他场景中,本申请实施例在此不作限制。
如图2所示,该方法200包括以下内容。
步骤210,数据分析器统计候选数据中的数据所属的数据区间,以获取统计结果,该统计结果包括多个数据区间中的每个数据区间包含的数据的个数,该每个数据区间的区间范围总和等于该候选数据的数据分布区间范围。
可选地,该数据分析器可以是具有多核的处理器,也可以是多个并行处理器,还可以是一个多线程处理器,或者该数据分析器是该多核的处理器,该多个并行处理器和该多线程处理器的组合。
具体而言,以该数据分析器为多个并行处理器为例,为了提高系统的运算速度,一般让每个处理器负责的统计的数据个数相等或近似相等,即满足负载均衡原理,候选数据会被均匀的分配到多个并行处理器,该多个并行处理器中的每个处理器会统计其分配的候选数据中的数据所属的数据区间,以获取统计结果。例如,候选数据有9个,候选数据的数据分布区间范围为[0,9],数据分别为1,2,3,4,5,6,7,8,9,数据区间分别为[0,3),[3,6),[6,9]。数据分析器为3个并行的处理器,那么根据负载均衡原理,每个数据分析器负责统计的数据为3个。即多个并行处理器中的第一处理器统计九个数据中的第一个至第三个数据所属的数据区间,第二处理器统计九个数据中的第四个至第六个数据所属的数据区间,第三处理器统计九个数据中的第七个至第九个数据所属的数据区间;或者第一处理器统计九个数据中的第一个、第四个和第七个数据所属的数据区间,第二处理器统计九个数据中的第二个、第五个和第八个数据所属的数据区间,第三处理器统计九个数据中的第三个、第六个和第九个数据所属的数据区间。经过该数据统计器的统计,数据区间 [0,3)包括的数据的个数为2,数据区间[3,6)包括的数据的个数为3,数据区间[6,9] 包括的数据的个数为4。
应理解,对于满足负载均衡原理的条件下,如何给数据分析器分配候选数据的具体形式本申请并不进行限定。
可选地,每个数据区间对应一个计数器,该计数器用于记载该数据区间的个数,当该数据分析器确定一个数据属于该数据区间时,在该数据区间对应的计数器中加1。
应理解,每个数据区间也可能对应一个内存空间,该内存空间用于记载该数据区间内数据的个数,当任一个处理器确定一个数据属于该数据区间时,在该数据区间对应的内存空间中加1。
步骤220,区间统计器根据该统计结果,对该多个数据区间包括的数据个数做累加和,以得到累加结果,该累加结果为该每个数据区间包含的数据个数与该每个数据区间之前的所有数据区间包含的数据个数之和。
具体而言,例如上述的9个候选数据分配了三个数据区间,分别为数据区间[0,3),[3,6),[6,9],那么该区间统计器分别统计[0,3)包括的数据的个数为2,[0,6)包括的数据的个数为5,[0,9] 包括的数据的个数为9。
可选地,该区间统计器可以是具有多核的处理器,也可以是多个并行处理器,还可以是一个多线程处理器,或者该区间统计器是该多核的处理器,该多个并行处理器和该多线程处理器的组合。
可选地,该区间统计器与该数据分析器可以是相同的物理实体或部分相同的物理实体,该物理实体可以是物理器件或者设备或者装置。例如,该数据分析器是3个并行的处理器,那么该区间统计器也可以是该3个并行的处理器,或者该区间统计器可以是该3个并行处理器的其中一个或两个处理器。
步骤230,批量选取器根据该累加结果,确定目标数据所在的目标数据区间,并输出属于该目标数据区间的候选数据。
具体而言,目标数据为在所述候选数据中需要选择的数据,批量选取器根据该区间统计器的累加结果,确定目标数据所在的目标数据区间,并输出属于该目标数据区间的候选数据。
可选地,该批量选取器可以是具有多核的处理器,也可以是多个并行处理器,还可以是一个多线程处理器,或者该批量选取器是该多核的处理器,该多个并行处理器和该多线程处理器的组合。
可选地,该批量选取器中的每个并行处理器均可以根据该累加结果,确定目标数据所在的目标数据区间,并输出属于该目标数据区间的候选数据;或者该批量选取器中的某一个并行处理器根据该累加结果,确定目标数据所在的目标数据区间,并将所述目标数据区间发送给该其他并行处理器,该批量选取器中的每个并行处理器输出属于该目标数据区间的候选数据。
具体而言,以该数据分析器为多个并行处理器为例。目标数据为输出上述9个候选数据中最小的2个数据,那么该批量选取器确定该目标数据区间为[0,3)。假设批量选取器为3个并行的处理器,那么根据负载均衡原理,每个数据分析器负责统计的数据为3个。假设第一处理器负责处理的数据为1,2,3;第二处理器负责处理的数据为4,5,6;第二处理器负责处理的数据为7,8,9。三个处理器根据目标数据的区间,第一处理器输出1,2,第二处理器和第三处理器没有输出。
可选地,该批量选取器与该数据分析器、该区间统计器可以是相同的物理实体或部分相同的物理实体,该物理实体可以是物理器件或者设备或装置。例如,该数据分析器是3个并行的处理器,那么该批量选取器也可以是该3个并行的处理器。
在本申请实施例中,除了输入输出数据空间为N,额外需要的空间为M个数据区间包括的数据的个数的存放空间M或者M个计数器。设输入数据数量为n,并行选取器处理器个数为p,则数据分析器统计候选数据中的数据所属的数据区间需要的时间复杂度为O (n/p):每个并行处理器分析n/p个输入应该在哪个类的计数器加一;区间统计器根据该统计结果,对该多个数据区间包括的个数做累加时,当p≥M时时间复杂度为O (log M);批量选取器根据该累加结果,确定目标数据所在的目标数据区间的时间复杂度为O (n/p):每个并行处理器判断n/p个输入输出与否。本发明对性能有很好的扩展性,并行处理器的个数可以一直增长到p=n同时保持性能。当p=n时根据性能公式O(n/p) + O(logM) + O(n/p),流程的时间复杂度为O(2)+O(logM)。
因此,在本申请实施例中,实现了数据区间有序,但是每个数据区间内的数据无序,不需要对候选数据进行全排序,输出目标数据只需2次全并行扫描和1次并行累加计算就可完成批量选择,避免了对候选数据多次重复计算,节省了内存和带宽,提高了系统效率。
可选地,该区间统计器根据该统计结果,对该多个数据区间包括的个数做累加,包括:
当所述目标数据为所述候选数据中的最小的部分数据时,根据该多个数据区间的升序,对该多个数据区间包括的个数做累加;或
当所述目标数据为所述候选数据中的最大的部分数据时,根据该多个数据区间的降序,对该多个数据区间包括的个数做累加。
具体而言,当选择候选数据中最大的第n个到第m个数据(如最大的前100个数据,即n=1, m=100;最大的前50到前90之间,即n=50, m=90)时,根据该多个数据区间的升序,对该多个数据区间包括的个数做累加;而当选择最小的第q个到第p个数据时,根据该多个数据区间的降序,对该多个数据区间包括的个数做累加。
具体地,该区间统计器可以采用前缀和(prefix sum)计算每个数据区间包含的数据个数的累加和,prefix sum是一种求累加和的算法。其定义为:
输入:
Figure 789517DEST_PATH_IMAGE002
Figure 706657DEST_PATH_IMAGE004
,
Figure 486394DEST_PATH_IMAGE006
Figure 881603DEST_PATH_IMAGE008
,…,
Figure 375602DEST_PATH_IMAGE010
输出:
Figure 198065DEST_PATH_IMAGE012
Figure 465098DEST_PATH_IMAGE014
Figure 663998DEST_PATH_IMAGE016
Figure 270560DEST_PATH_IMAGE018
, …,
Figure 263924DEST_PATH_IMAGE020
其中,
Figure 18253DEST_PATH_IMAGE012
=
Figure 755265DEST_PATH_IMAGE002
Figure 465601DEST_PATH_IMAGE014
=
Figure 895445DEST_PATH_IMAGE002
+
Figure 137071DEST_PATH_IMAGE004
Figure 349877DEST_PATH_IMAGE021
=
Figure 993348DEST_PATH_IMAGE002
+
Figure 328515DEST_PATH_IMAGE004
+
Figure 57436DEST_PATH_IMAGE006
Figure 136251DEST_PATH_IMAGE022
=
Figure 322644DEST_PATH_IMAGE002
+
Figure 94291DEST_PATH_IMAGE004
+
Figure 44929DEST_PATH_IMAGE006
+
Figure 927434DEST_PATH_IMAGE008
……
Figure 217601DEST_PATH_IMAGE020
=
Figure 160150DEST_PATH_IMAGE002
+
Figure 598084DEST_PATH_IMAGE004
+
Figure 18701DEST_PATH_IMAGE006
+
Figure 678222DEST_PATH_IMAGE008
+…+
Figure 791671DEST_PATH_IMAGE010
即输出每位为输入第一位到当前位置的各输入的和。
下面具体地对采用前缀和prefix sum算法计算该多个数据区间包括的个数做累加进行详细描述。
当数据区间的个数小于或等于累加器包括的并行处理器的个数的两倍时,可以根据以下步骤进行累加计算:
(1)每个并行处理器计算属于两个连续数据区间的个数的和(假设数据区间的个数为8,从左至由依次为
Figure 716902DEST_PATH_IMAGE002
Figure 941210DEST_PATH_IMAGE004
Figure 940390DEST_PATH_IMAGE006
Figure 224741DEST_PATH_IMAGE008
Figure 637267DEST_PATH_IMAGE024
Figure 665266DEST_PATH_IMAGE026
Figure 532335DEST_PATH_IMAGE028
Figure 722008DEST_PATH_IMAGE030
,并行处理器的个数为20个。如图3中的d=0行,处理器1计算
Figure 621831DEST_PATH_IMAGE002
+
Figure 187941DEST_PATH_IMAGE004
,处理器2计算
Figure 427293DEST_PATH_IMAGE006
+
Figure 787867DEST_PATH_IMAGE008
,处理器3计算
Figure 174986DEST_PATH_IMAGE024
+
Figure 544787DEST_PATH_IMAGE026
,处理器4计算
Figure 435383DEST_PATH_IMAGE028
+
Figure 419388DEST_PATH_IMAGE030
(2)递归地使用上一步一半的处理器计算两个连续的在上一步被更新的数据区间的个数的和(如图3中的d=1及d=2行,处理器5计算
Figure 28224DEST_PATH_IMAGE032
+
Figure 201716DEST_PATH_IMAGE034
,处理器6计算
Figure 212398DEST_PATH_IMAGE036
+
Figure 118037DEST_PATH_IMAGE038
,处理器7计算
Figure 214169DEST_PATH_IMAGE040
+
Figure 925773DEST_PATH_IMAGE042
。如数据区间的个数不是2的次方,则最后更新结果在递归中顺延。
(3)递归结束时,最后一位即为yn的值(如图3最上一行最右边的值,
Figure 790961DEST_PATH_IMAGE040
+
Figure 618234DEST_PATH_IMAGE043
),记录下来,然后填0(如图5最上一行)。
(4)按以上递归的反顺序递归(如图4 d=0,d=1,d=2,由上向下),先用一个处理器处理以上递归的d2步的值,然后再用两个处理器处理以上递归的d1步的值,以此类推,直至递归结束。
在反顺序递归过程中,处理器8将保存的“0”左移至数据区间
Figure 201662DEST_PATH_IMAGE008
对应的个数(图4中d0步的虚线所示),并将左移会被替换的值
Figure 451377DEST_PATH_IMAGE040
和保存的值“0”相加作为新值保存(图4中d0步的实线所示);处理器9将保存的“0”左移至数据区间
Figure 436651DEST_PATH_IMAGE004
对应的个数(图5中d1步的虚线所示),并将左移会被替换的值
Figure 684093DEST_PATH_IMAGE044
和保存的值“0”相加作为新值保存(图4中d1步的实线所示),处理器10将保存的“
Figure 754817DEST_PATH_IMAGE040
”左移至数据区间
Figure 808223DEST_PATH_IMAGE026
对应的个数(图4中d1步的虚线所示),并将左移会被替换的值
Figure 648004DEST_PATH_IMAGE036
和保存的值“
Figure 315614DEST_PATH_IMAGE040
”相加作为新值保存(图4中d1步的实线所示);以此类推,得到y0,y1,… y(n-1)的值。
(5)递归结束时,可得y0,y1,… y(n-1)的值。结合前面记录的yn的值,完成prefixsum。
当数据区间的个数大于累加器包括的并行处理器的个数的两倍时,可以根据以下步骤进行累加计算:
(1)将数据区间的个数切分成多组block,每组含的数据区间的个数小于等于并行处理器的个数的两倍。
(2)每组block使用上述当精度表的数据区间的个数小于或等于并行处理器的个数的两倍时的方法计算当组的prefix sum。
(3)每组的最后一个值(即每组上述方法步骤3中记录的yn)组成一个新的辅助数组auxiliary组,使用上述当精度表的数据区间数的个数小于或等于并行处理器的个数的两倍时的方法计算本组的prefix sum。
(4)Block0组不动,block1组每元素(block组的y0…yn)加auxiliary组的y0,block2组每元素加auxiliary组的y1,block3组每元素加auxiliary组的y2,…,block m组每元素加auxiliary组的y(m-1)。至此完成prefix sum。
应理解,在210中,该数据分析器统计候选数据中的数据所属的数据区间时,该多个数据区间和该多个数据区间中的每个数据区间的范围已经配置给该数据分析器。可选地,该多个数据区间和该多个数据区间中的每个数据区间的范围保存在共享内存中,该数据分析器可以通过读取该共享内存获得该多个数据区间和该多个数据区间中的每个数据区间的范围;或者该数据分析器本地的内存上保存了该多个数据区间和该多个数据区间中的每个数据区间的范围。
如果,在该数据分析器统计候选数据中的数据所属的数据区间之前,该数据分析器没有获取到该多个数据区间和该多个数据区间中的每个数据区间的范围,则该方法200在步骤210之前还包括步骤240,如图5所示。
在步骤240中,区间配置器根据该候选数据的数据信息,确定该多个数据区间的个数和该多个数据区间中的每个数据区间的范围,该区间配置器将该多个数据区间和该多个数据区间中的每个数据区间的范围发送给该数据分析器。
此时,通过该区间配置器根据该候选数据的数据信息,确定该多个数据区间的个数和该多个数据区间中的每个数据区间的范围,可以使得后续批量选择的结果更加精确。
可选地,该区间配置器可以根据负载均衡原则向数据分析器分配候选数据。
应理解,在本申请实施例中也可以通过其他部件接收候选数据,然后向数据分析器分配候选数据,对此本申请不进行限定。
可选地,该区间配置器根据该候选数据的数据信息,确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,包括:
当该候选数据为均匀分布时,根据均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,该每个数据区间的范围相等;或
当该候选数据为非匀分布时,根据非均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,该多个数据区间的范围中的至少两个数据区间的范围不相等。
具体而言,当该数据为均匀分布或者近似均匀分布式时,都可以根据均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围;当该候选数据为非均匀分布或者极不均匀分布(即用等宽区间会产生数据量在区间之间的严重不均衡)时,根据非均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围。
当该候选数据为均匀分布时,该每个数据区间的范围为Δ时,根据均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,包括:
根据式(1)确定多个数据区间的个数M,
M=x/Δ(1)
其中,x为该候选数据的数据区间范围,M为多个数据区间的个数。
具体而言,当候选数据为均匀分布时,此时不需要知道候选数据的概率分布信息。可以根据均匀量化公式中的量化策略,即式(1)确定多个数据区间的个数M。
例如,一组候选数据7、 3、9、1、5,该候选数据为均匀分布,数据分布的数据区间范围在0到10之间,当每个数据区间的范围为2时,根据式(1)确定分配5数据区间,其中每个数据区间的范围分别为:[0,2),[2,4),[4,6),[6,8),[8,10)。
进一步地,在根据该候选数据的个数和该输出的目标数据的个数,确定该多个数据区间的个数M后,还可以根据式(1)确定该每个数据区间的范围Δ。
具体而言,当候选数据为均匀分布时,如果此时不确定该每个数据区间的范围Δ,则可以该候选数据的个数和该输出的目标数据的个数,确定该多个数据区间的个数M,然后再根据式(1)确定该每个数据区间的范围Δ。
例如,候选数据总数为9,需要确定的目标数据为该候选数据中最大的三个数据,那么候选数据总数9除需选择数据个数3得到该多个数据区间的个数M为3,然后再根据式(1)确定该每个数据区间的范围Δ。
当该候选数据为非均匀分布时,在根据非均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围时,需要获得该候选数据的概率分布信息,根据该候选数据的概率分布信息结合非均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,使得在候选数据的密集部分对应的数据区间个数多,候选数据的稀疏部分对应的数据区间的个数少。
例如,给定该候选数据的概率密度函数为
Figure 608055DEST_PATH_IMAGE046
,分M类,并且选择的非均匀量化策略为使用Lloyd-Max方法将问题转化为求失真最小化问题,即最小化失真公式为
Figure 465153DEST_PATH_IMAGE048
(2)
在式(2)中,给定M时,最佳的
Figure 159439DEST_PATH_IMAGE050
Figure 811000DEST_PATH_IMAGE052
使得均方量化误差(Mean squaredquantization error,MSQE)最小,即
Figure 794000DEST_PATH_IMAGE054
Figure 189209DEST_PATH_IMAGE056
(3)
得到:
Figure 738002DEST_PATH_IMAGE058
Figure 826044DEST_PATH_IMAGE060
其中,
Figure 784422DEST_PATH_IMAGE050
为多个数据区间的分界点。
下面给出一个具体地例子,对非均匀量化策略进行详细说明。例如候选数据是9、4、 5、 6 、1非均匀分布,数据在中间比较集中,两边比较稀疏。如果继续选用均匀策略,数据区间的范围Δ选用2,则在110中会出现:[0,2)区间有1个数据,[2,4)区间有0个,[4,6)区间有3个,[6,8)区间有0个,[8,10)区间有1个。如果我们要找最小的2个数,在120后我们会得到:[0,2)有1个,[0,4)还是只有1个,[0,6)突增为4个,[0,8)还是只有4,最后[0,10)是5。最终导致步骤130需要选取,[0,6)范围,即最终输出最小的4个数而不是2个。因此不适合用均匀策略。在选择非均匀量化策略时,我们可以通过Lloyd-Max方法计算将5个数据区间设定为不同大小的:[0,3),[3,4.5),[4.5,5.5),[5.5,7),[7,10)。这样在110,可以算出每个数据区间都有1个数据。在130中,选取的范围变成[0,4.5),最终输出目标数据为4和1。在不增加数据区间的个数(数据区间的个数还是5)的情况下,成功提高数据批量选取的“精度”。
以上结合图2至图5详细描述了根据本申请实施例的一种数据批量选择的方法,该方法实现了数据区间有序,但是每个数据区间内的数据无序,不需要对候选数据进行全排序,输出目标数据只需2次全并行扫描和1次并行累加计算就可完成批量选择,避免了对候选数据多次重复计算,节省了内存和带宽,提高了系统效率。并且本申请中根据该候选数据的数据信息,确定该多个数据区间的个数和该多个数据区间中的每个数据区间的范围,可以使得后续批量选择的结果更加精确。为了更清楚的理解本申请,下面结合具体的一组候选数据对本申请的一种数据批量选择的方法进行描述。
候选数据为0.66,0.44,0.99,0.33,0.11,0.55,0.22,0.77,0.88 ,9个候选数据。目标数据为选择出候选数据中数值最大的3个数。其中数据分析器为3个并行的处理器,同时数据区间的范围在此例中为非限定条件,数据区间的个数M应调为尽量小才能最小化性能公式根据性能公式O(n/p) + O(logM) + O(n/p)的值,本例中为候选数据总数9除需选择数据个数3,所以数据区间的个数MM=9/3=3。再根据均匀量化公式(1),在候选数值范围为(0.0,1.0)时,得出数据区间的个数为3时,每个数据区间的范围为0.33333…,3个并行处理器每个处理器负责的范围为(0.0,1/3],(1/3,2/3],(2/3,1.0)。此时,每个数据区间对应的个数为0,如表1所示。
表1
数据区间 (0.0,1/3] (1/3,2/3] (2/3,1.0)
个数 0 0 0
将九个候选数据按照负载均衡原则,让3个并行的处理器中的每个并行处理器负责其中的三个数据,如第一处理器负责数据0.66,0.44,0.99,第二处理器负责数据0.33,0.11,0.55,第三处理器负责数据0.22,0.77,0.88 。
三个处理器同时对其处理的数据进行统计,统计既可以先本地小计再总计,也可以全局同步直接总计。全局同步直接总计例子如下。
例如,第一处理器确定0.66属于区间(1/3,2/3],第二处理器确定0.33属于区间(0.0,1/3],第三处理器确定0.22属于区间(0.0,1/3],则第一次统计结束后,每个数据区间的个数如表2所示。
表2
数据区间 (0.0,1/3] (1/3,2/3] (2/3,1.0)
个数 2 1 0
第一处理器确定0.44属于区间(1/3,2/3],第二处理器确定0.11属于区间(0.0,1/3],第三处理器确定0.77属于区间(2/3,1.0),则第二次统计结束后,每个数据区间的个数如表3所示。
表3
数据区间 (0.0,1/3] (1/3,2/3] (2/3,1.0)
个数 3 2 1
第一处理器确定0.99属于区间(2/3,1.0),第二处理器确定0.55属于区间(1/3,2/3],第三处理器确定0.88属于区间(2/3,1.0),则第二次统计结束后,每个数据区间的个数如表4所示。
表4
数据区间 (0.0,1/3] (1/3,2/3] (2/3,1.0)
个数 3 3 3
然后区间统计器对该3个数据区间做累加,累加结果包括所述多个数据区间中的每个数据区间与所述每个数据区间之前的所有数据区间包括的数据的个数之和,由于本例是选择最大的3个数,因此按照数据区间的降序进行累加,累加结果如表5所示。即,(2/3,1.0)范围的类包含了最大的3个值,(1/3,1.0)范围的2个类共包含了最大的6个值,(0.1,1.0)范围的3个类包含了最大的9个值(此处已为所有值)。
表5
数据区间 (0.1,1.0) (1/3,1.0) (2/3,1.0)
个数 3 6 9
最后,批量选取器确定目标数据的数据区间为(2/3,1.0),这里假设该批量选取器为上述三个并行处理器,因此。三个并行处理器分别输出属于数据区间为(2/3,1.0)的数据,则第一处理器输出0.99,第二处理器无输出,第三处理器输出0.77,0.88。
图6是根据本申请的一种数据批量选择的装置300的示意性框图。如图6所示,该装置300包括以下模块。
数据分析器310,用于统计候选数据中的数据所属的数据区间,以获取统计结果,该统计结果包括多个数据区间中的每个数据区间包含的数据的个数,该每个数据区间的区间范围总和等于该候选数据的数据分布区间范围。
区间统计器320,用于根据该统计结果,对该多个数据区间包括的个数做累加,以得到累加结果,该累加结果为该每个数据区间包含的数据个数与该每个数据区间之前的所有数据区间包含的数据个数之和。
批量选取器330,用于根据该累加结果,确定目标数据所在的目标数据区间,并输出属于该目标数据区间的候选数据。
可选地,该装置300还包括区间配置器340,用于根据该候选数据的数据信息,确定该多个数据区间的个数和该多个数据区间中的每个数据区间的范围;该区间配置器将该多个数据区间和该多个数据区间中的每个数据区间的范围发送给该第一处理器。
可选地,该区间配置器340具体用于:当该候选数据为均匀分布时,根据均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,该每个数据区间的范围相等;或当该候选数据为非均匀分布时,根据非均匀量化策略确定多个数据区间的个数和该多个数据区间中的每个数据区间的范围,该多个数据区间的范围中的至少两个数据区间的范围不相等。
可选地,当该候选数据为均匀分布时,该每个数据区间的范围为Δ时,该区间配置器340具体用于:根据式(1)确定多个数据区间的个数M。
可选地,该区间配置器340具体用于:根据该候选数据的个数和该输出的目标数据的个数,确定该多个数据区间的个数M;根据式(1)确定该每个数据区间的范围Δ。
可选地,该第二处理器具体用于:当该目标数据为该候选数据中的最小的部分数据时,根据该多个数据区间的升序,对该多个数据区间的个数做前缀和运算;或当该目标数据为该候选数据中的最大的部分数据时,根据该多个数据区间的降序,对该多个数据区间的个数做前缀和运算。
可选地,该数据分析器、该区间统计器和该批量选取器为相同的物理器件或该相同的物理器件的部分。
可选地,所述数据分析器310、所述区间统计器320、所述批量选取器330和所述区间配置器340用于执行本申请的数据批量选择的方法200的各个操作,为了简洁,在此不再赘述。
上述数据分析器、区间统计器、批量选取器及区间配置器与方法实施例中的数据分析器、区间统计器、批量选取器及区间配置器完全对应,由相应的模块执行相应的步骤,具体可以参考相应的方法实施例。
需要说明的是,数据分析器310、区间统计器320、批量选取器330和区间配置器340可以分开设置,也可以集成在一起,以一个处理芯片实现。
同时本申请的装置适用PRAM模型,各种并行处理器、加速器、GPU、FPGA、ASIC、云端、边端都可配置。
下面以云端系统为例,对本申请的一种数据批量选择的系统进行简单描述。图7是根据本申请的一种数据批量选择的系统的示意性架构图。该系统400包括数据分析器410,区间统计器420,批量选取器430和区间配置器440。
该数据分析器410,用于统计候选数据中的数据所属的数据区间,以获取统计结果,所述统计结果包括多个数据区间中的每个数据区间包含的数据的个数,所述每个数据区间的区间范围总和等于所述候选数据的数据分布区间范围。
区间统计器420,用于根据所述统计结果,对所述多个数据区间包括的个数做累加,以得到累加结果,所述累加结果为所述每个数据区间包含的数据个数与所述每个数据区间之前的所有数据区间包含的数据个数之和。
批量选取器430,用于根据所述累加结果,确定目标数据所在的目标数据区间,并输出属于所述目标数据区间的候选数据。
可选地,该区间配置器440用于根据所述候选数据的数据信息,确定所述多个数据区间的个数和所述多个数据区间中的每个数据区间的范围;
所述区间配置器440将所述多个数据区间和所述多个数据区间中的每个数据区间的范围发送给所述数据分析器410。
可选地,所述区间配置器还用于将候选数据分配给该数据分析器410和批量选取器430。
具体而言,所述区间配置器440向该数据分析器410发送候选数据中的部分数据。
该数据分析器410统计所述候选数据中的数据所属的数据区间,以获取统计结果,并将所述统计结果写入第一共享内存,所述统计结果包括多个数据区间中的每个数据区间包含的数据的个数,所述每个数据区间的区间范围总和等于所述候选数据的数据分布区间范围。
该数据分析器410向所述区间统计器420发送第一消息,所述第一消息用于指示所述区间统计器420根据所述统计结果对所述多个数据区间包括的个数做累加。
响应于所述第一消息,所述区间统计器420根据所述统计结果对所述多个数据区间包括的个数做累加,以得到累加结果,所述累加结果为所述每个数据区间包含的数据个数与所述每个数据区间之前的所有数据区间包含的数据个数之和,并将所述累加结果写入第二共享内存中。
所述区间统计器420对所述批量选取器430发送第二消息,所述第二消息用于指示所述批量选取器430根据所述累加结果,确定目标数据所在的目标数据区间。
所述批量选取器430根据所述目标数据区间输出所述目标数据。
可选地,该数据分析器410可以包括一个具有多核的处理器,也可以包括多个并行处理器,还可以是包括一个多线程处理器,或者该数据分析器410是该多核的处理器,该多个并行处理器和该多线程处理器的组合。
可选地,该区间统计器420可以包括一个具有多核的处理器,也可以包括多个并行处理器,还可以是包括一个多线程处理器,或者该数据分析器410是该多核的处理器,该多个并行处理器和该多线程处理器的组合。
可选地,该批量选取器430可以包括一个具有多核的处理器,也可以包括多个并行处理器,还可以是包括一个多线程处理器,或者该数据分析器410是该多核的处理器,该多个并行处理器和该多线程处理器的组合。
可选地,该第一共享内存、该第二共享内存和该第三共享内存可以是同一共享内存。
应理解,在该云端系统中,也可能没有共享内存,而是分布式储存器,即每个数字区间交付给一个处理器对应的分布式内存组,而数据分析器、批量选取器、区间统计器都是软件形式分布式存在的。
可选地,在该云端系统中,该数据分析器410、该区间统计器420、该批量选取器430和该区间配置器之间可以通过各自包括的子处理器进行通信交互。
具体而言,以该数据分析器410和该区间统计器420之间的子处理器进行通信交互为例进行说明。假设数据区间为(0,3],(3,6],(6,9],则该数据分析器410可以包括3个分布式处理器,该区间统计器包括3个分布式处理器,第一处理器负责统计(0,3],第二处理器负责统计(3,6]区间的个数,第三处理器负责统计(6,9]区间的个数,3个分布式处理器可以部署在同一个物理位置。该数据分析器410中的任一个处理器在统计出一个候选数据所属的数据区间时,向该区间统计器420中对应的处理器发送指示信息,用于指示对应的处理器对其负责的数据区间的个数作统计,如该数据分析器410中的任一个处理器在统计出一个候选数据所属的数据区间为(0,3]时,则该数据分析器410中的任一个处理器向该第一处理器发送指示信息,指示该第一处理器加1。
应理解,该系统中的具体流程,可以参考相应的方法200进行理解,为了避免重复,此处不再赘述。
图8示出了本申请提供的数据批量选择的设备500的示意性框图,所述设备500包括:
存储器510,用于存储程序,所述程序包括代码;
收发器520,用于和其他设备进行通信;
处理器530,用于执行存储器510中的程序代码。
可选地,当所述代码被执行时,所述处理器530可以实现方法200的各个操作,为了简洁,在此不再赘述。收发器520用于在处理器530的驱动下执行具体的信号收发。
应理解,图8仅示出了一种数据批量选择的设备的示意性框图,在图8中,该存储器510、该收发器520、该处理器530共享了同一个系统总线,但是该存储器510、该收发器520和该处理器530三个部件之间也可以是分别直连的。对于该数据批量选择的设备的各部件之间的连接关系,本申请并不进行限定。
应理解,在本申请实施例中,该处理器530可以是中央处理单元(CentralProcessing Unit,简称为“CPU”),该处理器530还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种数据批量选择的方法,其特征在于,所述方法包括:
数据分析器统计候选数据中的数据所属的数据区间,以获取统计结果,所述统计结果为多个数据区间中的每个数据区间包含的数据的个数,所述每个数据区间的区间范围总和等于所述候选数据的数据分布区间范围;
区间统计器根据所述统计结果,对所述每个数据区间包含的数据个数分别做累加,以得到累加结果,所述累加结果为所述每个数据区间包含的数据个数与所述每个数据区间之前的所有数据区间包含的数据个数之和;
批量选取器根据所述累加结果,确定目标数据所在的目标数据区间,并输出属于所述目标数据区间的候选数据。
2.根据权利要求1所述的方法,其特征在于,在所述数据分析器统计候选数据中的数据所属的数据区间之前,所述方法还包括:
区间配置器根据所述候选数据的数据信息,确定所述多个数据区间的个数和所述多个数据区间中的每个数据区间的范围;
所述区间配置器将所述多个数据区间和所述多个数据区间中的每个数据区间的范围发送给所述数据分析器。
3.根据权利要求2所述的方法,其特征在于,所述区间配置器根据所述候选数据的数据信息,确定所述多个数据区间的个数和所述多个数据区间中的每个数据区间的范围,包括:
当所述候选数据为均匀分布时,根据均匀量化策略确定所述多个数据区间的个数和所述多个数据区间中的每个数据区间的范围,所述每个数据区间的范围相等;或
当所述候选数据为非匀分布时,根据非均匀量化策略确定所述多个数据区间的个数和所述多个数据区间中的每个数据区间的范围,所述多个数据区间的范围中的至少两个数据区间的范围不相等。
4.根据权利要求3所述的方法,其特征在于,当所述候选数据为均匀分布时,所述每个数据区间的范围为Δ时,根据均匀量化策略确定所述多个数据区间的个数和所述多个数据区间中的每个数据区间的范围,包括:
根据式(1)确定多个数据区间的个数M,
M=x/Δ(1)
其中,x为所述候选数据的数据区间范围,M为多个数据区间的个数。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述候选数据的个数和所述输出的目标数据的个数,确定所述多个数据区间的个数M;
根据式(1)确定所述每个数据区间的范围Δ,
M=x/Δ(1)
其中,x为所述候选数据的数据区间范围,M为多个数据区间的个数。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述区间统计器根据所述统计结果,对所述每个数据区间包含的数据个数做累加,包括:
当所述目标数据为所述候选数据中的最小的部分数据时,根据所述每个数据区间的升序,对所述每个数据区间包含的数据个数做累加;或
当所述目标数据为所述候选数据中的最大的部分数据时,根据所述每个数据区间的降序,对所述每个数据区间包含的数据个数做累加。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述数据分析器、所述区间统计器和所述批量选取器为相同的物理实体或部分相同的物理实体。
8.一种数据批量选择的装置,其特征在于,所述装置包括:
数据分析器,用于统计候选数据中的数据所属的数据区间,以获取统计结果,所述统计结果包括多个数据区间中的每个数据区间包含的数据的个数,所述每个数据区间的区间范围总和等于所述候选数据的数据分布区间范围;
区间统计器根据所述统计结果,对所述每个数据区间包含的数据个数分别做累加,以得到累加结果,所述累加结果为所述每个数据区间包含的数据个数与所述每个数据区间之前的所有数据区间包含的数据个数之和;
批量选取器根据所述累加结果,确定目标数据所在的目标数据区间,并输出属于所述目标数据区间的候选数据。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
区间配置器,用于根据所述候选数据的数据信息,确定数据区间的个数和每个数据区间的范围;
所述区间配置器将所述每个数据区间和所述每个数据区间的范围发送给所述数据分析器。
10.根据权利要求9所述的装置,其特征在于,所述区间配置器具体用于:
当所述候选数据为均匀分布时,根据均匀量化策略确定数据区间的个数和每个数据区间中的每个数据区间的范围,所述每个数据区间的范围相等;或
当所述候选数据为非均匀分布时,根据非均匀量化策略确定多个数据区间的个数和所述多个数据区间中的每个数据区间的范围,所述多个数据区间的范围中的至少两个数据区间的范围不相等。
11.根据权利要求10所述的装置,其特征在于,当所述候选数据为均匀分布时,所述每个数据区间的范围为Δ时,所述区间配置器具体用于:
根据式(1)确定多个数据区间的个数M,
M=x/Δ(1)
其中,x为所述候选数据的数据区间范围,M为多个数据区间的个数。
12.根据权利要求10所述的装置,其特征在于,所述区间配置器具体用于:
根据所述候选数据的个数和所述输出的目标数据的个数,确定所述多个数据区间的个数M;
根据式(1)确定所述每个数据区间的范围Δ,
M=x/Δ(1)
其中,x为所述候选数据的数据区间范围,M为多个数据区间的个数。
13.根据权利要求8至12中任一项所述的装置,其特征在于,所述区间统计器具体用于:
当所述目标数据为所述候选数据中的最小的部分数据时,根据所述多个数据区间的升序,对所述每个数据区间的个数做前缀和运算;或
当所述目标数据为所述候选数据中的最大的部分数据时,根据所述多个数据区间的降序,对所述每个数据区间的个数做前缀和运算。
14.根据权利要求8至12中任一项所述的装置,其特征在于,所述数据分析器、所述区间统计器和所述批量选取器为相同的物理实体或部分相同的物理实体。
15.一种计算机存储介质,其特征在于,所述计算机存储介质存储有程序指令,当所述指令被执行时,所述计算机存储介质可以执行如权利要求1至7中任一项所述的方法。
CN201810425693.7A 2018-05-07 2018-05-07 数据批量选择的方法、装置和计算机存储介质 Active CN110457649B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810425693.7A CN110457649B (zh) 2018-05-07 2018-05-07 数据批量选择的方法、装置和计算机存储介质
PCT/CN2019/074777 WO2019214303A1 (zh) 2018-05-07 2019-02-11 数据批量选择的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810425693.7A CN110457649B (zh) 2018-05-07 2018-05-07 数据批量选择的方法、装置和计算机存储介质

Publications (2)

Publication Number Publication Date
CN110457649A CN110457649A (zh) 2019-11-15
CN110457649B true CN110457649B (zh) 2021-05-04

Family

ID=68466820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810425693.7A Active CN110457649B (zh) 2018-05-07 2018-05-07 数据批量选择的方法、装置和计算机存储介质

Country Status (2)

Country Link
CN (1) CN110457649B (zh)
WO (1) WO2019214303A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103746851A (zh) * 2014-01-17 2014-04-23 中国联合网络通信集团有限公司 一种实现独立用户数统计的方法及装置
CN105512320A (zh) * 2015-12-18 2016-04-20 北京金山安全软件有限公司 一种用户排名获得方法、装置及服务器
CN105740332A (zh) * 2016-01-22 2016-07-06 北京京东尚科信息技术有限公司 数据排序方法和装置
CN106202280A (zh) * 2016-06-29 2016-12-07 联想(北京)有限公司 一种信息处理方法及服务器
US9753964B1 (en) * 2017-01-19 2017-09-05 Acquire Media Ventures, Inc. Similarity clustering in linear time with error-free retrieval using signature overlap with signature size matching

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9026541B2 (en) * 2013-02-22 2015-05-05 International Business Machines Corporation Optimizing user selection for performing tasks in social networks
CN103530084A (zh) * 2013-09-26 2014-01-22 北京奇虎科技有限公司 一种数据并行排序方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103746851A (zh) * 2014-01-17 2014-04-23 中国联合网络通信集团有限公司 一种实现独立用户数统计的方法及装置
CN105512320A (zh) * 2015-12-18 2016-04-20 北京金山安全软件有限公司 一种用户排名获得方法、装置及服务器
CN105740332A (zh) * 2016-01-22 2016-07-06 北京京东尚科信息技术有限公司 数据排序方法和装置
CN106202280A (zh) * 2016-06-29 2016-12-07 联想(北京)有限公司 一种信息处理方法及服务器
US9753964B1 (en) * 2017-01-19 2017-09-05 Acquire Media Ventures, Inc. Similarity clustering in linear time with error-free retrieval using signature overlap with signature size matching

Also Published As

Publication number Publication date
CN110457649A (zh) 2019-11-15
WO2019214303A1 (zh) 2019-11-14

Similar Documents

Publication Publication Date Title
US6507669B1 (en) Method of selecting clusters of items using a fuzzy histogram analysis
EP3835976A1 (en) Method and device for data retrieval
CN110019353B (zh) 一种数据处理方法及装置
CN109492047A (zh) 一种基于差分隐私的精确直方图的发布方法
CN109541654A (zh) 一种车辆停靠点的计算方法及装置
CN108920601B (zh) 一种数据匹配方法及装置
CN110457649B (zh) 数据批量选择的方法、装置和计算机存储介质
CN117596010A (zh) 一种用于网络异常检测的高效高精度基数测量方法及系统
CN110874601B (zh) 识别设备运行状态的方法、状态识别模型训练方法及装置
CN109840246A (zh) 一种用于计算目标特征的历史数据的方法及装置
KR20160001375A (ko) 의사 결정 트리의 학습과 분류를 위한 장치 및 그 방법
CN112633299B (zh) 一种目标检测方法、网络、装置、终端设备及存储介质
CN112561114B (zh) 卡口流量的预测方法、装置、电子设备及存储介质
CN113961752A (zh) 信息物理系统的基本可达图的分析方法和相关装置
CN108984101B (zh) 在分布式存储系统中确定事件之间关系的方法及装置
KR20170074418A (ko) 서열의 유사도 측정을 위한 k-mer 변환 장치 및 방법
CN110826898A (zh) 一种排序方法、装置、计算机设备和存储介质
CN110148225B (zh) 交通站点确定方法及装置、设备及存储设备
CN113132891A (zh) 一种基于移动信令的客流统计方法和系统
CN112463822B (zh) 用于芯片的数据处理方法及装置、电子设备和存储介质
CN112148765B (zh) 业务数据的处理方法、装置及存储介质
KR102053175B1 (ko) 그래프 스트림에서의 빈발 패턴 검출 방법 및 빈발 패턴 검출 시스템
CN116681767A (zh) 一种点云搜索方法、装置及终端设备
CN117009629A (zh) 用户分类方法、装置、电子设备及存储介质
CN115659276A (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