一种图像分类方法及其相关设备与流程

文档序号:33269689发布日期:2023-02-24 16:37阅读:50来源:国知局
一种图像分类方法及其相关设备与流程

1.本技术涉及人工智能(artificial intelligence,ai)技术领域,尤其涉及一种图像分类方法及其相关设备。


背景技术:

2.图像分类是计算机视觉的重要任务之一,在自动驾驶、工业视觉等领域都有重要应用。transformer网络是基于自注意力(self attention)机制构建的神经网络,由于该模型在图像分类等任务上表现出强大的性能,受到了广泛关注。
3.目前,在将待分类的目标图像输入至transformer网络后,transformer网络可对目标图像进行一系列的处理,得到目标图像的注意力特征,再基于目标图像的注意力特征获取目标图像的分类结果。
4.然而,transformer网络获取目标图像的注意力特征的操作,通常包含了大量的乘法运算,需要的计算开销很大,导致transformer网络难以应用在算力有限的终端设备上。


技术实现要素:

5.本技术实施例提供了一种图像分类方法及其相关设备,可使得transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,故transformer网络可被广泛应用在算力有限的终端设备上。
6.本技术实施例的第一方面提供了一种图像分类方法,该方法包括:
7.当需要确定目标图像的类别时,可将目标图像输入至transformer网络,以使得transformer网络实现以下步骤:
8.transformer网络获取目标图像的m个第一特征,m为大于或等于1的整数。
9.接着,transformer网络可根据第k个第一特征进行线性变换处理,得到第k个第二特征、第k个第三特征和第k个第四特征,k=1,

,m。其中,第二特征可理解为自注意力机制中的q特征,第三特征可理解为自注意力机制中的k特征,第四特征可理解为自注意力机制中的v特征。
10.然后,transformer网络计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征。一般地,第k个第二特征和第k个第三特征之间的距离可以为一阶距离(l1距离),也可以为二阶距离(l2距离),因此,第k个第二特征和第k个第三特征之间的距离的计算,通常基于加法运算即可实现。
11.随后,transformer网络计算根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征。
12.对于除第k个第一特征之外的其余第一特征,transformer网络也会对其余第一特征执行如前述的操作,故transformer网络可得到m个第六特征,那么,transformer网络可根据m个第六特征,获取目标图像的分类结果。
13.从上述方法可以看出:在获取目标图像的m个第一特征后,transformer网络可根
据第k个第一特征进行线性变换处理,得到第k个第二特征(即q特征)、第k个第三特征(即k特征)和第k个第四特征(即v特征),k=1,

,m。接着,transformer网络计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征(即注意力特征)。然后,transformer网络根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征。得到m个第六特征后,transformer网络可根据m个第六特征,获取目标图像的分类结果。前述过程中,由于第二特征和第三特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取第五特征(即注意力特征)的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
14.在一种可能的实现方式中,计算所述第k个第二特征和第k个第三特征之间的距离包括:基于加法运算计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征。前述实现方式中,transformer网络获取第五特征的过程,主要涉及加法运算,以及少量的乘法运算,故可有效降低整个网络的计算开销。
15.在一种可能的实现方式中,第k个第二特征包含n个行向量,第k个第三特征包含n个行向量,基于加法运算计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征包括:对第k个第二特征的第j个行向量和第k个第三特征的第i个行向量进行相减处理,得到第p个第一中间向量,j=1,

,n,i=1,

,n,p=1,

,n
×
n;对第p个第一中间向量的所有元素进行相加处理,得到第k个第七特征中第j行第i列的元素;对第k个第七特征进行缩放处理以及归一化处理,得到第k个第五特征。
16.前述实现方式中,transformer网络对第k个第二特征的第j个行向量和第k个第三特征的第i个行向量进行相减处理,再将相减处理得到的中间向量的所有元素进行相加处理,接着将相加处理的结果作为第k个第七特征中第j行第i列的元素。然后,transformer网络对第k个第七特征中第j行第i列的元素进行缩放处理以及归一化处理,得到第k个第五特征中第j行第i列的元素。由于j=1,

,n,i=1,

,n,说明前述过程会进行n
×
n次,故可得到第k个第五特征。可见,transformer网络获取第五特征的过程,主要涉及加法运算,以及少量的乘法运算,故可有效降低整个网络的计算开销。
17.在一种可能的实现方式中,根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征包括:基于加法运算对第k个第五特征的元素和第k个第四特征的元素进行处理,得到第k个第六特征。前述实现方式中,transformer网络获取第六特征的过程,主要涉及加法运算以及逻辑运算,故可进一步降低整个网络的计算开销。
18.在一种可能的实现方式中,第k个第四特征包含n
×
d/m个元素,基于加法运算对第k个第五特征的元素和第k个第四特征的元素进行处理,得到第k个第六特征包括:对第k个第四特征的第x个列向量进行取绝对值处理,得到第k个第四特征的取绝对值后的第x个列向量;对取绝对值后的第x个列向量和第k个第五特征的第y个行向量进行相加处理,得到第q个第二中间向量,x=1,

,d/m,y=1,

,n,h=1,

,n
×
d/m;将第q个第二中间向量的符号设置得与第x个列向量的符号相同,得到设置符号后的第q个第二中间向量;对设置符号后的第q个第二中间向量的所有元素进行相加处理,得到第k个第六特征中第y行第x列的元素。
19.前述实现方式中,transformer网络对第k个第四特征的第x个列向量进行取绝对
值处理,得到第k个第四特征的取绝对值后的第x个列向量。接着,transformer网络对第k个第四特征的取绝对值后的第x个列向量和第k个第五特征的第y个行向量进行相加处理,再将相加处理的中间向量中各个元素的符号设置得与第k个第四特征的第x个列向量中相应元素的符号相同,然后将设置符号后的中间向量的所有元素进行相加处理,并将相加处理的结果作为第k个第六特征中第y行第x列的元素。由于x=1,

,d/m,y=1,

n,说明前述过程会进行n
×
(d/m)次,故可得到第k个第六特征。可见,transformer网络获取第六特征的过程,主要涉及加法运算以及逻辑运算,故可进一步降低整个网络的计算开销。
20.在一种可能的实现方式中,根据第k个第一特征进行线性变换处理,得到第k个第二特征、第k个第三特征和第k个第四特征包括:获取第一权重矩阵、第二权重矩阵和第三权重矩阵;使用第一权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第二特征;使用第二权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第三特征;使用第三权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第四特征。
21.前述实现方式中,transformer网络对第k个第二特征的第a个行向量和第一权重矩阵的第b个列向量进行相减处理,再将相减处理得到的中间向量的所有元素进行取绝对值处理,接着将取绝对值后的中间向量的所有元素进行取负值处理,然后将取负值后的中间向量的所有元素进行相加处理,并将相加处理得到的结果作为第k个第二特征中第a行第b列的元素。由于a=1,

,n,b=1,

,d/m,说明前述过程会进行n
×
(d/m)次,故可得到第k个第二特征。同样地,transformer网络获取第k个第三特征以及第k个第四特征的过程,也可参考第k个第二特征的相关说明部分,此处不再赘述。可见,transformer网络获取第二特征、第三特征和第四特征的过程,基本涉及加法运算,故可更进一步降低整个网络的计算开销。
22.在一种可能的实现方式中,该方法还包括:transformer网络将第k个第五特征和预置的单位矩阵进行相加处理,得到优化后的第k个第五特征。前述实现方式中,transformer网络在得到注意力特征后,可通过优化注意力特征(即叠加一个单位矩阵),使得注意力特征中的主要信息的分布更加均衡,有利于提高transformer网络的性能。
23.在一种可能的实现方式中,根据m个第六特征,获取目标图像的分类结果包括:transformer网络先对m个第六特征进行拼接处理,得到目标图像的第八特征。然后,transformer网络根据m个第一特征和第八特征进行至少一次第二融合处理、至少一次由加法运算构建的线性变换处理以及至少一次归一化处理,得到目标图像的第九特征。最后,transformer网络根据第九特征,可准确获取目标图像的分类结果。
24.在一种可能的实现方式中,第二融合处理包含相加处理、相乘处理、相减处理、级联处理或级联卷积处理中的至少一个。
25.在一种可能的实现方式中,m个第一特征的尺寸相同。
26.本技术实施例的第二方面提供了一种模型训练方法,该方法包括:获取待处理图像;将待处理图像输入至待训练模型,得到待处理图像的预测分类结果,待训练模型用于:获取待处理图像的m个第一特征,m≥1;根据第k个第一特征进行线性变换处理,得到第k个第二特征、第k个第三特征和第k个第四特征,k=1,

,m;计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征;根据第k个第五特征和第k个第四特征进行第一融合
处理,得到第k个第六特征;根据m个第六特征,获取待处理图像的预测分类结果;根据预测分类结果和待处理图像的真实分类结果,获取目标损失,目标损失用于指示预测分类结果和真实分类结果之间的差异;根据目标损失对待训练模型的模型参数进行更新,直至满足模型训练条件,得到transformer网络。
27.基于上述方法得到的transformer网络,具备利用对待分类的目标图像进行分类的能力。在图像分类的过程中,transformer网络可通过计算q特征和k特征之间的距离,以得到目标图像的注意力特征。由于q特征和k特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
28.在一种可能的实现方式中,待训练模型,用于基于加法运算计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征。
29.在一种可能的实现方式中,第k个第二特征包含n个行向量,第k个第三特征包含n个行向量,待训练模型,用于:对第k个第二特征的第j个行向量和第k个第三特征的第i个行向量进行相减处理,得到第p个第一中间向量,j=1,

,n,i=1,

,n,p=1,

,n
×
n;对第p个第一中间向量的所有元素进行相加处理,得到第k个第七特征中第j行第i列的元素;对第k个第七特征进行缩放处理以及归一化处理,得到第k个第五特征。
30.在一种可能的实现方式中,待训练模型,用于基于加法运算对第k个第五特征的元素和第k个第四特征的元素进行处理,得到第k个第六特征。
31.在一种可能的实现方式中,第k个第四特征包含n
×
d/m个元素,待训练模型,用于:对第k个第四特征的第x个列向量进行取绝对值处理,得到第k个第四特征的取绝对值后的第x个列向量;对取绝对值后的第x个列向量和第k个第五特征的第y个行向量进行相加处理,得到第q个第二中间向量,x=1,

,d/m,y=1,

,n,h=1,

,n
×
d/m;将第q个第二中间向量的符号设置得与第x个列向量的符号相同,得到设置符号后的第q个第二中间向量;对设置符号后的第q个第二中间向量的所有元素进行相加处理,得到第k个第六特征中第y行第x列的元素。
32.在一种可能的实现方式中,待训练模型,用于:获取第一权重矩阵、第二权重矩阵和第三权重矩阵;使用第一权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第二特征;使用第二权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第三特征;使用第三权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第四特征。
33.在一种可能的实现方式中,待训练模型,还用于:将第k个第五特征于预置的单位矩阵进行相加处理,得到优化后的第k个第五特征。
34.在一种可能的实现方式中,待训练模型,用于:对m个第六特征进行拼接处理,得到待处理图像的第八特征;根据m个第一特征和第八特征进行第二融合处理、由加法运算构建的线性变换处理以及归一化处理,得到待处理图像的第九特征;根据第九特征,获取待处理图像的分类结果。进一步地,第二融合处理包含相加处理、相乘处理、相减处理、级联处理或级联卷积处理中的至少一个。
35.在一种可能的实现方式中,第二融合处理包含相加处理、相乘处理、相减处理、级联处理或级联卷积处理中的至少一个。
36.在一种可能的实现方式中,m个第一特征的尺寸相同。
37.本技术实施例的第三方面提供了一种图像分类方法,该方法应用于终端设备,终端设备包括处理器,处理器包括加法电路,该方法包括:获取目标图像;通过transformer网络对目标图像进行处理,得到目标图像的分类结果,transformer模型包含自注意力模块,自注意力模块计算目标图像的注意力特征的操作由加法电路实现;显示目标图像的分类结果。
38.从上述方法可以看出:在图像分类的过程中,transformer网络可通过计算q特征和k特征之间的距离,以得到目标图像的注意力特征。由于q特征和k特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
39.在一种可能的实现方式中,自注意力模块的线性变换操作由加法电路实现。
40.本技术实施例的第四方面提供了一种图像分类方法,该方法应用于终端设备,终端设备包括transformer网络,transformer网络包括自注意力模块,该方法包括:获取目标图像;显示目标图像的分类结果,目标图像的分类结果为基于将目标图像输入自注意力模块得到的第二特征和第三特征之间的距离确定的,第二特征为q特征,第三特征为k特征。
41.从上述方法可以看出:在图像分类的过程中,transformer网络可通过计算q特征和k特征之间的距离,以得到目标图像的注意力特征。由于q特征和k特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
42.在一种可能的实现方式中,距离为一阶距离或者二阶距离。
43.本技术实施例的第五方面提供了一种图像分类装置,该装置包括:第一获取模块,用于获取目标图像的m个第一特征,m≥1;第一处理模块,用于根据第k个第一特征进行线性变换处理,得到第k个第二特征、第k个第三特征和第k个第四特征,k=1,

,m;第二处理模块,用于计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征;第三处理模块,用于根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征;第二获取模块,用于根据m个第六特征,获取目标图像的分类结果。
44.从上述装置可以看出:在获取目标图像的m个第一特征后,transformer网络可根据第k个第一特征进行线性变换处理,得到第k个第二特征(即q特征)、第k个第三特征(即k特征)和第k个第四特征(即v特征),k=1,

,m。接着,transformer网络计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征(即注意力特征)。然后,transformer网络根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征。得到m个第六特征后,transformer网络可根据m个第六特征,获取目标图像的分类结果。前述过程中,由于第二特征和第三特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取第五特征(即注意力特征)的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
45.在一种可能的实现方式中,第二处理模块,用于基于加法运算计算第k个第二特征
和第k个第三特征之间的距离,得到第k个第五特征。
46.在一种可能的实现方式中,第k个第二特征包含n个行向量,第k个第三特征包含n个行向量,第二处理模块,用于:对第k个第二特征的第j个行向量和第k个第三特征的第i个行向量进行相减处理,得到第p个第一中间向量,j=1,

,n,i=1,

,n,p=1,

,n
×
n;对第p个第一中间向量的所有元素进行相加处理,得到第k个第七特征中第j行第i列的元素;对第k个第七特征进行缩放处理以及归一化处理,得到第k个第五特征。
47.在一种可能的实现方式中,第三处理模块,用于基于加法运算对第k个第五特征的元素和第k个第四特征的元素进行处理,得到第k个第六特征。
48.在一种可能的实现方式中,第k个第四特征包含n
×
d/m个元素,第三处理模块,用于:对第k个第四特征的第x个列向量进行取绝对值处理,得到第k个第四特征的取绝对值后的第x个列向量;对取绝对值后的第x个列向量和第k个第五特征的第y个行向量进行相加处理,得到第q个第二中间向量,x=1,

,d/m,y=1,

,n,h=1,

,n
×
d/m;将第q个第二中间向量的符号设置得与第x个列向量的符号相同,得到设置符号后的第q个第二中间向量;对设置符号后的第q个第二中间向量的所有元素进行相加处理,得到第k个第六特征中第y行第x列的元素。
49.在一种可能的实现方式中,第一处理模块,用于:获取第一权重矩阵、第二权重矩阵和第三权重矩阵;使用第一权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第二特征;使用第二权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第三特征;使用第三权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第四特征。
50.在一种可能的实现方式中,第二获取模块,用于:对m个第六特征进行拼接处理,得到目标图像的第八特征;根据m个第一特征和第八特征进行第二融合处理、由加法运算构建的线性变换处理以及归一化处理,得到目标图像的第九特征;根据第九特征,获取目标图像的分类结果。
51.在一种可能的实现方式中,第二处理模块,还用于将第k个第五特征于预置的单位矩阵进行相加处理,得到优化后的第k个第五特征。
52.在一种可能的实现方式中,第二融合处理包含相加处理、相乘处理、相减处理、级联处理或级联卷积处理中的至少一个。
53.在一种可能的实现方式中,m个第一特征的尺寸相同。
54.本技术实施例的第六方面提供了一种模型训练装置,该装置包括:第一获取模块,用于获取待处理图像;处理模块,用于将待处理图像输入至待训练模型,得到待处理图像的预测分类结果,待训练模型用于:获取待处理图像的m个第一特征,m≥1;根据第k个第一特征进行线性变换处理,得到第k个第二特征、第k个第三特征和第k个第四特征,k=1,

,m;计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征;根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征;根据m个第六特征,获取待处理图像的预测分类结果;第二获取模块,用于根据预测分类结果和待处理图像的真实分类结果,获取目标损失,目标损失用于指示预测分类结果和真实分类结果之间的差异;更新模块,用于根据目标损失对待训练模型的模型参数进行更新,直至满足模型训练条件,得到transformer网络。需要说明的是,第二获取模块和更新模块构成前述的训练模块。
55.基于上述装置得到的transformer网络,具备利用对待分类的目标图像进行分类的能力。在图像分类的过程中,transformer网络可通过计算q特征和k特征之间的距离,以得到目标图像的注意力特征。由于q特征和k特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
56.在一种可能的实现方式中,待训练模型,用于基于加法运算计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征。
57.在一种可能的实现方式中,第k个第二特征包含n个行向量,第k个第三特征包含n个行向量,待训练模型,用于:对第k个第二特征的第j个行向量和第k个第三特征的第i个行向量进行相减处理,得到第p个第一中间向量,j=1,

,n,i=1,

,n,p=1,

,n
×
n;对第p个第一中间向量的所有元素进行相加处理,得到第k个第七特征中第j行第i列的元素;对第k个第七特征进行缩放处理以及归一化处理,得到第k个第五特征。
58.在一种可能的实现方式中,待训练模型,用于基于加法运算对第k个第五特征的元素和第k个第四特征的元素进行处理,得到第k个第六特征。
59.在一种可能的实现方式中,第k个第四特征包含n
×
d/m个元素,待训练模型,用于:对第k个第四特征的第x个列向量进行取绝对值处理,得到第k个第四特征的取绝对值后的第x个列向量;对取绝对值后的第x个列向量和第k个第五特征的第y个行向量进行相加处理,得到第q个第二中间向量,x=1,

,d/m,y=1,

,n,h=1,

,n
×
d/m;将第q个第二中间向量的符号设置得与第x个列向量的符号相同,得到设置符号后的第q个第二中间向量;对设置符号后的第q个第二中间向量的所有元素进行相加处理,得到第k个第六特征中第y行第x列的元素。
60.在一种可能的实现方式中,待训练模型,用于:获取第一权重矩阵、第二权重矩阵和第三权重矩阵;使用第一权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第二特征;使用第二权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第三特征;使用第三权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第四特征。
61.在一种可能的实现方式中,待训练模型,用于:对m个第六特征进行拼接处理,得到待处理图像的第八特征;根据m个第一特征和第八特征进行第二融合处理、由加法运算构建的线性变换处理以及归一化处理,得到待处理图像的第九特征;根据第九特征,获取待处理图像的分类结果。
62.在一种可能的实现方式中,待训练模型,还用于将第k个第五特征于预置的单位矩阵进行相加处理,得到优化后的第k个第五特征。
63.在一种可能的实现方式中,第二融合处理包含相加处理、相乘处理、相减处理、级联处理或级联卷积处理中的至少一个。
64.在一种可能的实现方式中,m个第一特征的尺寸相同。
65.本技术实施例的第七方面提供了一种图像分类装置,该装置部署于终端设备,终端设备包括transformer网络,transformer网络包括自注意力模块,该装置包括:获取模块,用于获取目标图像;显示模块,用于显示目标图像的分类结果,目标图像的分类结果为基于将目标图像输入自注意力模块得到的第二特征和第三特征之间的距离确定的,第二特
征为q特征,第三特征为k特征。
66.从上述装置可以看出:在图像分类的过程中,transformer网络可通过计算q特征和k特征之间的距离,以得到目标图像的注意力特征。由于q特征和k特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
67.在一种可能的实现方式中,该距离为一阶距离或者二阶距离。
68.本技术实施例的第八方面提供了一种图像分类装置,该装置包括存储器和处理器;存储器存储有代码,处理器被配置为执行代码,当代码被执行时,图像分类装置执行如第一方面、第一方面中任意一种可能的实现方式、第三方面、第三方面中任意一种可能的实现方式、第四方面或第四方面中任意一种可能的实现方式所述的方法。
69.本技术实施例的第九方面提供了一种模型训练装置,该装置包括存储器和处理器;存储器存储有代码,处理器被配置为执行代码,当代码被执行时,模型训练装置执行如第二方面或第二方面中任意一种可能的实现方式所述的方法。
70.本技术实施例的第十方面提供了一种电路系统,该电路系统包括处理电路,该处理电路配置为执行如第一方面、第一方面中任意一种可能的实现方式、第二方面、第二方面中任意一种可能的实现方式、第三方面、第三方面中任意一种可能的实现方式、第四方面或第四方面中任意一种可能的实现方式所述的方法。
71.本技术实施例的第十一方面提供了一种芯片系统,该芯片系统包括处理器,用于调用存储器中存储的计算机程序或计算机指令,以使得该处理器执行如第一方面、第一方面中任意一种可能的实现方式、第二方面、第二方面中任意一种可能的实现方式、第三方面、第三方面中任意一种可能的实现方式、第四方面或第四方面中任意一种可能的实现方式所述的方法。
72.在一种可能的实现方式中,该处理器通过接口与存储器耦合。
73.在一种可能的实现方式中,该芯片系统还包括存储器,该存储器中存储有计算机程序或计算机指令。
74.本技术实施例的第十二方面提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,该程序在由计算机执行时,使得计算机实施如第一方面、第一方面中任意一种可能的实现方式、第二方面、第二方面中任意一种可能的实现方式、第三方面、第三方面中任意一种可能的实现方式、第四方面或第四方面中任意一种可能的实现方式所述的方法。
75.本技术实施例的第十三方面提供了一种计算机程序产品,该计算机程序产品存储有指令,该指令在由计算机执行时,使得计算机实施如第一方面、第一方面中任意一种可能的实现方式、第二方面、第二方面中任意一种可能的实现方式、第三方面、第三方面中任意一种可能的实现方式、第四方面或第四方面中任意一种可能的实现方式所述的方法。
76.本技术实施例中,在获取目标图像的m个第一特征后,transformer网络可根据第k个第一特征进行线性变换处理,得到第k个第二特征(即q特征)、第k个第三特征(即k特征)和第k个第四特征(即v特征),k=1,

,m。接着,transformer网络计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征(即注意力特征)。然后,transformer网络根据
第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征。得到m个第六特征后,transformer网络可根据m个第六特征,获取目标图像的分类结果。前述过程中,由于第二特征和第三特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取第五特征(即注意力特征)的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
附图说明
77.图1为人工智能主体框架的一种结构示意图;
78.图2a为本技术实施例提供的图像处理系统的一个结构示意图;
79.图2b为本技术实施例提供的图像处理系统的另一结构示意图;
80.图2c为本技术实施例提供的图像处理的相关设备的一个示意图;
81.图3为本技术实施例提供的系统100架构的一个示意图;
82.图4为本技术实施例提供的图像分类方法的一个流程示意图;
83.图5为本技术实施例提供的图像分类方法的另一流程示意图;
84.图6为本技术实施例提供的图像分类方法的一个流程示意图;
85.图7为本技术实施例提供的transformer网络的一个结构示意图;
86.图8为本技术实施例提供的多头自注意力模块的一个结构示意图;
87.图9为本技术实施例提供的由加法运算构建的线性变换处理的一个示意图;
88.图10为本技术实施例提供的观测数据的一个示意图;
89.图11为本技术实施例提供的前馈模块的一个示意图;
90.图12为相关技术一的神经网络模型的特征可视化结果的一个示意图;
91.图13为相关技术二的神经网络模型的特征可视化结果的一个示意图;
92.图14为本技术实施例提供的transformer网络的特征可视化结果的一个示意图;
93.图15为本技术实施例提供的模型训练方法的一个流程示意图;
94.图16为本技术实施例提供的图像分类装置的一个结构示意图;
95.图17为本技术实施例提供的模型训练装置的一个结构示意图;
96.图18为本技术实施例提供的图像分类装置的另一结构示意图;
97.图19为本技术实施例提供的执行设备的一个结构示意图;
98.图20为本技术实施例提供的训练设备的一个结构示意图;
99.图21为本技术实施例提供的芯片的一个结构示意图。
具体实施方式
100.本技术实施例提供了一种图像分类方法及其相关设备,可使得transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,故transformer网络可被广泛应用在算力有限的终端设备上。
101.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”并他们的任何变形,意图在于覆盖不排他的包含,以便包
含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
102.图像分类是计算机视觉的重要任务之一,在自动驾驶、工业视觉等领域都有重要应用。transformer网络是基于自注意力(self attention)机制构建的神经网络,由于该模型在图像分类等任务上表现出强大的性能,受到了广泛关注。
103.目前,在将待分类的目标图像输入至transformer网络后,transformer网络可先对目标图像进行线性变换处理,从而得到目标图像的q特征、k特征和v特征。接着,transformer网络可将q特征和k特征进行融合处理,得到目标图像的a特征(注意力特征)。然后,transformer网络可将目标图像的a特征和v特征进行融合处理,再根据融合后的特征获取目标图像的分类结果,则确定了目标图像的类别。
104.然而,transformer网络获取目标图像的注意力特征的操作(例如,线性变换处理和融合处理等等),通常包含了大量的乘法运算,需要的计算开销很大,导致transformer网络难以应用在算力有限的终端设备上。
105.为了解决上述问题,本技术提供了一种图像分类方法,该方法可结合人工智能(artificial intelligence,ai)技术实现。ai技术是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能的技术学科,ai技术通过感知环境、获取知识并使用知识获得最佳结果。换句话说,人工智能技术是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。利用人工智能进行图像处理是人工智能常见的一个应用方式。
106.首先对人工智能系统总体工作流程进行描述,请参见图1,图1为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
107.(1)基础设施
108.基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(cpu、npu、gpu、asic、fpga等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
109.(2)数据
110.基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
111.(3)数据处理
112.数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
113.其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽
取、预处理、训练等。
114.推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
115.决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
116.(4)通用能力
117.对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
118.(5)智能产品及行业应用
119.智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、智慧城市等。
120.接下来介绍几种本技术的应用场景。
121.图2a为本技术实施例提供的图像处理系统的一个结构示意图,该图像处理系统包括用户设备以及数据处理设备。其中,用户设备包括手机、个人电脑或者信息处理中心等智能终端。用户设备为图像处理的发起端,作为图像处理请求的发起方,通常由用户通过用户设备发起请求。
122.上述数据处理设备可以是云服务器、网络服务器、应用服务器以及管理服务器等具有数据处理功能的设备或服务器。数据处理设备通过交互接口接收来自智能终端的图像处理请求,再通过存储数据的存储器以及数据处理的处理器环节进行机器学习,深度学习,搜索,推理,决策等方式的图像处理。数据处理设备中的存储器可以是一个统称,包括本地存储以及存储历史数据的数据库,数据库可以在数据处理设备上,也可以在其它网络服务器上。
123.在图2a所示的图像处理系统中,用户设备可以接收用户的指令,例如用户设备可以获取用户输入/选择的一张图像,然后向数据处理设备发起请求,使得数据处理设备针对用户设备得到的该图像执行图像处理应用(例如,图像分类等等),从而得到针对该图像的对应的处理结果。示例性的,用户设备可以获取用户输入的一张图像,然后向数据处理设备发起图像分类请求,使得数据处理设备对该图像进行分类,从而得到图像的分类结果(即图像所属的类别),并显示图像的分类结果,以供用户观看和使用。
124.在图2a中,数据处理设备可以执行本技术实施例的图像分类方法。
125.图2b为本技术实施例提供的图像处理系统的另一结构示意图,在图2b中,用户设备直接作为数据处理设备,该用户设备能够直接获取来自用户的输入并直接由用户设备本身的硬件进行处理,具体过程与图2a相似,可参考上面的描述,在此不再赘述。
126.在图2b所示的图像处理系统中,用户设备可以接收用户的指令,例如用户设备可以获取用户在用户设备中所选择的一张图像,然后再由用户设备自身针对该图像执行图像处理应用(例如图像分类等),从而得到针对该图像的对应的处理结果,并显示处理结果,以供用户观看和使用。
127.在图2b中,用户设备自身就可以执行本技术实施例的图像处理方法。
processing unit,cpu)(host cpu)上,由主cpu分配任务。npu的核心部分为运算电路,控制器控制运算电路提取存储器(权重存储器或输入存储器)中的数据并进行运算。
139.在一些实现中,运算电路内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路是二维脉动阵列。运算电路还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路是通用的矩阵处理器。
140.举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)中。
141.值得注意的是,本技术实施例中,npu的运算电路主要用于实现大量的加法运算以及少量的乘法运算,即运算电路可视为包含加法电路部分和乘法电路部分,加法电路可用于实现注意力特征的计算(包含两个矩阵之间距离的计算)、由加法运算构成的线性变换、矩阵融合等各种处理,此处先不展开。
142.向量计算单元可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元可以用于神经网络中非卷积/非fc层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
143.在一些实现种,向量计算单元能将经处理的输出的向量存储到统一缓存器。例如,向量计算单元可以将非线性函数应用到运算电路的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路的激活输入,例如用于在神经网络中的后续层中的使用。
144.统一存储器用于存放输入数据以及输出数据。
145.权重数据直接通过存储单元访问控制器(direct memory access controller,dmac)将外部存储器中的输入数据搬运到输入存储器和/或统一存储器、将外部存储器中的权重数据存入权重存储器,以及将统一存储器中的数据存入外部存储器。
146.总线接口单元(bus interface unit,biu),用于通过总线实现主cpu、dmac和取指存储器之间进行交互。
147.与控制器连接的取指存储器(instruction fetch buffer),用于存储控制器使用的指令;
148.控制器,用于调用指存储器中缓存的指令,实现控制该运算加速器的工作过程。
149.一般地,统一存储器,输入存储器,权重存储器以及取指存储器均为片上(on-chip)存储器,外部存储器为该npu外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
150.由于本技术实施例涉及大量神经网络的应用,为了便于理解,下面先对本技术实施例涉及的相关术语及神经网络等相关概念进行介绍。
151.(1)神经网络
152.神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运
算单元,该运算单元的输出可以为:
[0153][0154]
其中,s=1、2、
……
n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0155]
神经网络中的每一层的工作可以用数学表达式y=a(wx+b)来描述:从物理层面神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由wx完成,4的操作由+b完成,5的操作则由a()来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,w是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量w决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重w控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
[0156]
因为希望神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
[0157]
(2)反向传播算法
[0158]
神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
[0159]
下面从神经网络的训练侧和神经网络的应用侧对本技术提供的方法进行描述。
[0160]
本技术实施例提供的模型训练方法,涉及图像的处理,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据(如本技术中的待处理图像)进行符号化
和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的神经网络(如本技术中的transformer网络);并且,本技术实施例提供的图像分类方法可以运用上述训练好的神经网络,将输入数据(如本技术中的目标图像)输入到所述训练好的神经网络中,得到输出数据(如本技术中目标图像的分类结果等等)。需要说明的是,本技术实施例提供的模型训练方法和图像分类方法是基于同一个构思产生的发明,也可以理解为一个系统中的两个部分,或一个整体流程的两个阶段:如模型训练阶段和模型应用阶段。
[0161]
图4为本技术实施例提供的图像分类方法的一个流程示意图,如图4所示,该方法可通过终端设备实现,例如,用户直接使用终端设备对目标图像进行图像分类,从而得到目标图像的分类结果。终端设备可以为增强现实(augmented reality,ar)场景或虚拟现实(virtual reality,vr)场景中的穿戴式设备(例如,智能眼镜、智能手环、智能头盔等),也可以是飞行场景中的无人机,也可以是人工驾驶场景或自动驾驶场景中车辆上的车载设备(例如,远程信息处理器(telematics box,t-box)等)等等。终端设备设置有具备加法电路的部件,该部件可以为常见的各类处理器(例如,cpu、gpu、npu、tpu等等),也可以是存储器和网络接口控制器(network interface controller,nic),也可以是卸载卡(卸载卡可通过多种形式实现,例如,卸载卡可为专用集成电路(application specific integrated circuit,asic)芯片,又如,卸载可为现场可编程逻辑门阵列(field programmable gate array,fpga)+arm芯片的组合等)等等。此外,该方法还可通过包含终端设备和云服务器的云服务系统实现,例如,当用户需要对目标图像进行分类时,可使用终端设备向远端的云服务器发送图像分类请求,该请求包含目标图像,故云服务器可基于图像分类请求对目标图像进行图像分类,并将得到的目标图像的分类结果反馈至终端设备,以供用户使用。为了方便说明,下文均以终端设备实现该方法进行介绍。该方法包括:
[0162]
401、获取目标图像。
[0163]
本实施例中,用户可向终端设备下发拍摄指令,以使得终端设备基于拍摄指令实现图像拍摄功能。终端设备通过摄像头获取目标图像后,可在显示屏上将目标图像呈现给用户观看。为了确定目标图像的类别,即目标图像所呈现的至少一个物体的类别,用户可再向终端设备下发图像分类指令,以使得终端设备基于图像分类指令对目标图像进行图像分类处理。
[0164]
例如,用户使用手机对着某一棵树木拍摄了一张图像,若用户想确认该树木的类别,用户可向手机下发一个图像分类指令,以使得手机对呈现树木的该图像进行图像分类处理。
[0165]
402、通过transformer网络对目标图像进行处理,得到目标图像的分类结果,transformer网络包含自注意力模块,自注意力模块计算目标图像的注意力特征的操作由加法电路实现。
[0166]
终端设备接收到图像分类指令后,可确定需要对目标指令进行图像分类处理。具体地,终端设备部署有transformer网络,故终端设备可通过transformer网络对目标图像进行处理,以得到目标图像的分类结果。其中,transformer网络包含自注意力模块,自注意力模块计算目标图像的注意力特征的操作可由终端设备内的加法电路实现,自注意力模块计算得到的注意力特征用于确定目标图像的分类结果。进一步地,自注意力模块的线性变换操作也可由加法电路实现,自注意力模块执行线性变换所得到的结果用于计算注意力特
征。
[0167]
关于transformer网络的结构可参考后续图7所示实施例中的相关说明部分,关于自注意力模块计算目标图像的注意力特征的操作以及线性变换操作,可参考后续图6所示实施例中步骤602至步骤603的相关说明部分,此处先不展开。
[0168]
依旧如上述例子,手机在对呈现树木的该图像进行处理的过程中,可通过transformer网络对该图像实现一系列的加法运算(基于手机内部的加法电路实现),从而得到该图像的注意力特征,再基于该图像的注意力特征获取该图像的分类结果,如该图像所呈现的树木为杨树等等。
[0169]
403、显示目标图像的分类结果。
[0170]
终端设备得到目标图像的分类结果(即目标图像所呈现的至少一个物体所属的类别)后,可在显示屏上显示该分类结果,以供用户观看和使用。
[0171]
依旧如上述例子,得到该图像的分类结果后,手机可在显示屏上显示该图像所呈现的树木的类别为杨树,如此一来,用户可基于手机显示的图像的分类结果确认其拍摄的对象为杨树。
[0172]
本技术实施例中,transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
[0173]
为了进一步了解transformer网络获取注意力特征的过程,下文结合图5做进一步的介绍。图5为本技术实施例提供的图像分类方法的另一流程示意图,如图5所示,该方法应用于终端设备,终端设备包含transformer网络,该transformer网络包括自注意力模块,该方法包括:
[0174]
501、获取目标图像;
[0175]
本实施例中,用户可向终端设备下发拍摄指令,以使得终端设备基于拍摄指令实现图像拍摄功能。终端设备通过摄像头获取目标图像后,可在显示屏上将目标图像呈现给用户观看。为了确定目标图像的类别,即目标图像所呈现的至少一个物体的类别,用户可再向终端设备下发图像分类指令,以使得终端设备基于图像分类指令对目标图像进行图像分类处理。
[0176]
例如,用户使用手机对着某一棵树木拍摄了一张图像,若用户想确认该树木的类别,用户可向手机下发一个图像分类指令,以使得手机对呈现树木的该图像进行图像分类处理。
[0177]
502、显示目标图像的分类结果,目标图像的分类结果为基于将目标图像输入自注意力模块得到的第二特征和第三特征之间的距离确定的,第二特征为q特征,第三特征为k特征。
[0178]
终端设备接收到图像分类指令后,可确定需要对目标指令进行图像分类处理。具体地,终端设备部署有transformer网络,故终端设备可通过transformer网络对目标图像进行处理,以得到目标图像的分类结果。其中,transformer网络为基于自注意力机制构建的神经网络模型,故transformer网络可对目标图像进行由加法运算构建的线性变换处理,从而得到目标图像的q特征、k特征和v特征。然后,transformer网络基于加法运算计算q特征和k特征之间的距离,从而得到目标图像的注意力特征。随后,transformer网络基于加法
运算对目标图像的注意力特征和目标图像的v特征进行融合处理,并基于融合处理得到的结果获取目标图像的分类结果。进一步地,q特征和k特征之间的距离可以为一阶距离(l1距离)或者二阶距离(l2距离)。
[0179]
关于transformer网络的结构可参考图5所示实施例中的相关说明部分,关于自注意力模块获取目标图像的q特征、k特征和v特征的过程、计算q特征和k特征之间的距离的过程、根据该距离获取注意力特征的过程以及根据注意力特征和v特征获取目标图像的分类结果的过程,可参考图6所示实施例中步骤602至步骤605的相关说明部分,此处不再赘述。
[0180]
终端设备得到目标图像的分类结果(即目标图像所呈现的至少一个物体所属的类别)后,可在显示屏上显示该分类结果,以供用户观看和使用。
[0181]
依旧如上述例子,手机在对呈现树木的该图像进行处理的过程中,可通过transformer网络对该图像进行由加法运算构建的线性变换处理,得到该图像的q特征、k特征和v特征,再基于加法运算计算q特征与k特征之间的距离,得到该图像的注意力特征,接着再基于加法运算对该图像的注意力特征和v特征进行融合处理,并基于融合后的结果获取该图像的分类结果,如该图像所呈现的树木为杨树等等。
[0182]
得到该图像的分类结果后,手机可在显示屏上显示该图像所呈现的树木的类别为杨树,如此一来,用户可基于手机显示的图像的分类结果确认其拍摄的对象为杨树。
[0183]
本技术实施例中,在图像分类的过程中,transformer网络可通过计算q特征和k特征之间的距离,以得到目标图像的注意力特征。由于q特征和k特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
[0184]
为了更进一步了解transformer网络的工作流程,下文将结合图6和图7,对本技术提供的图像分类方法以及transformer网络进行具体介绍。图6为本技术实施例提供的图像分类方法的另一流程示意图,该方法可利用transformer网络对目标图像进行处理,从而确定目标图像的类别,即目标图像所呈现的物体所属的类别。其中,transformer网络的结构如图7所示(图7为本技术实施例提供的transformer网络的一个结构示意图),transformer网络可包含特征提取网络、自注意力网络和分类网络,自注意力网络的输入端和特征提取网络的输出端连接,自注意力网络的输出端和分类网络的输入端连接,其中,自注意力网络可包含多头自注意力(multi-head self attention)模块、第一融合模块、前馈模块以及第二融合模块,多头自注意力模块的输出端和第一融合模块的第一输入端连接,多头自注意力模块的输入端和第一融合模块的第二输入端连接,第一融合模块的输出端和前馈模块的输入端连接,前馈模块的输出端和第二融合模块的第一输入端连接,前馈模块的输入端和第二融合模块的第二输入端连接。该方法包括:
[0185]
601、获取目标图像的m个第一特征,m≥1。
[0186]
本实施例中,当需要确定目标图像的类别时,可将目标图像输入至transformer网络。具体地,transformer网络的特征提取网络接收到目标图像后,特征提取网络可先将目标图像划分为n个子图像,这n个子图像的尺寸相同。接着,特征提取网络将n个子图像处理(例如,拉伸处理以及编码处理等等)成n个向量,每个向量包含d个元素(即每个向量可视为一个d维的向量)。然后,特征提取网络可对n个向量进行拼接处理,得到一个n
×
d的矩阵,即
目标图像的原始特征x,x∈rn×d。
[0187]
得到目标图像的原始特征x后,特征提取网络可将原始特征x输入至自注意力网络的多头自注意力模块。多头自注意力模块可包含归一化单元、特征获取单元、拼接单元、第二线性变换单元和并行的m个自注意力模块,归一化单元的输出端和特征获取单元的输入端连接,特征获取单元的输出端和m个自注意力模块的输入端连接,m个自注意力模块的输出端和拼接单元的输入端连接,拼接单元的输出端和第二线性变换单元的输入端连接,m为大于或等于1的整数。
[0188]
多头自注意力模块的归一化单元接收到原始特征x后,归一化单元可先对原始特征x进行归一化处理,得到归一化后的原始特征x

。可以理解的是,归一化处理可改变原始特征x中各个元素的取值,从而避免特征中元素的数值过大,导致运算过程占用过多计算资源的情况出现。
[0189]
得到归一化后的原始特征x

后,归一化单元可将归一化后的原始特征x

输入至多头自注意力模块中的特征获取单元。特征获取单元接收到归一化后的原始特征x

后,可将其划分为m个第一特征z,z∈rn×
d/m
(即每个第一特征z均可视为一个n
×
(d/m)的矩阵)。得到m个第一特征z后,特征获取单元可将每个第一特征z输入至对应的自注意力模块中,例如,特征获取单元可将第1个第一特征z1输入至第1个自注意力模块,将第2个第一特征z2输入至第2个自注意力模块,

,将第m个第一特征zm输入至第m个自注意力模块。
[0190]
602、根据第k个第一特征进行线性变换处理,得到第k个第二特征、第k个第三特征和第k个第四特征,k=1,

,m。
[0191]
在m个自注意力模块中,不同自注意力模块的内部结构是相同的,为了方便说明,下文均以m个自注意力模块中的第k个自注意力模块进行介绍。如图8所示(图8为本技术实施例提供的多头自注意力模块的一个结构示意图),第k个自注意力模块中可包含第一线性变换单元、计算单元、融合单元和归一化单元,线性变换单元的第一输出端、第二输出端和计算单元的输入端连接,线性变换单元的第三输出端和融合单元的第一输入端连接,计算单元的输出端和融合单元的第二输入端连接,融合单元的输出端和归一化单元的输入端连接。
[0192]
第k个自注意力模块的第一线性变换单元接收到第k个第一特征zk后,第一线性变换单元可对第k个第一特征zk进行线性变换处理,得到第k个第二特征qk、第k个第三特征kk和第k个第四特征vk。具体地,第一线性变换单元中设置有第一权重矩阵wq、第二权重矩阵wk和第三权重矩阵wv,wq,wk,那么,第一线性变换单元可使用第一权重矩阵wq对第k个第一特征zk进行由加法运算构建的线性变换处理,得到第k个第二特征qk,使用第二权重矩阵wk对第k个第一特征zk进行由加法运算构建的线性变换处理,得到第k个第三特征kk,并使用第三权重矩阵wv对第k个第一特征zk进行由加法运算构建的线性变换处理,得到第k个第四特征vk。
[0193]
第一线性变换单元可通过以下公式,实现由加法运算构建的线性变换处理:
[0194]
[0195][0196][0197]
上式中,对于第k个第二特征qk而言,q
k,a,b
为第k个第二特征qk中第a行第b列的元素,z
k,a,u
为第k个第一特征zk的第a个行向量的第u个元素,w
q,u,b
为第一权重矩阵wq的第b个列向量的第u个元素,其中,a=1,

,n,b=1,

,d/m,u=1,

,d/m。可见,如图9所示(图9为本技术实施例提供的由加法运算构建的线性变换处理的一个示意图),第一线性变换单元对第k个第二特征qk的第a个行向量和第一权重矩阵wq的第b个列向量进行相减处理,再将相减处理得到的中间向量的所有元素进行取绝对值处理,接着将取绝对值后的中间向量的所有元素进行取负值处理,然后将取负值后的中间向量的所有元素进行相加处理,并将相加处理得到的结果作为第k个第二特征qk中第a行第b列的元素。由于a=1,

,n,b=1,

,d/m,说明前述过程会进行n
×
(d/m)次,故可得到第k个第二特征qk,qk∈rn×
d/m
(即第k个第二特征qk可视为一个n
×
(d/m)的矩阵)。
[0198]
对于第k个第三特征kk以及第k个第四特征vk的介绍,也可参考第k个第二特征qk的相关说明部分,此处不再赘述。
[0199]
第一线性变换单元得到第k个第二特征qk、第k个第三特征kk以及第k个第四特征vk后,可将第k个第二特征qk以及第k个第三特征kk发送至计算单元,将第k个第四特征vk发送至融合单元。
[0200]
应理解,本实施例中,第二特征可视为自注意力机制中的q(query)特征,第三特征可视为自注意力机制中的k(key)特征,第四特征可视为自注意力机制中的v(value)特征。
[0201]
603、计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征。
[0202]
第k个自注意力模块的计算单元接收到第k个第二特征qk、第k个第三特征kk后,可计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征a
′k。具体地,第k个第二特征qk和第k个第三特征kk之间的距离既可以是一阶距离(l1距离),也可以是二阶距离(l2距离),为了方便说明,下文均以一阶距离进行介绍。计算单元可通过以下公式计算两个特征之间的距离:
[0203][0204][0205]
[0206][0207]
上式中,a

k,j,i
为第k个第五特征中第j行第i列的元素,a
k,j,i
为第k个第七特征中第j行第i列的元素,q
k,j,t
为第k个第二特征qk的第j个行向量的第t个元素,k
k,i,t
为第k个第二特征kk的第i个行向量的第t个元素,da为缩放处理(即scale处理)所使用的值,de为预设值,为softmax函数型的归一化处理(即softmax处理),其中,j=1,

,n,i=1,

,n,t=1,

,d/m。可见,计算单元对第k个第二特征qk的第j个行向量和第k个第三特征kk的第i个行向量进行相减处理,再将相减处理得到的中间向量的所有元素进行相加处理,接着将相加处理的结果作为第k个第七特征ak中第j行第i列的元素。然后,计算单元对第k个第七特征ak中第j行第i列的元素进行缩放处理以及归一化处理,得到第k个第五特征a
′k中第j行第i列的元素。由于j=1,

,n,i=1,

,n,说明前述过程会进行n
×
n次,故可得到第k个第五特征a
′k,a
′k∈rn×n(即第k个第五特征a
′k可视为一个n
×
n的矩阵)。
[0208]
值得注意的是,在相关技术中,是通过大量的乘法运算来计算出第五特征,而基于公式(3)可知,本实施例则是通过大量的加法运算来计算出第五特征。在实际应用中,通过对相关技术所得到的第五特征和本实施例所得到的第五特征进行谱分解,再对得到的奇异值进行归一化处理,然后对归一化后的奇异值进行累加处理,由于奇异值的分布代表矩阵中主要信息的分布,即归一化奇异值达到90%的奇异值索引代表矩阵的主要信息的分布位置,可认为是矩阵的秩。那么,对相关技术所得到的第五特征和本实施例所得到的第五特征的观测数据如图10所示(图10为本技术实施例提供的观测数据的一个示意图),当累加奇异值达到90%时,相关技术所得到的第五特征的奇异值索引在65左右,而本实施例所得到的第五特征的奇异值索引在25左右,即相关技术所得到的第五特征的秩比本实施例所得到的第五特征的秩高60左右,会影响transformer模型的性能。
[0209]
为了解决该问题,计算单元可对第k个第五特征a
′k进行优化,即令第k个第五特征a
′k加上一个单位矩阵,得到优化后的第k个第五特征a
″k。基于图10可知,第五特征被优化后,在累加奇异值达到90%时,优化后的第五特征的奇异值索引在70左右,解决了特征的低秩问题,可改善transformer模型的性能。
[0210]
计算单元得到优化后的第k个第五特征a
″k,可将优化后的第k个第五特征a
″k发送至融合单元。
[0211]
应理解,de的大小可根据实际需求进行设置,一般地,其大小按一定的标准进行设置,例如,de可使得第二特征的方差量级、第三特征的方差量级和第五特征的方差量级保持一致等等。
[0212]
还应理解,本实施例中,第五特征可视为自注意力机制中的注意力(attention)特征,即a特征。
[0213]
604、根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征。
[0214]
第k个自注意力模块的融合单元接收到优化后的第k个第五特征a
″k和第k个第四特征vk后,融合单元可对优化后的第k个第五特征a
″k和第k个第四特征vk进行第一融合处
理,得到第k个第六特征ok。具体地,融合单元可通过以下公式实现第一融合处理:
[0215][0216]
上式中,o
k,y,x
为第k个第六特征中第y行第x列的元素,v
k,v,x
为第k个第四特征vk的第x个列向量的第v个元素,a

k,y,v
为第k个第五特征a
″k的第y个行向量的第v个元素,sgn(v
k,v,x
)为第k个第四特征vk的第x个列向量的第v个元素的符号(即正负号),其中,x=1,

,d/m,y=1,

,n。可见,融合单元对第k个第四特征vk的第x个列向量进行取绝对值处理,得到第k个第四特征vk的取绝对值后的第x个列向量。接着,融合单元对第k个第四特征vk的取绝对值后的第x个列向量和第k个第五特征a

k,y,v
的第y个行向量进行相加处理,再将相加处理的中间向量中各个元素的符号设置得与第k个第四特征vk的第x个列向量中相应元素的符号相同,然后将设置符号后的中间向量的所有元素进行相加处理,并将相加处理的结果作为第k个第六特征ok中第y行第x列的元素。由于x=1,

,d/m,y=1,

n,说明前述过程会进行n
×
(d/m)次,故可得到第k个第六特征ok,ok∈rn×
r/m
(即第k个第六特征ok可视为一个n
×
(d/m)的矩阵)。
[0217]
融合单元得到第k个第六特征ok,可将第k个第六特征ok发送至归一化单元,以使得归一化单元对第k个第六特征ok进行归一化处理,得到归一化后的第k个第六特征o
′k并将归一化后的第k个第六特征o
′k发送至拼接单元。
[0218]
需要说明的是,其余注意力模块也会执行如同第k个注意力模块所实现的步骤,因此,m个注意力模块中的每个注意力模块均可得到一个归一化后的第六特征o

,并发送至拼接单元。
[0219]
应理解,本实施例中,不同注意力模块的第一线性变换单元中均设置有三个权重矩阵,但是不同注意力模块中的权重矩阵既可以是完全相同的,也可以是完全不同的,还可以是部分相同的,此处不做限制。
[0220]
605、根据m个第六特征,获取目标图像的分类结果。
[0221]
拼接单元得到m个归一化后的第六特征o

后,可对m个归一化后的第六特征o

进行拼接处理,得到目标图像的第八特征oh。具体地,拼接单元可通过以下公式实现拼接处理:
[0222]
oh=concat(o
′1,o
′2,

,o
′m)(5)
[0223]
上式中,o
′1为归一化后的第1个第六特征,o
′2为归一化后的第2个第六特征,o
′m为归一化后的第m个第六特征。由于每个归一化后的第六特征o

均为n
×
(d/m)的矩阵,那么,基于m个归一化后的第六特征o

拼接得到的第八特征oh为n
×
d的矩阵。
[0224]
得到第八特征oh后,拼接单元将第八特征oh发送至第二线性变换单元,第二线性变换单元中设置有第四权重矩阵wh,wh∈rd×d。那么,第二线性单元可使用第四权重矩阵wh,对第八特征oh进行由加法运算构建的线性变换处理,得到线性变换后的第八特征o
′h。具体地,第二线性变换单元可通过以下公式,实现由加法运算构建的线性变换处理:
[0225][0226]
上式中,o

h,f,g
为线性变换后的第八特征中第f行第g列的元素,o
h,f,e
为第八特征oh的第f个行向量的第e个元素,w
h,e,g
为第四权重矩阵的第g个列向量的第e个元素,其中,f=1,

,n,g=1,

,d,e=1,

,d。可见,第二线性变换单元对第八特征oh的第f个行向量和第四权重矩阵wh的第g个列向量进行相减处理,再将相减处理得到的中间向量的所有元素进行取绝对值处理,接着将取绝对值后的中间向量的所有元素进行取负值处理,然后将取负值后的中间向量的所有元素进行相加处理,并将相加处理得到的结果作为线性变换后的第八特征o
′h中第f行第g列的元素。由于f=1,

,n,g=1,

,d,说明前述过程会进行n
×
d次,故可得到线性变换后的第八特征o
′h,o
′h∈rn×d(即线性变换后的第八特征o
′h可视为一个n
×
d的矩阵)。
[0227]
得到线性变换后的第八特征o
′h,第二线性变换单元可将线性变换后的第八特征o
′h输入至第一融合模块。第一融合模块接收到线性变换后的第八特征o
′h和目标图像的原始特征x后,可对线性变换后的第八特征o
′h和目标图像的原始特征x进行第二融合处理,并将融合后的结果(通常为一个n
×
d的矩阵)发送至前馈模块和第二融合模块。如图11所示(图11为本技术实施例提供的前馈模块的一个示意图),前馈模块包含三个归一化单元和两个第二线性变换单元,其中,归一化单元和第二线性变换单元交替连接。那么,前馈模块可对融合后的结果进行三次归一化和两次由加法运算构建的线性变换,得到前馈处理后的结果(通常为一个n
×
d的矩阵),并将该结果发送至第二融合模块。第二融合模块接收到来自第一融合模块的融合后的结果和来自前馈模块的前馈处理后的结果后,可对这两个结果进行第二融合处理,得到目标图像的第九特征o
″h,o
″h∈rn×d。
[0228]
值得注意的是,前述的第二融合处理可包含相加处理、相乘处理、相减处理、级联处理或级联卷积处理中的至少一个。
[0229]
得到目标图像的第九特征o
″h,可基于第九特征o
″h获取目标图像的分类结果。具体地,当transformer网络仅包含一层自注意力网络时,自注意力网络则直接将其得到的第九特征o
″h输入至分类网络,以使得分类网络对第九特征o
″h进行处理,得到目标图像的分类结果。当transformer网络包含多层自注意力网络时(如图7所示,transformer网络包含l层自注意力网络,l大于或等于2),第一层自注意力网络得到第九特征o
″h后,则会将第九特征o
″h输入至第二层自注意力网络,第二层自注意网络也会对第九特征o
″h执行如同第一层自注意网络实现的步骤(即步骤601至步骤605),直至最后一层自注意网络执行如同第一层自注意网络实现的步骤,最后一层自注意网络可将其得到的结果发送至分类网络处理,从而得到目标图像的分类结果(即目标图像的类别)。
[0230]
应理解,本实施例仅以前馈模块包含三个归一化单元和两个第二线性变换单元进行示意性介绍,并不对前馈模块中归一化单元的数量和第二线性变换单元的数量构成限制。
[0231]
还应理解,本实施例中,除了计算单元所实现的归一化处理为softmax处理,其余归一化单元所实现的归一化处理通常为层标准化(layer normalization)处理。
[0232]
还应理解,本实施例中,多头注意力模块中的第二线性变换单元和前馈模块中的第二线性变换单元所实现的操作是相同的,但二者所具有的权重矩阵既可以是相同的,也可以是不同的,此处不做限制。进一步地,若前馈模块包含多个第二线性变换单元,这多个第二线性变换单元的权重矩阵既可以是相同的,也可以是不同的,此处不做限制。
[0233]
此外,可将本技术实施例提供的transformer网络与相关技术的神经网络模型进
行比较。具体地,相关技术一的神经网络模型、相关技术二的神经网络模型以及本技术实施例提供的transformer网络的特征可视化结果分别如图12至图14所示(图12为相关技术一的神经网络模型的特征可视化结果的一个示意图,图13为相关技术二的神经网络模型的特征可视化结果的一个示意图,图14为本技术实施例提供的transformer网络的特征可视化结果的一个示意图),可见相关技术一的神经网络模型的各个类分布在不同的聚类中心上,相关技术二的神经网络模型的特征分布在一个椭圆上面,本技术实施例提供的transformer网络的特征既有相关技术一的神经网络模型的聚类分布的特点,也有相关技术二的神经网络模型的椭圆分布的特点。
[0234]
进一步地,还可将本技术实施例提供的三个transformer网络与相关技术的三个神经网络模型进行比较,其中,本技术实施例提供的transformer网络1、transformer网络2以及transformer网络3的自注意网络的层数不同(即三个transformer网络主要基于加法网络构建),相关技术提供的三个神经网络模型(分别称为神经网络模型1、神经网络模型2以及神经网络模型3)主要基于乘法网络构建,且具有不同的内部结构。将数据集一和数据集二输入至六个模型,模型所展现的实验结果如表1所示:
[0235]
表1
[0236][0237]
由表1可知,本技术实施例提供的transformer网络的功耗仅为相关技术提供的神经网络模型的功耗的1/3左右,且性能相当。
[0238]
本技术实施例中,在获取目标图像的m个第一特征后,transformer网络可根据第k个第一特征进行线性变换处理,得到第k个第二特征(即q特征)、第k个第三特征(即k特征)和第k个第四特征(即v特征),k=1,

,m。接着,transformer网络计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征(即注意力特征)。然后,transformer网络根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征。得到m个第六特征后,transformer网络可根据m个第六特征,获取目标图像的分类结果。前述过程中,由于第二特征和第三特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取第五特征(即注意力特征)的操作,不再包含大量的乘法运算,而是被计算开销较小的
加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
[0239]
更进一步地,transformer网络在得到注意力特征后,可通过优化注意力特征(即叠加一个单位矩阵),使得注意力特征中的主要信息的分布更加均衡,有利于提高transformer网络的性能。
[0240]
以上是对本技术实施例提供的图像分类方法所进行的详细说明,以下将对本技术实施例提供的模型训练进行介绍。图15为本技术实施例提供的模型训练方法的一个流程示意图,如图15所示,该方法包括:
[0241]
1501、获取待处理图像。
[0242]
在需要对待训练模型进行训练时,可获取一批训练样本,即用于训练的待处理图像。其中,待处理图像的真实分类结果(即待处理图像的真实类别)是已知的。
[0243]
1502、将待处理图像输入至待训练模型,得到待处理图像的预测分类结果。
[0244]
得到待处理图像后,可将待处理图像输入至待训练模型,以通过待训练模型实现以下步骤:获取待处理图像的m个第一特征,m≥1;根据第k个第一特征进行线性变换处理,得到第k个第二特征、第k个第三特征和第k个第四特征,k=1,

,m;计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征;根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征;根据m个第六特征,获取待处理图像的预测分类结果(即待处理图像的预测类别)。进一步地,m个第一特征的尺寸相同。
[0245]
在一种可能的实现方式中,待训练模型,用于:获取第一权重矩阵、第二权重矩阵和第三权重矩阵;使用第一权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第二特征;使用第二权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第三特征;使用第三权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第四特征。
[0246]
在一种可能的实现方式中,待训练模型,用于基于加法运算计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征。
[0247]
在一种可能的实现方式中,第k个第二特征包含n个行向量,第k个第三特征包含n个行向量,待训练模型,用于:对第k个第二特征的第j个行向量和第k个第三特征的第i个行向量进行相减处理,得到第p个第一中间向量,j=1,

,n,i=1,

,n,p=1,

,n
×
n;对第p个第一中间向量的所有元素进行相加处理,得到第k个第七特征中第j行第i列的元素;对第k个第七特征进行缩放处理以及归一化处理,得到第k个第五特征。
[0248]
在一种可能的实现方式中,待训练模型,用于基于加法运算对第k个第五特征的元素和第k个第四特征的元素进行处理,得到第k个第六特征。
[0249]
在一种可能的实现方式中,第k个第四特征包含n
×
d/m个元素,待训练模型,用于:对第k个第四特征的第x个列向量进行取绝对值处理,得到第k个第四特征的取绝对值后的第x个列向量;对取绝对值后的第x个列向量和第k个第五特征的第y个行向量进行相加处理,得到第q个第二中间向量,x=1,

,d/m,y=1,

,n,h=1,

,n
×
d/m;将第q个第二中间向量的符号设置得与第x个列向量的符号相同,得到设置符号后的第q个第二中间向量;对设置符号后的第q个第二中间向量的所有元素进行相加处理,得到第k个第六特征中第y行第x列的元素。
[0250]
在一种可能的实现方式中,待训练模型,用于:对m个第六特征进行拼接处理,得到
待处理图像的第八特征;根据m个第一特征和第八特征进行第二融合处理、由加法运算构建的线性变换处理以及归一化处理,得到待处理图像的第九特征;根据第九特征,获取待处理图像的分类结果。进一步地,第二融合处理包含相加处理、相乘处理、相减处理、级联处理或级联卷积处理中的至少一个。
[0251]
在一种可能的实现方式中,待训练模型,还用于:将第k个第五特征于预置的单位矩阵进行相加处理,得到优化后的第k个第五特征。
[0252]
关于待训练模型获取第一特征、第二特征、第三特征、第四特征、第五特征以及第六特征的过程,可参考前述图6所示实施例中步骤601至步骤604的相关说明部分,此处不再赘述。关于待训练模型根据第六特征获取待处理图像的分类结果的过程,可参考前述图6所示实施例中步骤605的相关说明部分,此处不再赘述。
[0253]
1503、根据预测分类结果和待处理图像的真实分类结果,获取目标损失,目标损失用于指示预测分类结果和真实分类结果之间的差异。
[0254]
得到待处理图像的预测分类结果后,可通过预置的目标损失函数对待处理图像的预测分类结果以及待处理图像的真实分类结果进行计算,以得到目标损失,目标损失用于指示预测分类结果和真实分类结果之间的差异。
[0255]
1504、根据目标损失对待训练模型的模型参数进行更新,直至满足模型训练条件,得到transformer网络。
[0256]
得到目标损失后,可基于目标损失对待训练模型的模型参数进行更新,并利用下一批训练样本对更新参数后的待训练模型进行训练(即重新执行步骤1502至步骤1504),直至满足模型训练条件(例如,目标损失达到收敛等等),可得到transformer网络。
[0257]
本技术实施例训练得到的transformer网络,具备利用对待分类的目标图像进行分类的能力。在图像分类的过程中,transformer网络可通过计算q特征和k特征之间的距离,以得到目标图像的注意力特征。由于q特征和k特征之间的距离的计算可通过大量的加法运算实现,故transformer网络获取注意力特征的操作,不再包含大量的乘法运算,而是被计算开销较小的加法运算所代替,可使得transformer网络广泛应用在算力有限的终端设备上。
[0258]
以上是对本技术实施例提供的方法所进行的详细说明,以下将对本技术实施例提供的图像分类装置和模型训练装置分别进行介绍。图16为本技术实施例提供的图像分类装置的一个结构示意图。如图16所示,该装置包括:
[0259]
第一获取模块1601,用于获取目标图像的m个第一特征,m≥1;
[0260]
第一处理模块1602,用于根据第k个第一特征进行线性变换处理,得到第k个第二特征、第k个第三特征和第k个第四特征,k=1,

,m;
[0261]
第二处理模块1603,用于计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征;
[0262]
第三处理模块1604,用于根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征;
[0263]
第二获取模块1605,用于根据m个第六特征,获取目标图像的分类结果。
[0264]
在一种可能的实现方式中,第二处理模块1603,用于基于加法运算计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征。
[0265]
在一种可能的实现方式中,第k个第二特征包含n个行向量,第k个第三特征包含n个行向量,第二处理模块1603,用于:对第k个第二特征的第j个行向量和第k个第三特征的第i个行向量进行相减处理,得到第p个第一中间向量,j=1,

,n,i=1,

,n,p=1,

,n
×
n;对第p个第一中间向量的所有元素进行相加处理,得到第k个第七特征中第j行第i列的元素;对第k个第七特征进行缩放处理以及归一化处理,得到第k个第五特征。
[0266]
在一种可能的实现方式中,第三处理模块1604,用于基于加法运算对第k个第五特征的元素和第k个第四特征的元素进行处理,得到第k个第六特征。
[0267]
在一种可能的实现方式中,第k个第四特征包含n
×
d/m个元素,第三处理模块1604,用于:对第k个第四特征的第x个列向量进行取绝对值处理,得到第k个第四特征的取绝对值后的第x个列向量;对取绝对值后的第x个列向量和第k个第五特征的第y个行向量进行相加处理,得到第q个第二中间向量,x=1,

,d/m,y=1,

,n,h=1,

,n
×
d/m;将第q个第二中间向量的符号设置得与第x个列向量的符号相同,得到设置符号后的第q个第二中间向量;对设置符号后的第q个第二中间向量的所有元素进行相加处理,得到第k个第六特征中第y行第x列的元素。
[0268]
在一种可能的实现方式中,第一处理模块1602,用于:获取第一权重矩阵、第二权重矩阵和第三权重矩阵;使用第一权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第二特征;使用第二权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第三特征;使用第三权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第四特征。
[0269]
在一种可能的实现方式中,第二获取模块1605,用于:对m个第六特征进行拼接处理,得到目标图像的第八特征;根据m个第一特征和第八特征进行第二融合处理、由加法运算构建的线性变换处理以及归一化处理,得到目标图像的第九特征;根据第九特征,获取目标图像的分类结果。
[0270]
在一种可能的实现方式中,第二处理模块1603,还用于将第k个第五特征于预置的单位矩阵进行相加处理,得到优化后的第k个第五特征。
[0271]
在一种可能的实现方式中,第二融合处理包含相加处理、相乘处理、相减处理、级联处理或级联卷积处理中的至少一个。
[0272]
在一种可能的实现方式中,m个第一特征的尺寸相同。
[0273]
图17为本技术实施例提供的模型训练装置的一个结构示意图。如图17所示,该装置包括:
[0274]
第一获取模块1701,用于获取待处理图像;
[0275]
处理模块1702,用于将待处理图像输入至待训练模型,得到待处理图像的预测分类结果,待训练模型用于:获取待处理图像的m个第一特征,m≥1;根据第k个第一特征进行线性变换处理,得到第k个第二特征、第k个第三特征和第k个第四特征,k=1,

,m;计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征;根据第k个第五特征和第k个第四特征进行第一融合处理,得到第k个第六特征;根据m个第六特征,获取待处理图像的预测分类结果;
[0276]
第二获取模块1703,用于根据预测分类结果和待处理图像的真实分类结果,获取目标损失,目标损失用于指示预测分类结果和真实分类结果之间的差异;
[0277]
更新模块1704,用于根据目标损失对待训练模型的模型参数进行更新,直至满足模型训练条件,得到transformer网络。需要说明的是,第二获取模块和更新模块构成前述的训练模块。
[0278]
在一种可能的实现方式中,待训练模型,用于基于加法运算计算第k个第二特征和第k个第三特征之间的距离,得到第k个第五特征。
[0279]
在一种可能的实现方式中,第k个第二特征包含n个行向量,第k个第三特征包含n个行向量,待训练模型,用于:对第k个第二特征的第j个行向量和第k个第三特征的第i个行向量进行相减处理,得到第p个第一中间向量,j=1,

,n,i=1,

,n,p=1,

,n
×
n;对第p个第一中间向量的所有元素进行相加处理,得到第k个第七特征中第j行第i列的元素;对第k个第七特征进行缩放处理以及归一化处理,得到第k个第五特征。
[0280]
在一种可能的实现方式中,待训练模型,用于基于加法运算对第k个第五特征的元素和第k个第四特征的元素进行处理,得到第k个第六特征。
[0281]
在一种可能的实现方式中,第k个第四特征包含n
×
d/m个元素,待训练模型,用于:对第k个第四特征的第x个列向量进行取绝对值处理,得到第k个第四特征的取绝对值后的第x个列向量;对取绝对值后的第x个列向量和第k个第五特征的第y个行向量进行相加处理,得到第q个第二中间向量,x=1,

,d/m,y=1,

,n,h=1,

,n
×
d/m;将第q个第二中间向量的符号设置得与第x个列向量的符号相同,得到设置符号后的第q个第二中间向量;对设置符号后的第q个第二中间向量的所有元素进行相加处理,得到第k个第六特征中第y行第x列的元素。
[0282]
在一种可能的实现方式中,待训练模型,用于:获取第一权重矩阵、第二权重矩阵和第三权重矩阵;使用第一权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第二特征;使用第二权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第三特征;使用第三权重矩阵对第k个第一特征进行由加法运算构建的线性变换处理,得到第k个第四特征。
[0283]
在一种可能的实现方式中,待训练模型,用于:对m个第六特征进行拼接处理,得到待处理图像的第八特征;根据m个第一特征和第八特征进行第二融合处理、由加法运算构建的线性变换处理以及归一化处理,得到待处理图像的第九特征;根据第九特征,获取待处理图像的分类结果。
[0284]
在一种可能的实现方式中,待训练模型,还用于将第k个第五特征于预置的单位矩阵进行相加处理,得到优化后的第k个第五特征。
[0285]
在一种可能的实现方式中,第二融合处理包含相加处理、相乘处理、相减处理、级联处理或级联卷积处理中的至少一个。
[0286]
在一种可能的实现方式中,m个第一特征的尺寸相同。
[0287]
图18为本技术实施例提供的图像分类装置的另一结构示意图,如图18所示,该装置部署于终端设备,终端设备包括transformer网络,transformer网络包括自注意力模块,该装置包括:
[0288]
获取模块1801,用于获取目标图像;
[0289]
显示模块1802,用于显示目标图像的分类结果,目标图像的分类结果为基于将目标图像输入自注意力模块得到的第二特征和第三特征之间的距离确定的,第二特征为q特
征,第三特征为k特征。
[0290]
在一种可能的实现方式中,该距离为一阶距离或者二阶距离。
[0291]
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其带来的技术效果与本技术方法实施例相同,具体内容可参考本技术实施例前述所示的方法实施例中的叙述,此处不再赘述。
[0292]
本技术实施例还涉及一种执行设备,图19为本技术实施例提供的执行设备的一个结构示意图。如图19所示,执行设备1900具体可以表现为手机、平板、笔记本电脑、智能穿戴设备、服务器等,此处不做限定。其中,执行设备1900上可部署有图16或图18对应实施例中所描述的图像分类装置,用于实现图4、图5或图6对应实施例中图像分类的功能。具体的,执行设备1900包括:接收器1901、发射器1902、处理器1903和存储器1904(其中执行设备1900中的处理器1903的数量可以一个或多个,图19中以一个处理器为例),其中,处理器1903可以包括应用处理器19031和通信处理器19032。在本技术的一些实施例中,接收器1901、发射器1902、处理器1903和存储器1904可通过总线或其它方式连接。
[0293]
存储器1904可以包括只读存储器和随机存取存储器,并向处理器1903提供指令和数据。存储器1904的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,nvram)。存储器1904存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
[0294]
处理器1903控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
[0295]
上述本技术实施例揭示的方法可以应用于处理器1903中,或者由处理器1903实现。处理器1903可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1903中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1903可以是通用处理器、数字信号处理器(digital signal processing,dsp)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1903可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1904,处理器1903读取存储器1904中的信息,结合其硬件完成上述方法的步骤。
[0296]
接收器1901可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1902可用于通过第一接口输出数字或字符信息;发射器1902还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1902还可以包括显示屏等显示设备。
[0297]
本技术实施例中,在一种情况下,处理器1903,用于通过图4、图5或图6对应实施例
中的transformer网络,对图像进行图像分类。
[0298]
本技术实施例还涉及一种训练设备,图20为本技术实施例提供的训练设备的一个结构示意图。如图20所示,训练设备2000由一个或多个服务器实现,训练设备2000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)2014(例如,一个或一个以上处理器)和存储器2032,一个或一个以上存储应用程序2042或数据2044的存储介质2030(例如一个或一个以上海量存储设备)。其中,存储器2032和存储介质2030可以是短暂存储或持久存储。存储在存储介质2030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器2014可以设置为与存储介质2030通信,在训练设备2000上执行存储介质2030中的一系列指令操作。
[0299]
训练设备2000还可以包括一个或一个以上电源2026,一个或一个以上有线或无线网络接口2050,一个或一个以上输入输出接口2058;或,一个或一个以上操作系统2041,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0300]
具体的,训练设备可以执行图15对应实施例中的模型训练方法。
[0301]
本技术实施例还涉及一种计算机存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
[0302]
本技术实施例还涉及一种计算机程序产品,该计算机程序产品存储有指令,该指令在由计算机执行时使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
[0303]
本技术实施例提供的执行设备、训练设备或终端设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的数据处理方法,或者,以使训练设备内的芯片执行上述实施例描述的数据处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)等。
[0304]
具体的,请参阅图21,图21为本技术实施例提供的芯片的一个结构示意图,所述芯片可以表现为神经网络处理器npu 2100,npu 2100作为协处理器挂载到主cpu(host cpu)上,由host cpu分配任务。npu的核心部分为运算电路2103,通过控制器2104控制运算电路2103提取存储器中的矩阵数据并进行乘法运算。
[0305]
在一些实现中,运算电路2103内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路2103是二维脉动阵列。运算电路2103还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路2103是通用的矩阵处理器。
[0306]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器2102中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器2101中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器
(accumulator)2108中。
[0307]
统一存储器2106用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,dmac)2105,dmac被搬运到权重存储器2102中。输入数据也通过dmac被搬运到统一存储器2106中。
[0308]
biu为bus interface unit即,总线接口单元2113,用于axi总线与dmac和取指存储器(instruction fetch buffer,ifb)2109的交互。
[0309]
总线接口单元2113(bus interface unit,简称biu),用于取指存储器2109从外部存储器获取指令,还用于存储单元访问控制器2105从外部存储器获取输入矩阵a或者权重矩阵b的原数据。
[0310]
dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器2106或将权重数据搬运到权重存储器2102中或将输入数据数据搬运到输入存储器2101中。
[0311]
向量计算单元2107包括多个运算处理单元,在需要的情况下,对运算电路2103的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如batch normalization(批归一化),像素级求和,对预测标签平面进行上采样等。
[0312]
在一些实现中,向量计算单元2107能将经处理的输出的向量存储到统一存储器2106。例如,向量计算单元2107可以将线性函数;或,非线性函数应用到运算电路2103的输出,例如对卷积层提取的预测标签平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2107生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2103的激活输入,例如用于在神经网络中的后续层中的使用。
[0313]
控制器2104连接的取指存储器(instruction fetch buffer)2109,用于存储控制器2104使用的指令;
[0314]
统一存储器2106,输入存储器2101,权重存储器2102以及取指存储器2109均为on-chip存储器。外部存储器私有于该npu硬件架构。
[0315]
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或一个或多个用于控制上述程序执行的集成电路。
[0316]
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
[0317]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出
贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本技术各个实施例所述的方法。
[0318]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0319]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1