CN112558887B - 用于多媒体数据处理的向量量化方法、装置及设备 - Google Patents
用于多媒体数据处理的向量量化方法、装置及设备 Download PDFInfo
- Publication number
- CN112558887B CN112558887B CN202011567654.4A CN202011567654A CN112558887B CN 112558887 B CN112558887 B CN 112558887B CN 202011567654 A CN202011567654 A CN 202011567654A CN 112558887 B CN112558887 B CN 112558887B
- Authority
- CN
- China
- Prior art keywords
- vector
- floating point
- offset
- floating
- point type
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Human Computer Interaction (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种用于多媒体数据处理的向量量化方法、装置、设备及存储介质,涉及计算机视觉和深度学习技术的人工智能领域。该方法包括:计算机系统获取待处理的多媒体数据的特征向量,所述特征向量包括第一浮点型向量;所述计算机系统根据所述第一浮点型向量以及转换因子,得到第一中间向量,其中所述转换因子由所述第一浮点型向量中的元素的最大值以及最小值确定;所述计算机系统对所述第一中间向量进行量化处理,得到所述第一浮点型向量对应的整数型向量,所述整数型向量包括多个浮点数和第二中间向量,所述第二中间向量包括所述第一中间向量与偏移量的和,所述偏移量由所述转换因子确定。利用本申请能够节约硬件资源的存储空间。
Description
技术领域
本申请涉及计算机视觉和深度学习技术的人工智能领域。
背景技术
计算机系统对数据进行向量量化处理(Vector Quantization)用于语音与图像的存储可有效减小带宽和存储开销。目前,已有的向量匹配方式大多是直接进行距离计算,对向量没有压缩处理,这种直接存储、直接比对的方式用在小规模数据集是可行的,但是占用空间较大。如果使用标量量化方式,在进行特征比对时,需反解回原始向量才能进行距离计算;如果使用乘积量化(Product Quantization,PQ)方式,需将向量分割成多个空间维度,针对每个维度进行量化,处理过程耗时较长。相关方法的目的之一是在速度、准确率和空间开销之间权衡,减少受损因素。因此,如何实现在速度、准确率和空间开销中取得平衡的向量量化方法是需要深入研究的课题。
发明内容
本申请提供一种用于多媒体数据处理的向量量化方法、装置、设备以及存储介质,用于解决以上的至少一个技术问题。
根据本申请的第一方面,提供了一种用于多媒体数据处理的向量量化方法,包括:
所述计算机系统根据所述第一浮点型向量以及转换因子,得到第一中间向量,其中所述转换因子由所述第一浮点型向量中的元素的最大值以及最小值确定;
所述计算机系统对所述第一中间向量进行量化处理,得到所述第一浮点型向量对应的整数型向量,所述整数型向量包括多个浮点数和第二中间向量,所述第二中间向量包括所述第一中间向量与偏移量的和,所述偏移量由所述转换因子确定。
根据本申请的第二方面,提供了一种用于多媒体数据处理的计算机系统,包括:
转换处理模块,用于将第一浮点型向量与转换因子相乘,得到第一中间向量,其中所述转换因子由所述第一浮点型向量中的元素的最大值以及最小值确定;
量化处理模块,用于对所述第一中间向量进行量化处理,得到所述第一浮点型向量对应的整数型向量,所述整数型向量包括多个浮点数和第二中间向量,所述第二中间向量包括所述第一中间向量与偏移量的和,所述偏移量由所述转换因子确定。
根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上所述的方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如上所述的方法。
根据本申请的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。
本申请实施例可应用于例如过亿级别的数据存储,可将原始的多维浮点型向量量化为多维整数型向量,量化后可将原有向量中的每四个字节量化为一个字节,理论上可节省约75%的存储空间,可大幅减少物理资源的占用,避免空间资源的浪费。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例的用于多媒体数据处理的向量量化方法的流程图;
图2是本申请实施例的用于多媒体数据处理的向量量化的处理过程效果示意图;
图3是本申请实施例的用于多媒体数据处理的计算机系统的结构框图;
图4是实现本申请实施例的用于多媒体数据处理的向量量化方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了本申请实施例提供的一种用于多媒体数据处理的向量量化方法的流程框图,该方法包括:
S101,计算机系统获取待处理的多媒体数据的特征向量,特征向量包括第一浮点型向量;
S102,计算机系统根据第一浮点型向量以及转换因子,得到第一中间向量,其中转换因子由第一浮点型向量中的元素的最大值以及最小值确定;
S103,计算机系统对第一中间向量进行量化处理,得到第一浮点型向量对应的整数型向量,整数型向量包括多个浮点数和第二中间向量,第二中间向量包括第一中间向量与偏移量的和,偏移量由转换因子确定。
根据本申请的实施例,在计算机系统对多媒体数据的特征向量进行处理时,首先通过转换因子将其中的浮点型float向量转换为第一中间向量,对该第一中间向量进行量化处理,量化后得到整数型char向量,该char型向量包括多个浮点数(或称浮点float头)以及第二中间向量,其中,第二中间向量由第一中间向量加上偏移量得到,多个float头可分别由第一中间向量中的元素确定。
可以看到,利用本申请实施例可将原始的例如d维float向量量化为多个float头与d维char型向量的和,通过这种量化方式,可以将原有向量中的每4个字节(float型)量化为1个字节(char型),因此,理论上可节省约75%的存储资源,针对亿级别的数据集,采用本申请实施例可大幅减少存储资源的占用,避免资源浪费。
在本申请的实施例中,可选地,多个浮点数(或称float头)包括偏移量、第一中间向量中各元素的和以及第一中间向量的模。
在本申请的实施例中,偏移量可由转换因子确定,其中转换因子可由第一浮点型向量中的元素的最大值和最小值确定,第一中间向量中各元素的和以及第一中间向量的模可通过计算得到。
在本申请的实施例中,可选地,对于两个浮点型向量(第一浮点型向量和第二浮点型向量)之间的余弦距离,计算机系统可根据第一浮点型向量对应的多个浮点数以及第二浮点型向量对应的多个浮点数,计算第一浮点型向量与第二浮点型向量的余弦距离。
由于本申请实施例的余弦距离计算中需要的参数均在量化阶段计算完毕,可直接用于余弦距离的计算,因此本申请实施例的量化方式在节约向量存储空间的基础上,还能够压缩一部分处理耗时。
如果采取普通的量化方式,向量进行余弦距离计算时需将索引中的量化向量反解回去,因此虽然以往的量化处理能够减少存储,但反解向量的步骤使得比对耗时增加,处理时间较长。使用本申请实施例无需反解原始向量就可以得到向量的余弦距离,可大幅提高向量比对速度。
在本申请的实施例中,可选地,在计算机系统计算所述余弦距离过程中,基于avx2指令集对所述第一浮点型向量与所述第二浮点型向量的点积计算进行加速。
相对于以往float型的点积,本申请实施例的点积计算可结合avx2指令集进行加速,可大大提高向量之间的比对速度,相对于直接计算点积,理论上速度可提升约三倍或更多。
在本申请的实施例中,可选地,所述第一中间向量为V1=V×scale,其中V表示所述第一浮点型向量,scale表示所述转换因子,scale=K/(MAX–MIN),K为介于0-256之间的整数,MAX为所述第一浮点型向量V中元素的最大值,MIN为所述第一浮点型向量V中元素的最小值;
所述第一浮点型向量V对应的所述整数型向量为:
V'=(offset,sum,sq)+V2,
其中,V2表示所述第二中间向量,V2=V1+offset,offset表示所述偏移量,offset=-MIN×scale,sum表示所述第一中间向量V1中各元素的和,sq表示所述第一中间向量V1的模。
利用本本申请实施例的量化方法可用于例如过亿级别的数据存储,大幅减少物理机资源占用,避免浪费空间资源,进一步地,量化处理过程中的参数可实现向量余弦距离比对时进行加速,提高比对速度,节约处理耗时。
以上描述了本申请提供的用于多媒体数据处理的向量量化方法的多种实施例以及取得的优势。以下通过具体的例子,详细描述本申请实施例的具体处理过程。
以下实施例可应用于对视频、音频、图像等多媒体数据的处理,以原始向量为d维float向量V为例,利用前述的向量量化方法,将该d维float向量V量化为3个float头加d维char型向量(取值范围为0-127),参考图2,具体如下:
步骤1,将d维float向量V转换为中间向量V1,如下:
V1=V×scale(1)
其中,转换因子scale=K/(MAX–MIN),K为介于0-64或者0-256之间的整数,例如K=126,MAX为向量V中元素的最大值,MIN为向量V中元素的最小值;
步骤2,对中间向量V1进行量化处理,量化后char型向量为:
V'=(offset,sum,sq)+V2(2)
其中,向量V2=V1+offset,偏移量sum表示中间向量V1中各元素的和,sq表示中间向量V1的模sq。
上述量化方式具备如下特点:
①将float向量量化为一个char型向量(等同于unit8),原有的四字节量化到一个字节,理论上可节约75%的存储占用;
②该量化方式无需反解为原始特征即可进行余弦距离计算,节省了反解原始特征的耗时;
③该量化方式将原始float向量量化为unit8类型,进行余弦距离计算中的点积计算时配合avx2指令集可以进一步加速向量匹配计算。
本申请实施例可应用于对多媒体文件的处理,例如在图像搜索任务中,向量的近邻查询在计算机的图像搜索中起重要作用,可针对给定的向量搜索与其最近的、匹配的其他向量,利用本申请实施例能够加速向量的匹配计算,缩短相似图像的搜索时间。基于此,可应用在商品图检索、相同图检索或网站图片风控系统中,还可用于计算机系统建立全量数据库、网站中的图片入库等,方便审核溯源,还可用于建立黑库系统,用于新发图片的审核,实现实时拦截等。
为进一步说明本申请实施例的量化方式的合理性,提供以下证明内容。
a)在压缩过程中,由V转换到V1后,计算的点积相同,即点积<x1,y1>=<x,y>,证明过程如下:
根据式(1),x1=x*scale,y1=y*scale,
<x1,y1>=(scale*x1*y1*scale1+...+scale*xN*yN*scale)/
((scale2*x12+...+scale2*xN2)1/2*(scale2*y12+...+scale2*yN2)1/2)
=scale2*(x*y)/(scale2(|X|*|Y|))
=<x,y>
以上即证明了由V变到V1后计算的点积与按照原向量计算的点积相同。
b)向量的float值*scale+offset,均落在0-127范围内,证明过程如下:
scale=(MAX–MIN)/(127–1),
offset=-(MIN/scale)=-min*(127-1)/(MAX–MIN),
由于需整体向左偏移,坐标减去offset,因此直接为负。
设MIN*(127–1)/(MAX–MIN)=a+b,此处a>0与a<0的情况相同,有:
(1)若b>0&&b<=0.5,offset=[-(a+b)],向上取整即等于-a,V2上min的映射为:[MIN*(127–1)/(MAX-MIN)],四舍五入后减去偏移量,
MIN=a–a=0;
V2上MAX的映射为:[MAX*(127-1)/(MAX–MIN)],四舍五入后减去偏移量,
MAX=[(MAX–MIN+MIN)*126/(MAX–MIN)]–a,
MAX=[126+126MIN/(MAX-MIN)]–a,
MAX=126+a–a=126,
(2)若b>0.5,offset=-(a+b)=-a,
V2在MIN上映射[MIN*126/(MAX–MIN)]–a,
MIN=a+1–a=1,
V2在MAX上映射,
MAX=[MAX*126/(MAX-MIN)]-a,
MAX=126+a+1–a=127。
以上证明了向量的float值*scale+offset后均落在了0-127范围内。
c)关于计算向量的余弦距离,设两个原始向量U和W,均为d维float浮点型向量,按照本申请上述量化方式进行压缩后,char整数型向量为U',W',如下:
U'=(offset1,sum1,sq1)+U2,
W'=(offset2,sum2,sq2)+W2,
则向量U和W的余弦距离可以通过下式得到:
cos<U,W>=(dot(U2,W2)–offset1×sum2–offset2×sum1–d×offset1×offset2)/(sq1×sq2) (3)
其中,dot(U2,W2)为向量U2和W2的点积。
对于式(3),证明如下:
<x,y>的余弦cos距离,
<x,y>=(x*y)/(|x|*|y|),
<x,y>=((x+offset1–offset1)*(y+offset2–offset2))/(|x|*|y|),
<x,y>=((x+offset1)*(y+offset2)–offset1*y–offset2*x+offset1*offset2)/(|x|*|y|),
其中,
即表示d维度char去做点积运算,即dot=x1y1+x2y2+...+xnyn,
|offset1|*∑y表示向量y的和乘以偏移量的值,
|offset2|*∑x表示向量x的和乘以偏移量的值,
offset1*offset2表示两个值为off1与off2的D维度向量做点积,所以用D*|off1|*|off2|来表示。
按照以往的处理方式是向量进行距离计算时再将索引中的量化向量反解回来,这样只是减少了存储,在进行向量比对时并没有加速,反而因为反解向量使得比对耗时增加。使用本方案提供的向量压缩方法,无需反解原始向量就可以得到向量的余弦距离,可以大大提高向量比对速度。
通过上述实施例的量化方法,可将原始float向量量化为char向量,且每个元素取值范围均在0-127之间(uint8)。以往原始向量的余弦距离计算方式为cos<U,W>=dot(U,W)/(|U|*|W|),需要计算原始float向量间的点积以及原始向量的模;而在本申请实施例上述余弦距离的计算方法中,offset、sum、sq均在量化阶段计算完毕,比对时无需计算,可节约部分比对时间,而需要计算的点积也转化为了量化后U2和W2之间的点积,由于U2,W2均为整数,相对于float的点积,uint8的点积计算可以结合相关硬件公司提供的avx2指令集进行加速,大大提高向量之间的比对速度,相对于直接计算点积,速度提升三倍以上。
以上通过多个实施例从不同角度描述了本申请实施例的具体设置和实现方式。与上述至少一个实施例的处理方法相对应地,本申请实施例还提供一种用于多媒体数据处理的计算机系统100,参考图3,其包括:
转换处理模块110,用于将第一浮点型向量与转换因子相乘,得到第一中间向量,其中所述转换因子由所述第一浮点型向量中的元素的最大值以及最小值确定;
量化处理模块120,用于对所述第一中间向量进行量化处理,得到所述第一浮点型向量对应的整数型向量,所述整数型向量包括多个浮点数和第二中间向量,所述第二中间向量包括所述第一中间向量与偏移量的和,所述偏移量由所述转换因子确定。
可选地,所述多个浮点数包括:所述偏移量、所述第一中间向量中各元素的和以及所述第一中间向量的模。
可选地,用于多媒体数据处理的计算机系统100还包括计算模块,用于根据所述第一浮点型向量对应的多个浮点数以及第二浮点型向量对应的多个浮点数,计算所述第一浮点型向量与所述第二浮点型向量的余弦距离。
可选地,在计算模块计算所述余弦距离过程中,基于avx2指令集对所述第一浮点型向量与所述第二浮点型向量的点积计算进行加速。
可选地,所述第一中间向量为V1=V×scale,其中V表示所述第一浮点型向量,scale表示所述转换因子,scale=K/(MAX–MIN),K为介于0-256之间的整数,MAX为所述第一浮点型向量V中元素的最大值,MIN为所述第一浮点型向量V中元素的最小值;所述第一浮点型向量V对应的所述整数型向量为:V'=(offset,sum,sq)+V2,其中,V2表示所述第二中间向量,V2=V1+offset,offset表示所述偏移量,offset=-MIN×scale,sum表示所述第一中间向量V1中各元素的和,sq表示所述第一中间向量V1的模。
利用本申请实施例可满足对于过亿级别的数据存储,大大减少物理机资源占用,例如原本需要100台物理机磁盘存储的索引数据,使用标量量化后可以缩减为25台物理机,资源成本节约75%。纵观其他向量检索方式,多是采用PQ量化方式,虽然PQ量化方式可以达到压缩索引的效果,但是计算量大,精度损失高,比对时需要反解char型索引是最大弊病。本申请实施例结合avx2指令集进行加速后,在尽可能保证精度的情况下,有利于检索速度与数据压缩的平衡。
本申请实施例各装置中的各模块的功能可以参见上述方法实施例中的对应描述的处理,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。如图4所示,是根据本申请实施例的用于多媒体数据处理的向量量化方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该电子设备包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器1001为例。
存储器1002即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的用于多媒体数据处理的向量量化方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的用于多媒体数据处理的向量量化方法。
存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的用于多媒体数据处理的向量量化方法对应的程序指令/模块(例如,图3所示的转换处理模块110和量化处理模块120)。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于多媒体数据处理的向量量化方法。
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据搜索结果的分析处理电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至搜索结果的分析处理电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例的用于多媒体数据处理的向量量化方法对应的电子设备还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,本申请图4实施例中以通过总线连接为例。
输入装置1003可接收输入的数字或字符信息,以及产生与搜索结果的分析处理电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、发光二极管(Light EmittingDiode,LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路(Application Specific Integrated Circuits,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(programmable logic device,PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(Cathode Ray Tube,阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种用于多媒体数据处理的向量量化方法,包括:
计算机系统获取待处理的多媒体数据的特征向量,所述特征向量包括第一浮点型向量;
所述计算机系统根据所述第一浮点型向量以及转换因子,得到第一中间向量,其中所述转换因子由所述第一浮点型向量中的元素的最大值以及最小值确定;
所述计算机系统对所述第一中间向量进行量化处理,得到所述第一浮点型向量对应的整数型向量,所述整数型向量由多个浮点数头拼接第二中间向量组成,所述第二中间向量包括所述第一中间向量与偏移量的和,所述偏移量由所述转换因子确定;
其中:
多个浮点数包括:所述偏移量、所述第一中间向量中各元素的和以及所述第一中间向量的模。
2.根据权利要求1所述的方法,还包括:
所述计算机系统根据所述第一浮点型向量对应的多个浮点数以及第二浮点型向量对应的多个浮点数,计算所述第一浮点型向量与所述第二浮点型向量的余弦距离。
3.根据权利要求2所述的方法,其中:
在所述计算机系统计算所述余弦距离过程中,基于avx2指令集对所述第一浮点型向量与所述第二浮点型向量的点积计算进行加速。
4.根据权利要求1至3中任一项所述的方法,其中:
所述第一中间向量为V1=V×scale,其中V表示所述第一浮点型向量,scale表示所述转换因子,scale=K/(MAX–MIN),K为介于0-256之间的整数,MAX为所述第一浮点型向量V中元素的最大值,MIN为所述第一浮点型向量V中元素的最小值;
所述第一浮点型向量V对应的所述整数型向量为:
V'=(offset, sum, sq)+V2,
其中,V2表示所述第二中间向量,V2=V1+offset,offset表示所述偏移量,offset=-MIN×scale,sum表示所述第一中间向量V1中各元素的和,sq表示所述第一中间向量V1的模。
5.一种用于多媒体数据处理的计算机系统,包括:
转换处理模块,用于将第一浮点型向量与转换因子相乘,得到第一中间向量,其中所述转换因子由所述第一浮点型向量中的元素的最大值以及最小值确定;
量化处理模块,用于对所述第一中间向量进行量化处理,得到所述第一浮点型向量对应的整数型向量,所述整数型向量由多个浮点数头拼接第二中间向量组成,所述第二中间向量包括所述第一中间向量与偏移量的和,所述偏移量由所述转换因子确定;
其中:
多个浮点数包括:所述偏移量、所述第一中间向量中各元素的和以及所述第一中间向量的模。
6.根据权利要求5所述的计算机系统,还包括:
计算模块,用于根据所述第一浮点型向量对应的多个浮点数以及第二浮点型向量对应的多个浮点数,计算所述第一浮点型向量与所述第二浮点型向量的余弦距离。
7.根据权利要求6所述的计算机系统,其中:
在所述计算模块计算所述余弦距离过程中,基于avx2指令集对所述第一浮点型向量与所述第二浮点型向量的点积计算进行加速。
8.根据权利要求5至7中任一项所述的计算机系统,其中:
所述第一中间向量为V1=V×scale,其中V表示所述第一浮点型向量,scale表示所述转换因子,scale=K/(MAX–MIN),K为介于0-256之间的整数,MAX为所述第一浮点型向量V中元素的最大值,MIN为所述第一浮点型向量V中元素的最小值;
所述第一浮点型向量V对应的所述整数型向量为:
V'=(offset, sum, sq)+V2,
其中,V2表示所述第二中间向量,V2=V1+offset,offset表示所述偏移量,offset=-MIN×scale,sum表示所述第一中间向量V1中各元素的和,sq表示所述第一中间向量V1的模。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011567654.4A CN112558887B (zh) | 2020-12-25 | 2020-12-25 | 用于多媒体数据处理的向量量化方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011567654.4A CN112558887B (zh) | 2020-12-25 | 2020-12-25 | 用于多媒体数据处理的向量量化方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112558887A CN112558887A (zh) | 2021-03-26 |
CN112558887B true CN112558887B (zh) | 2023-09-22 |
Family
ID=75033120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011567654.4A Active CN112558887B (zh) | 2020-12-25 | 2020-12-25 | 用于多媒体数据处理的向量量化方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112558887B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109615068A (zh) * | 2018-11-08 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种对模型中的特征向量进行量化的方法和装置 |
CN111176853A (zh) * | 2020-02-19 | 2020-05-19 | 珠海市杰理科技股份有限公司 | 数据量化方法、装置、计算机设备和存储介质 |
CN111260022A (zh) * | 2019-11-22 | 2020-06-09 | 中国电子科技集团公司第五十二研究所 | 一种卷积神经网络全int8定点量化的方法 |
CN111611450A (zh) * | 2020-05-12 | 2020-09-01 | 深圳力维智联技术有限公司 | 跨媒介数据融合方法、装置及存储介质 |
CN111950715A (zh) * | 2020-08-24 | 2020-11-17 | 云知声智能科技股份有限公司 | 基于自适应动态移位的8位整型全量化推理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9483265B2 (en) * | 2013-08-01 | 2016-11-01 | Nuance Communications, Inc. | Vectorized lookup of floating point values |
-
2020
- 2020-12-25 CN CN202011567654.4A patent/CN112558887B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109615068A (zh) * | 2018-11-08 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种对模型中的特征向量进行量化的方法和装置 |
CN111260022A (zh) * | 2019-11-22 | 2020-06-09 | 中国电子科技集团公司第五十二研究所 | 一种卷积神经网络全int8定点量化的方法 |
CN111176853A (zh) * | 2020-02-19 | 2020-05-19 | 珠海市杰理科技股份有限公司 | 数据量化方法、装置、计算机设备和存储介质 |
CN111611450A (zh) * | 2020-05-12 | 2020-09-01 | 深圳力维智联技术有限公司 | 跨媒介数据融合方法、装置及存储介质 |
CN111950715A (zh) * | 2020-08-24 | 2020-11-17 | 云知声智能科技股份有限公司 | 基于自适应动态移位的8位整型全量化推理方法及装置 |
Non-Patent Citations (2)
Title |
---|
Efficient Processing of Deep Neural Networks: A Tutorial and Survey;Vivienne Sze等;《Proceedings of the IEEE》;第105卷(第12期);全文 * |
浮点类型有效位数计算与应用分析;肖红德;;软件导刊(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112558887A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102513867B1 (ko) | 포인트 클라우드 기하학적 압축 | |
US11748895B2 (en) | Method and apparatus for processing video frame | |
US20230022550A1 (en) | Image processing method, method for training image processing model devices and storage medium | |
EP3869403A2 (en) | Image recognition method, apparatus, electronic device, storage medium and program product | |
KR102528748B1 (ko) | 지식 그래프를 구축하는 방법, 장치, 기기 및 저장 매체 | |
CN111259671B (zh) | 文本实体的语义描述处理方法、装置及设备 | |
US11257252B2 (en) | Image coding apparatus, probability model generating apparatus and image compression system | |
US11637986B2 (en) | Method and apparatus for interpolating frame to video, and electronic device | |
CN112230881A (zh) | 浮点数处理器 | |
EP3934249A1 (en) | Method for coding video and related device | |
CN111242874B (zh) | 图像修复的方法、装置、电子设备和存储介质 | |
US11582449B2 (en) | Method for image encoding, electronic device and storage medium | |
CN112686031A (zh) | 文本特征提取模型的量化方法、装置、设备及存储介质 | |
CN114090740B (zh) | 意图识别方法、装置、可读介质及电子设备 | |
CN115147695A (zh) | 融合图像缩放与颜色空间转换的方法、装置及设备 | |
CN115170815A (zh) | 视觉任务处理及模型训练的方法、装置、介质 | |
CN112558887B (zh) | 用于多媒体数据处理的向量量化方法、装置及设备 | |
CN111177479B (zh) | 获取关系网络图中节点的特征向量的方法以及装置 | |
KR20220038607A (ko) | 내적 연산 구현 방법, 장치, 전자 기기 및 기록 매체 | |
CN113360683A (zh) | 训练跨模态检索模型的方法以及跨模态检索方法和装置 | |
CN110517079B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
US20210312264A1 (en) | Method and apparatus for model distillation | |
CN112291559B (zh) | 视频编码方法、装置、设备和介质 | |
CN114638344A (zh) | 一种模型量化方法和相关装置 | |
CN113495971B (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 |