本發(fā)明涉及圖像識別領域,特別涉及一種卷積神經(jīng)網(wǎng)絡模型的訓練方法及裝置。
背景技術:
在圖像識別領域中,經(jīng)常會用到CNN(Convolutional Neural Network,卷積神經(jīng)網(wǎng)絡)模型來確定待識別圖像的類別。在通過CNN模型識別待識別圖像的類別之前,需要先訓練出CNN模型。
在訓練CNN模型時,通常通過如下方式實現(xiàn):首先,初始化待訓練CNN模型的模型參數(shù),該模型參數(shù)包括各個卷積層的初始卷積核、各個卷積層的初始偏置矩陣以及全連接層的初始權重矩陣和全連接層的初始偏置向量。接著,從預先選取的每個訓練圖像中,獲取固定高度和固定寬度的待處理區(qū)域,該固定高度和固定寬度與待訓練CNN模型預先設置的能夠處理的待識別圖像類別匹配。將每個訓練圖像對應的待處理區(qū)域輸入該待訓練CNN模型。然后,在各個卷積層上,使用各個卷積層的初始卷積核和初始偏置矩陣對每個待處理區(qū)域進行卷積操作和最大池化操作,得到每個待處理區(qū)域在各個卷積層上的特征圖像。接著,使用全連接層的初始權重矩陣和初始偏置向量對每個特征圖像進行處理,得到每個待處理區(qū)域的類別概率。然后,根據(jù)每個訓練圖像的初始類別及類別概率計算類別誤差。根據(jù)所有訓練圖像的類別誤差計算類別誤差平均值。接下來,使用該類別誤差平均值調(diào)整待訓練CNN的模型參數(shù)。然后,使用調(diào)整后的模型參數(shù)及各個訓練圖像,迭代上述各個步驟指定數(shù)值次;最后,將迭代次數(shù)達到指定數(shù)值次時所得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)相關技術至少存在以下問題:
由于在訓練CNN模型的過程中,需要從預先選取的訓練圖像中獲取固定高度和固定寬度的待處理區(qū)域,因此,訓練好的CNN模型僅能識別具有固定高度和固定寬度的圖像,導致訓練好的CNN模型在識別圖像時具有一定的局限性,導致適用范圍有限。
技術實現(xiàn)要素:
為了解決現(xiàn)有技術的問題,本發(fā)明實施例提供了一種CNN模型的訓練方法及裝置。所述技術方案如下:
第一方面,提供了一種CNN模型的訓練方法,所述方法包括:
獲取待訓練CNN模型的初始模型參數(shù),所述初始模型參數(shù)包括各級卷積層的初始卷積核、所述各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和所述全連接層的初始偏置向量;
獲取多個訓練圖像;
在所述各級卷積層上,使用所述各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在所述各級卷積層上的第一特征圖像;
對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像;
根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量;
根據(jù)所述初始權重矩陣和初始偏置向量對每個特征向量進行處理,得到每個訓練圖像的類別概率向量;
根據(jù)所述每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差;
基于所述類別誤差,對所述待訓練CNN模型的模型參數(shù)進行調(diào)整;
基于調(diào)整后的模型參數(shù)和所述多個訓練圖像,繼續(xù)進行模型參數(shù)調(diào)整的過程,直至迭代次數(shù)達到預設次數(shù);
將迭代次數(shù)達到預設次數(shù)時所得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
第二方面,提供了一種CNN模型的訓練裝置,所述裝置包括:
第一獲取模塊,用于獲取待訓練CNN模型的初始模型參數(shù),所述初始模型參數(shù)包括各級卷積層的初始卷積核、所述各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和所述全連接層的初始偏置向量;
第二獲取模塊,用于獲取多個訓練圖像;
特征提取模塊,用于在所述各級卷積層上,使用所述各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在所述各級卷積層上的第一特征圖像;
水平池化模塊,用于對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像;
第一確定模塊,用于根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量;
處理模塊,用于根據(jù)所述初始權重矩陣和初始偏置向量對每個特征向量進行處理,得到每個訓練圖像的類別概率向量;
計算模塊,用于根據(jù)所述每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差;
調(diào)整模塊,用于基于所述類別誤差,對所述待訓練CNN模型的模型參數(shù)進行調(diào)整;
迭代模塊,用于基于調(diào)整后的模型參數(shù)和所述多個訓練圖像,繼續(xù)進行模型參數(shù)調(diào)整的過程,直至迭代次數(shù)達到預設次數(shù);
第二確定模塊,用于將迭代次數(shù)達到預設次數(shù)時所得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
本發(fā)明實施例提供的技術方案帶來的有益效果是:
通過在各級卷積層上對訓練圖像進行卷積操作和最大池化操作后,進一步對最大池化操作后得到的特征圖像進行水平池化操作。由于在進行水平池化操作時,能夠進一步從特征圖像中提取出標識特征圖像水平方向特征的特征圖像,確保訓練好的CNN模型在識別圖像類別時,不受待識別圖像水平方向尺寸的顯示,從而能夠識別任意尺寸的待識別圖像,使得通過該種方式訓練好的CNN模型在識別圖像時的適用范圍比較廣泛。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一實施例提供的一種CNN模型的訓練方法流程圖;
圖2是本發(fā)明另一實施例提供的一種CNN模型的訓練方法流程圖;
圖3是本發(fā)明另一實施例提供的一種待訓練CNN模型的示意圖;
圖4是本發(fā)明另一實施例提供的一種水平池化操作的過程示意圖;
圖5是本發(fā)明另一實施例提供的一種CNN模型的訓練方法流程圖;
圖6是本發(fā)明另一實施例提供的一種CNN模型的訓練裝置結構示意圖;
圖7是本發(fā)明另一實施例提供的一種終端的結構示意圖;
圖8是本發(fā)明另一實施例提供的一種服務器的結構示意圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
圖1是本發(fā)明一實施例提供的一種CNN模型的訓練方法流程圖。如圖1所 示,本發(fā)明實施例提供的方法流程包括:
101:獲取待訓練CNN模型的初始模型參數(shù),其中,初始模型參數(shù)包括各級卷積層的初始卷積核、各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和全連接層的初始偏置向量。
102:獲取多個訓練圖像。
在另一個實施例中,獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
對于任一初始訓練圖像,保持初始訓練圖像的寬高比,將初始訓練圖像處理為具有指定高度的第一圖像;
將第一圖像處理為具有指定寬度的第二圖像,將具有指定高度和指定寬度的圖像作為初始訓練圖像對應的訓練圖像。
在另一個實施例中,將第一圖像處理為具有指定寬度的第二圖像,包括:
當?shù)谝粓D像的寬度小于指定寬度時,在第一圖像左右兩邊使用指定灰度值的像素進行均勻填充,直至第一圖像的寬度達到指定寬度時,得到第二圖像;
當?shù)谝粓D像的寬度大于指定寬度時,對第一圖像左右兩邊的像素進行均勻裁剪,直至第一圖像的寬度達到指定寬度時,得到第二圖像。
在另一個實施例中,獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
對于任一初始訓練圖像,保持初始訓練圖像的寬高比,將初始訓練圖像處理為具有指定高度的圖像,將指定高度對應的寬度作為每個初始訓練圖像的寬度。
在另一個實施例中,訓練圖像為自然場景下的圖像,自然場景下的圖像包括不同語種的字符,待訓練CNN模型為語種識別分類器。
103:在各級卷積層上,使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像。
在另一個實施例中,使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像,包括:
對于任一訓練圖像,將在上一級卷積層上的第一特征圖像輸入當前卷積層,使用當前卷積層上的初始卷積核和初始偏置矩陣,對上一級卷積層上的第一特征圖像進行卷積操作,得到當前卷積層上的卷積圖像,其中,如果當前卷積層為第一級卷積層,則上一級卷積層上的第一特征圖像為訓練圖像;
對當前卷積層上的卷積圖像進行最大池化操作,得到訓練圖像在當前卷積層上的第一特征圖像后,繼續(xù)將當前卷積層上的第一特征圖像傳輸至下一級卷積層,并在下一級卷積層進行卷積操作和最大池化操作,直至在最后一級卷積層進行卷積操作和最大池化操作,得到最后一層卷積層上的第一特征圖像為止。
104:對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像。
在另一個實施例中,對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像,包括:
對任一訓練圖像在任一級卷積層上的第一特征圖像,提取卷積層上的第一特征圖像中的每個圖像每行元素中的最大值,其中,第一特征圖像包括預設數(shù)值的圖像,預設數(shù)值與卷積層的卷積核及偏置矩陣的數(shù)量相同;
按照每個圖像的像素排列情況,將每個圖像所有行提取到的最大值排列成一個一維向量;
組合卷積層上的第一特征圖像中的所有圖像的一維向量,得到卷積層上的第二特征圖像。
105:根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量。
在另一個實施例中,根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量,包括:
對于任一訓練圖像,將訓練圖像在各級卷積層上的第二特征圖像中所有行的元素首尾相接,得到訓練圖像的特征向量。
106:根據(jù)初始權重矩陣和初始偏置向量對每個特征向量進行處理,得到每個訓練圖像的類別概率向量。
107:根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差。
在另一個實施例中,根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差,包括:
獲取每個訓練圖像的初始類別;
根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別通過如下公式計算每個訓練圖像的類別誤差:
Loss=-Lnylabel
式中,Loss表示每個訓練圖像的類別誤差,label表示每個訓練圖像的初始類別,yi表示每個訓練圖像的類別概率向量中的某一元素,ylabel表示初始類別對應的類別概率;
計算所有訓練圖像的類別誤差平均值,將類別誤差平均值作為類別誤差。
108:基于類別誤差,對待訓練CNN模型的模型參數(shù)進行調(diào)整。
109:基于調(diào)整后的模型參數(shù)和多個訓練圖像,繼續(xù)進行模型參數(shù)調(diào)整的過程,直至迭代次數(shù)達到預設次數(shù)。
110:將迭代次數(shù)達到預設次數(shù)時所得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
本發(fā)明實施例提供的方法,通過在各級卷積層上對訓練圖像進行卷積操作和最大池化操作后,進一步對最大池化操作后得到的特征圖像進行水平池化操作。由于在進行水平池化操作時,能夠進一步從特征圖像中提取出標識特征圖像水平方向特征的特征圖像,確保訓練好的CNN模型在識別圖像類別時,不受待識別圖像水平方向尺寸的顯示,從而能夠識別任意尺寸的待識別圖像,使得 通過該種方式訓練好的CNN模型在識別圖像時的適用范圍比較廣泛。
在另一個實施例中,待訓練CNN模型包括四級卷積層和兩個全連接層,各級卷積層分別包括相同或不同數(shù)量的卷積核和偏置矩陣;
對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像,包括:
對每個訓練圖像在第二級卷積層上的第一特征圖像、第三級卷積層上的第一特征圖像和第四級卷積層上的第一特征圖像分別進行水平池化操作,得到每個訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像;
根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量,包括:
對于任一訓練圖像,根據(jù)訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像,確定訓練圖像的特征向量。
上述所有可選技術方案,可以采用任意結合形成本發(fā)明的可選實施例,在此不再一一贅述。
結合圖1所對應實施例的內(nèi)容,圖2是本發(fā)明另一實施例提供的一種CNN模型的訓練方法流程圖。如圖2所示,本發(fā)明實施例提供的方法流程包括:
201:獲取待訓練CNN模型的初始模型參數(shù),其中,初始模型參數(shù)包括各級卷積層的初始卷積核、各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和全連接層的初始偏置向量。
具體地,訓練CNN模型的過程為確定待訓練CNN的模型參數(shù)的過程。在確定模型參數(shù)時,可以先給待訓練CNN模型初始化一個初始模型參數(shù),并在后續(xù)的訓練過程中,不斷優(yōu)化該初始模型參數(shù),并將優(yōu)化得到的最優(yōu)模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。因此,在訓練待訓練CNN模型時,需要先 獲取待訓練CNN模型的初始模型參數(shù)。
其中,待訓練CNN模型通常包括至少兩級卷積層和至少一級全連接層,且每級卷積層包括多個卷積核和多個偏置矩陣,每級全連接層包括多個權重矩陣和多個偏置向量。因此,獲取到的模型參數(shù)包括各級卷積層的初始卷積核、各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和全連接層的初始偏置向量。
關于待訓練CNN模型包括的卷積層的數(shù)量和全連接層的數(shù)量,本發(fā)明實施例不作具體限定。具體實施時,可以根據(jù)需要設定。例如,如圖3所示,其示出了一種待訓練CNN模型的示意圖。圖3所示的待訓練CNN模型包括四級卷積層和兩級全連接層。
進一步地,關于每級卷積層包括的卷積核和偏置矩陣的數(shù)量,以及每級全連接層包括的權重矩陣和偏置向量的數(shù)量,本發(fā)明實施例不作具體限定。另外,本發(fā)明實施例同樣不對每個卷積核和偏置矩陣的維度,以及每個權重矩陣和每個偏置向量的維度進行限定。具體實施時,每級卷積層包括的卷積核和偏置矩陣的數(shù)量及其維度,以及每級全連權重矩陣和偏置向量的數(shù)量和維度,均可以取經(jīng)驗值。
例如,第一級卷積層可以包括96個大小為5×5的卷積核C1,和96個大小為5×5的偏置矩陣B1,
結合上述內(nèi)容,在獲取待訓練CNN模型的初始模型參數(shù)時,可以在指定數(shù)值范圍內(nèi)隨機選取一個值作為初始模型參數(shù)中各個元素的值。例如,對于每一個初始卷積核、初始權重矩陣、初始偏置矩陣和初始偏置向量中的每一個元素,可以在[-r,r]區(qū)間中取一個隨機數(shù)。此處,r是初始化模型參數(shù)的閾值,其可以為經(jīng)驗值。例如,r可以取0.001。
202:獲取多個訓練圖像。
其中,訓練圖像的類別與待訓練CNN模型的識別類別有關。例如,當待訓練CNN模型為能夠識別不同語種的模型時,訓練圖像可以為包括不同語種的字 符或字符串的圖像。當待訓練CNN模型為識別顏色的模型時,訓練圖像為包括不同顏色的圖像等。
可選地,隨著全球經(jīng)濟化形式的不斷發(fā)展,國家、企業(yè)和個人的跨國交流和合作的頻繁程度大大增加。在這種情況下,人們必然會經(jīng)常遇到各式各樣需要使用或理解多語種信息的場合。比如在異國餐廳點餐、參加國際會議、瀏覽外國網(wǎng)站等。這也就意味著,多語種文字信息的處理、理解技術已經(jīng)變得十分重要且需求迫切。具體而言,這種技術要求能夠自動識別從復雜的自然場景下所獲得的文字的語種類別。其中,識別自然場景下文字的語種類別是一項艱巨的挑戰(zhàn),其存在幾大難點:一是自然場景文字信息的字體、顏色和布局方式一般是雜亂無章的,其背景也更加復雜且可能包含更多噪聲信息。另一點就是,對于不同語種,其字母表中可能包含一些完全相同或高度相似的字符,例如,英語和俄語中有些字符具有相同的外形。這就導致了單憑文字外表很難分辨其語種類別。最后一點是在自然場景中,那些寬高比完全不一致的文字圖片將會使很多針對固定寬高比圖片的分類器不再適用。
結合上述內(nèi)容,提出一種能夠識別自然場景下包括不同語種字符的圖像的CNN模型,能夠?qū)崿F(xiàn)快速識別自然場景下的圖像中的字符語種類別。因此,在本發(fā)明實施例中,訓練圖像可以為自然場景下的圖像,該自然場景下的圖像包括不同語種的字符。在此基礎上,待訓練CNN模型可以為語種識別分類器。
另外,關于訓練圖像的尺寸,本發(fā)明實施例不作具體限定。具體實施時,可以結合訓練圖像的類別而定。例如,針對自然場景中包括不同語種的字符的圖像,其往往在水平方向上的差異比較大,在垂直方向比較相似。也就是說,該種圖像的特征往往體現(xiàn)在水平方向上。因此,在本發(fā)明實施例中,對于任一訓練圖像,可以限制其高度的具體數(shù)值,而對其寬度則不進行限定。
具體地,在本發(fā)明實施例中,所有訓練圖像可以具有相同的高度和寬度,即所有訓練圖像具有指定高度和指定寬度。另外,所有訓練圖像的高度可以相同,但它們的寬度可以不同。例如,所有訓練圖像具有指定高度,但寬度各不 相同。其中,指定高度為第一數(shù)值的像素,指定寬度為第二數(shù)值的像素。具體地,第一數(shù)值可以為一個經(jīng)驗值,例如,第一數(shù)值可以為32等。第二數(shù)值可以為在預設范圍內(nèi)選取的一個隨機數(shù)。另外,第二數(shù)值的取值可能與圖像類別相關。例如,針對自然場景下包括不同語種字符的圖像,其字符往往分布在水平方向上,因此,其寬度往往比高度大,在此基礎上,第一數(shù)值往往小于第二數(shù)值。結合該部分內(nèi)容,該預設范圍可以介于48與256之間。
結合上述訓練圖像的尺寸類型,在獲取多個訓練圖像時,包括但不限于有如下兩種方式:
第一種方式:該方式下的所有訓練圖像具有指定高度和指定寬度。
在該種方式下,可以先獲取多個初始訓練圖像,并且對于多個初始訓練圖像中的一個初始訓練圖像,可以保持該初始訓練圖像的寬高比,將該初始訓練圖像先處理為具有指定高度的第一圖像;然后,在將第一圖像處理為具有指定寬度的第二圖像。此時,即可得到該初始訓練圖像對應的具有指定高度和指定寬度的訓練圖像。對于所有初始訓練圖像均進行這樣的處理,即可獲得多個訓練圖像。
例如,對于某一個尺寸為64像素*120像素的初始訓練圖像,當指定高度包括32像素時,可以將該初始訓練圖像處理為32像素*60像素的訓練圖像。
其中,在該種方式下,在將第一圖像處理為具有指定寬度的第二圖像時,由于第一圖像的寬度可能大于指定寬度,也可能小于指定寬度。因此,針對這兩種情況,為了得到指定寬度的圖像,可以有如下兩種不同的處理情況。
第一種情況:當?shù)谝粓D像的寬度小于指定寬度時,在第一圖像左右兩邊使用指定灰度值的像素進行均勻填充,直至第一圖像的寬度達到指定寬度。
關于指定灰度值的具體數(shù)值,可以根據(jù)需要或經(jīng)驗設定。例如,該指定灰度值可以為0。
例如,當指定寬度為120像素,某一個第一圖像的寬度為116像素時,可以在該第一圖像左邊填充2個像素的指定灰度值的像素,在該第一圖像右邊填 充2個像素的指定灰度值的像素。
第二種情況:當?shù)谝粓D像的寬度大于指定寬度時,可以對第一圖像左右兩邊的像素進行均勻裁剪,直至第一圖像的寬度達到指定寬度。
例如,當指定寬度為120像素,某一個第一圖像的寬度為124像素時,可以在該第一圖像左邊裁剪掉2個像素,并在該第一圖像右邊裁剪掉2個像素。
通過該種方式獲得的多個訓練圖像訓練CNN模型時,能夠確保所有訓練圖像具有相同的高度和寬度。此時,在訓練待訓練CNN模型時,可以在計算機中設置多個進程,并控制每個進程分別處理一個訓練圖像,從而能夠提高訓練CNN模型的速度。
第二種方式:該方式下的所有訓練圖像具有指定高度,但不限制每個訓練圖像的寬度。
在該種方式下,可以先獲取多個初始訓練圖像,并且對于多個初始訓練圖像中的任一初始訓練圖像,可以保持該初始訓練圖像的寬高比,將該初始訓練圖像處理為具有指定高度的圖像,并將該指定高度對應的寬度作為該初始訓練圖像的寬度。對于多個初始訓練圖像均進行這樣的處理,即可獲得多個訓練圖像。
例如,對于某一初始訓練圖像,當將其處理為指定高度的圖像時,該指定高度對應的寬度為120像素,則通過該種方式獲得的訓練圖像的高度為指定高度,寬度為120像素。
通過該種方式獲得的多個訓練圖像訓練CNN模型時,各個訓練圖像具有指定高度,但寬度各不相同。此時,在訓練待訓練CNN模型時,能夠保證訓練得到的CNN模型具有較高的識別精度。
需要說明的是,在具體的通過獲取到的多個訓練圖像訓練待訓練CNN模型時,可以僅使用上述第一種方式獲得的多個訓練圖像,從而實現(xiàn)快速獲得訓練好的CNN模型;還可以僅使用上述第二種方式獲得的多個訓練圖像,從而確保訓練好的CNN模型據(jù)有較高的識別精度。此外,還可以同時使用第一種方式和 第二種方式獲得的訓練圖像訓練CNN模型,以實現(xiàn)在提高訓練CNN模型的速度的同時,確保訓練得到的CNN模型具有較高的識別精度。
203:在各級卷積層上,使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像。
通過卷積操作和最大池化操作能夠?qū)崿F(xiàn)由淺入深地提取圖像不同層次的特征。因此,在訓練待訓練CNN模型時,為了獲得訓練圖像的特征,可以在各級卷積層上,對訓練圖像進行卷積操作和最大池化操作。
其中,在進行卷積操作時,需要使用各級卷積層的卷積核和偏置矩陣。在進行最大池化操作時,需要結合卷積得到的卷積圖像而定。由于在不同的卷積層進行卷積操作均會得到一個卷積圖像,并且對每個卷積圖像進行最大池化操作均能得到一個特征圖像,因此,在本發(fā)明實施例中,將在各級卷積層上進行卷積操作得到的圖像稱為各級卷積層上的卷積圖像,將對各級卷積層上的卷積圖像進行最大池化操作得到的圖像稱為各級卷積層上的第一特征圖像。
結合上述內(nèi)容,在使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像時,包括但不限于通過如下步驟2031至步驟2033來實現(xiàn):
2031:對于任一訓練圖像,將在上一級卷積層上的第一特征圖像輸入當前卷積層,使用當前卷積層上的初始卷積核和初始偏置矩陣,對上一級卷積層上的第一特征圖像進行卷積操作,得到當前卷積層上的卷積圖像。其中,如果當前卷積層為第一級卷積層,則上一級卷積層上的第一特征圖像為訓練圖像本身。
具體地,對于任一訓練圖像,如果當前卷積層為第一級卷積層,則可以先將該訓練圖像傳輸至第一級卷積層,并使用第一級卷積層上的初始卷積核和初始偏置矩陣對該訓練圖像進行卷積操作,得到第一級卷積層上的卷積圖像。進一步地,對第一級卷積層上的卷積圖像進行最大池化操作,得到第一級卷積層上的第一特征圖像。將該第一級卷積層上的第一特征圖像傳輸至第二級卷積層, 并在第二級卷積層上繼續(xù)進行卷積操作和最大池化操作。
其中,在使用當前卷積層上的初始卷積核和初始偏置矩陣對上一級卷積層上的第一特征圖像進行卷積操作時,可以使用該當前卷積層內(nèi)的每一個卷積核卷積上一級卷積層上的第一特征圖像,并控制當前卷積層內(nèi)的卷積核在上一級卷積層上的第一特征圖像上的滑動步長為1。
具體地,以當前卷積層為第一級卷積層為例,在使用第一級卷積層內(nèi)的某一個卷積核對訓練圖像進行卷積操作時,可以使用如下公式來表示:
式中,表示用第一級卷積核中的第i個卷積核卷積訓練圖像I后得到的第一級卷積層上的卷積圖像,表示第一級卷積層的偏置矩陣B1中的第i個偏置矩陣。
可選地,結合卷積操作的性質(zhì),在進行卷積操作時,處于圖像邊緣的像素可能不能進行卷積操作,從而使得進行卷積操作后得到的卷積圖像的尺寸發(fā)生變化。為了避免該種情況發(fā)生,在各級卷積層進行卷積操作之前,還可以對被卷積的圖像進行像素填補,從而確保進行卷積操作后,能夠保證待卷積圖像的尺寸不變。
具體地,在對待卷積圖像進行填補時,可以在待卷積圖像四周用預設灰度值,如用“0”進行填補。其中,填補的步長與卷積核的維度有關。當卷積核的維度為n時,填補的步長為(n-1)/2。例如,當卷積核為3*3,則填補的步長為1個像素。
其中,該步驟中所述的待卷積圖像為輸入至各個卷積層的圖像。例如,如果當前卷積層為第一級卷積層,則待卷積圖像為訓練圖像;如果當前卷積層不為第一級卷積層,則待卷積圖像為上一級卷積層上的第一特征圖像。
2032:對當前卷積層上的卷積圖像進行最大池化操作,得到訓練圖像在當前卷積層上的第一特征圖像后,繼續(xù)將當前卷積層上的第一特征圖像傳輸至下一級卷積層。
具體地,在對前卷積層上的卷積圖像進行最大池化操作時,可以用一個指定尺寸的滑動框,如3×3的滑動框,在當前卷積層上的卷積圖像中的每張卷積圖像中從左到右、從上到下滑動,且滑動的步長為預設像素,如預設像素為2像素。滑動框在每張卷積圖像上滑動時,將滑動框中所包含的所有元素中小于0的元素置0,然后將所有元素中的最大的元素取出,并按照滑動時的順序重新構成一幅新的圖像。操作完畢后將得到當前卷積層上的第一特征圖像。
其中,根據(jù)最大池化操作的性質(zhì)可計算得到,當前卷積層上的第一特征圖像的長度和寬度可以通過如下公式表示:
式中,floor表示向下取整函數(shù)。例如,floor(2.5)=2。w表示當前卷積層上的第一特征圖像的長度或?qū)挾?,m為滑動框的長度或?qū)挾人南袼財?shù)量,l為滑動步長,w0為當前卷積層上的卷積圖像的高度或?qū)挾取R援斍熬矸e層上的卷積圖像的尺寸為32×w0,滑動框為3*3,滑動步長為2為例,進行最大池化操作后,得到的當前卷積層上的第一特征圖像的尺寸為15×w1,
2033:在下一級卷積層對當前卷積層上的第一特征圖像進行卷積操作和最大池化操作,直至在最后一級卷積層進行卷積操作和最大池化操作,得到最后一層卷積層上的第一特征圖像為止。
其中,在各級卷積層上進行卷積操作和最大池化操作的原理同上述步驟2031和步驟2032中的原理一致,具體可參見上述步驟2031和步驟2032中的內(nèi)容,此處不再贅述。
204:對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像。
其中,在進行水平池化操作時,可以對所有卷積層上的第一特征圖像進行水平池化操作,也可以僅對部分卷積層上的第一特征圖像進行水平池化操作。 例如,如果待訓練CNN模型包括四級卷積層,則可以在每級卷積層上均進行水平池化操作,也可以僅在第二級卷積、第三級卷積層和第四級卷積層上進行水平池化操作。
具體地,在對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像時,包括但不限于通過如下步驟2041至2043來實現(xiàn):
2041:對任一訓練圖像在任一級卷積層上的第一特征圖像,提取該級卷積層上的第一特征圖像中的每個圖像每行元素中的最大值。其中,第一特征圖像包括預設數(shù)值的圖像,該預設數(shù)值與該級卷積層的卷積核及偏置矩陣的數(shù)量相同。
例如,以對第二級卷積層上的第一特征圖像進行水平池化操作為例,如果第二級卷積層上的第一特征圖像為R2,對R2進行水平池化操作,得到第二級卷積層上的第二特征圖像H1的過程為:
如果R2中第i個特征圖像是一個高度和寬度分別為7和w2的圖像,提取出的每一行中所有元素的最大值。
2042:按照每個圖像的像素排列情況,將每個圖像所有行提取到的最大值排列成一個一維向量。
結合上述步驟2041中的舉例,按照每個圖像的像素從上到下的排列情況,將每行的最大值排成一個長度為7的一維向量。如圖4所示,其示出了一種對第二卷積層上的第一特征圖像中的某一個圖像進行水平池化操作的過程示意圖。
2043:組合該級卷積層上的第一特征圖像中的所有圖像的一維向量,得到該級卷積層上的第二特征圖像。
結合上述步驟2041中的舉例,如果R2中所有256個圖像,如果對R2中所有256個圖像都重復上述操作后,獲得256個長度為7的一維向量。將每個一維向量看作一個列向量,按順序拼接成一個高度和寬度分別為7和256的圖像 H1。H1就是對R2進行水平池化操作后得到的第二級卷積層上的第二特征圖像。
結合圖3所示的待訓練CNN模型,該待訓練CNN模型包括四級卷積層和兩級全連接層,各級卷積層分別包括相同或不同數(shù)量的卷積核和偏置矩陣。在此基礎上,在對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像時,是對每個訓練圖像在第二級卷積層上的第一特征圖像、第三級卷積層上的第一特征圖像和第四級卷積層上的第一圖像特征分別進行水平池化操作,得到每個訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像。
205:根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量。
具體地,對于任一訓練圖像,其特征向量為將該訓練圖像在各級卷積層上的第二特征圖像進行級聯(lián)后,通過將各級卷積層上的第二特征圖像中所有行的元素首尾相接得到。
結合圖3所示的待訓練CNN模型,對于任一訓練圖像,可以根據(jù)該訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像,確定該訓練圖像的特征向量。
具體地,對于某一個訓練圖像,可以將第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像進行級聯(lián),并將第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像中所有行的元素首尾相接,得到該訓練圖像的特征向量。
例如,如果訓練圖像在第二級卷積層上的第二特征圖像為H1、第三級卷積層上的第二特征圖像為H2即第四級卷積層上的第二特征圖像為H3,則可以將H1中所有行的元素的首尾相接,得到第一一維向量;將H2中所有行的元素的首尾相接,得到第二一維向量;將H3中所有行的元素的首尾相接,得到第三一維 向量。進一步將第一一維向量、第二一維向量和第三一維向量首尾相接,得到該訓練圖像的特征向量。
206:根據(jù)初始權重矩陣和初始偏置向量對每個特征向量進行處理,得到每個訓練圖像的類別概率向量。
具體地,對于一個訓練圖像的特征向量,可以將其輸入全連接層,使用全連接層的權重矩陣乘以該特征向量,并將乘積結果與該全連接層的偏置向量相加,從而得到該訓練圖像的類別概率向量。
其中,類別概率向量為一個一維向量,類別概率向量中的元素的個數(shù)與待訓練CNN模型能夠識別的圖像類別的數(shù)目有關。例如,如果待訓練圖像能夠區(qū)別十種類別的圖像,則類別概率向量中包括十個元素。每個元素表示該訓練圖像屬于某一種類別的概率。
207:根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差。
其中,根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差,包括但不限于通過如下步驟2071至步驟2073來實現(xiàn):
2071:獲取每個訓練圖像的初始類別。
對于每個訓練圖像,其初始類別是已知的。其中,初始類別可以由人工提取并記錄。在此基礎上,在獲取每個訓練圖像的初始類別時,可以直接根據(jù)記錄的數(shù)據(jù)獲取。
2072:根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別通過如下公式計算每個訓練圖像的類別誤差:
Loss=-Lnylabel
式中,Loss表示每個訓練圖像的類別誤差,label表示每個訓練圖像的初始類別,yi表示每個訓練圖像的類別概率向量中的某一元素,ylabel表示初始類別對應的類別概率。例如,當初始訓練圖像為第一類時,ylabel為y1,即為類別概率向量中的第一個元素。
2073:計算所有訓練圖像的類別誤差平均值,類別誤差平均值作為類別誤差。
當然,此處僅以將所有訓練圖像的誤差平均值為例對計算類別誤差的過程進行了說明。在具體實施時,在計算類別誤差時,還可以采用其他方式,本發(fā)明實施例對此不作具體限定。
208:基于類別誤差,對待訓練CNN模型的模型參數(shù)進行調(diào)整。
具體地,在調(diào)整待訓練CNN模型的模型參數(shù)時,包括但不限于利用SGD(Stochastic gradient descent,隨機梯度下降)算法,將類別誤差反向傳導回該待訓練CNN模型,從而實現(xiàn)更新該待訓練CNN模型的模型參數(shù)中的所有元素。
關于利用SGD算法,將類別誤差反向傳導回該待訓練CNN模型,以實現(xiàn)更新該待訓練CNN模型的模型參數(shù)中的所有元素的具體實現(xiàn)過程,本發(fā)明實施例不作具體限定。
209:基于調(diào)整后的模型參數(shù)和多個訓練圖像,繼續(xù)進行確定類別誤差的過程,直至迭代次數(shù)達到預設次數(shù)。
具體地,使用步驟202中獲取到的多個訓練圖像和步驟208得到的調(diào)整后的模型參數(shù),重復步驟203至步驟208,直至重復次數(shù),即迭代次數(shù)達到預設次數(shù)為止。
關于預設次數(shù)的具體數(shù)值范圍,本發(fā)明實施例不作具體限定。為了使訓練好的CNN模型比較準確,該預設次數(shù)的取值可以比較大。具體實施時,預設次數(shù)可以為經(jīng)驗值。例如,取300000。
210:將迭代次數(shù)達到預設次數(shù)時所得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
例如,如果預設次數(shù)為300000,在將迭代次數(shù)達到300000時得到的模型參數(shù)為訓練好的CNN模型的模型參數(shù)。
211:將待識別圖像輸入訓練好的CNN模型,計算待識別圖像的類別概率向量,將類別概率向量的各個元素中最接近1的元素對應的類別作為待識別圖 像的類別。
具體地,如果類別概率向量中包括10個元素,每個元素分別對應一個類別,如果該類別概率向量中第二個元素最接近1,則該待識別圖像屬于第二類。
本發(fā)明實施例提供的方法,通過在各級卷積層上對訓練圖像進行卷積操作和最大池化操作后,進一步對最大池化操作后得到的特征圖像進行水平池化操作。由于在進行水平池化操作時,能夠進一步從特征圖像中提取出標識特征圖像水平方向特征的特征圖像,確保訓練好的CNN模型在識別圖像類別時,不受待識別圖像水平方向尺寸的顯示,從而能夠識別任意尺寸的待識別圖像,使得通過該種方式訓練好的CNN模型在識別圖像時的適用范圍比較廣泛。
結合圖1或圖2所對應實施例的內(nèi)容及圖3所示的待訓練CNN模型示意圖,本發(fā)明實施例以待訓練CNN模型包括四級卷積層和兩級全連接層對本發(fā)明實施例提供的方法進行解釋說明。另外,在本發(fā)明實施例中,以對第二級卷積層上的第一特征圖像、第三級卷積層上的第一特征圖像和第四級卷積層上的第一特征圖像進行水平池化操作為例進行說明。如圖5所示,本發(fā)明實施例提供的方法流程包括:
501:獲取待訓練CNN模型的初始模型參數(shù),其中,初始模型參數(shù)包括第一級卷積層的初始卷積核和初始偏置矩陣、第二級卷積層的初始卷積核和初始偏置矩陣、第三級卷積層的初始卷積核和初始偏置矩陣、第四級卷積層的初始卷積核和初始偏置矩陣、第一級全連接層的初始權重矩陣和初始偏置向量、第二級全連接層的初始權重矩陣和初始偏置向量。
其中,各級卷積層可以包括相同或不同數(shù)量的卷積核和偏置矩陣,各級全連接層包括相同或不同數(shù)量的權重矩陣和偏置向量。關于每級卷積層包括的卷積核和偏置矩陣的數(shù)量,以及每級全連接層包括的權重矩陣和偏置向量的數(shù)量,本發(fā)明實施例不作具體限定。另外,本發(fā)明實施例同樣不對每個卷積核和偏置矩陣的維度,以及每個權重矩陣和每個偏置向量的維度進行限定。具體實施時, 每級卷積層包括的卷積核和偏置矩陣的數(shù)量及其維度,以及每級全連權重矩陣和偏置向量的數(shù)量和維度,均可以取經(jīng)驗值。
另外,在本發(fā)明實施例中,將初始模型參數(shù)中各級卷積層中的卷積核、偏置矩陣、權重矩陣和偏置向量稱作初始卷積核、初始偏置矩陣、初始權重矩陣和初始偏置向量。因此,在訓練待訓練CNN模型時,需要獲取各級卷積層的初始卷積核、各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和全連接層的初始偏置向量。
為了便于對本發(fā)明實施例進行解釋說明,在本發(fā)明實施例中,以第一級卷積層包含96個大小為5×5的卷積核C1,和96個大小為5×5的偏置矩陣B1,第二級卷積層包含256個大小為5×5的卷積核C2,和256個大小為5×5的偏置矩陣B2,第三級卷積層包含384個大小為3×3的卷積核C3,和384個大小為3×3的偏置矩陣B3,第四級卷積層包含512個大小為3×3的卷積核C4,和512個大小為3×3的偏置矩陣B4,第一級全連接層包含了一個大小為3456×1024的權重矩陣W1和一個長度為1024的偏置向量B5;第二級全連接層包含了一個大小為1024×10的權重矩陣W2和一個長度為10的偏置向量B6為例,對本發(fā)明實施例提供的方法進行解釋說明。
其中,在獲取待訓練CNN模型的初始模型參數(shù)時,可以在指定數(shù)值范圍內(nèi)隨機選取一個值作為初始模型參數(shù)中各個元素的值。例如,對于每一個初始卷積核、初始權重矩陣、初始偏置矩陣和初始偏置向量中的每一個元素,可以在[-r,r]區(qū)間中取一個隨機數(shù)。此處,r是初始模型參數(shù)的閾值,其可以為經(jīng)驗值。例如,r可以取0.001。
502:獲取訓練圖像I,其中,訓練圖像I具有指定高度。
其中,該訓練圖像I為多個訓練圖像中的一個。為了便于說明,在本發(fā)明的后續(xù)實施中,以對該訓練圖像I進行處理為例對訓練待訓練CNN模型的過程進 行解釋說明。
另外,訓練圖像I具有指定高度和指定寬度。具體地,該指定高度可以為第一數(shù)值的像素,該指定寬度可以為第二數(shù)值的像素。具體地,第一數(shù)值可以為一個經(jīng)驗值,例如,第一數(shù)值可以為32等。第二數(shù)值可以為在預設范圍內(nèi)選取的一個隨機數(shù)。其中,該預設范圍可以介于48與256之間。為了便于說明,在本發(fā)明后續(xù)實施例中,以訓練圖像的尺寸為32*wo為例。其中,32為第一數(shù)值,wo為第二數(shù)值。
503:在第一級卷積層上,使用第一級卷積層的卷積核和偏置矩陣對訓練圖像I進行卷積操作和最大池化操作,得到訓練圖像I在第一級卷積層上的第一特征圖像R1。
下面將結合步驟502中的各個初始模型參數(shù)對在第一級卷積層上,使用第一級卷積層上的初始卷積核和初始偏置矩陣對訓練圖像I進行卷積操作和最大池化操作的步驟進行具體說明。具體地,獲得訓練圖像I在第一級卷積層上的第一特征圖像R1的過程如下:
5031:填補訓練圖像I,得到填補后的訓練圖像Itr。
該步驟為可選步驟。通過該步驟,能夠確保在第一級卷積層上進行卷積操作后得到的第一級卷積層上的卷積圖像與訓練圖像I具有相同的尺寸。其中,關于填補的內(nèi)容已在步驟203中進行了說明,具體可參見步驟203中的內(nèi)容,此處不再贅述。
例如,以訓練圖像I為32×wo為例,可以先在訓練圖像I四周用“0”元素進行均勻填補。其中,填補的長度為2,從而獲得一張高度和寬度分別為36像素和wo+4像素的填補后的訓練圖像Itr。
5032:在第一級卷積層上,使用第一級卷積層上的卷積核和偏置矩陣對填補后的訓練圖像Itr進行卷積操作,得到第一級卷積層上的卷積圖像D1。
具體地,結合步驟502中的舉例,可以分別用C1中的每一個卷積核卷積填補后的訓練圖像Itr,卷積核在填補后的訓練圖像Itr上的滑動步長為1,即:
其中,表示用第一級卷積層內(nèi)的第i個卷積核卷積填補后的訓練Itr后得到的第一級卷積層上的卷積圖像,表示第一級卷積層內(nèi)的偏置矩陣B1中的第i個偏置矩陣。根據(jù)圖像卷積操作的性質(zhì)可得,第一級卷積層上的卷積圖像其中,的大小為32×wo。
5033:對第一級卷積層上的卷積圖像D1進行最大池化操作,得到第一級卷積層上的第一特征圖像R1。
其中,進行最大池化操作的具體內(nèi)容已在步驟203中進行了闡述,具體可參見步驟203中的內(nèi)容,此處不再贅述。
例如,結合步驟502中的舉例,可以用一個3×3的滑動框在第一級卷積層上的卷積圖像D1中的每張卷積圖像中從左到右、從上到下滑動,滑動的步長為2。滑動框在圖像上滑動時,將框中所包含的9個元素中小于0的元素置0,然后將9個元素中的最大的元素取出,并按照滑動時的順序重新構成一幅新的圖像。操作完畢后將獲得第一級卷積層上的第一級特征圖像R1,根據(jù)最大池化操作的性質(zhì)可到,R1的大小為15×w1。其中,其中,floor表示向下取整函數(shù)。例如,floor(2.5)=2。另外,該公式中分子中的“3”表示滑動框一個維度的大小,分母中的“2”表示滑動的步長。
需要說明的是,此處的3×3僅用于舉例,在具體實施時,滑動框的尺寸還可以為其它數(shù)值。本發(fā)明實施例不對滑動框的尺寸進行限定。
504:在第二級卷積層上,使用第二級卷積層的卷積核和偏置矩陣對第一級卷積層上的第一級特征圖像R1進行卷積操作和最大池化操作,得到第二級卷積層上的第一特征圖像R2。
下面將結合上述各個初始模型參數(shù)對在第二級卷積層上,使用第二級卷積層的卷積核和偏置矩陣對第一級卷積層上的第一級特征圖像R1進行卷積操作和最大池化操作的步驟進行具體說明。具體地,獲得第二級卷積層上的第一特征 圖像R2的過程如下:
5041:填補第一級卷積層上的第一特征圖像R1,得到填補后的圖像Rp1。
該步驟的原理同步驟5031中的原理一致,具體可參見上述步驟5031中的內(nèi)容。該步驟為可選步驟。通過該步驟,能夠確保進行卷積操作后的圖像與第一級卷積層上的第一特征圖像R1具有相同的尺寸。
例如,結合步驟502中的舉例,填補的長度包括但不限于為2,填補后的圖像Rp1,且高度和寬度分別為19和w1+4。
5042:在第二級卷積層上,使用第二級卷積層上的卷積核和偏置矩陣對填補后的圖像進行卷積操作,得到第二級卷積層上的卷積圖像D2。
該步驟的原理同步驟5032的原理一致,具體可參見上述步驟5032中的內(nèi)容,此處不再贅述。
具體地,結合上述步驟中的舉例,可以分別用C2中的每一個卷積核卷積中的每一個圖像,卷積核在圖像中上滑動步長為1,卷積后的結果相加獲得第二級卷積層上的每個卷積圖像即:
其中,表示獲得的第二級卷積層上的第i個卷積圖像,表示C2中的第i個卷積核,表示B2中的第i個偏置矩陣,表示Rp1中的第j個圖像。根據(jù)卷積操作的性質(zhì)可得,其中,表示用第i個卷積核卷積Rp1后得到的卷積圖像,且的大小為15×w1。
5043:對第二級卷積層上的卷積圖像D2進行最大池化操作,得到第二級卷積層上的第一特征圖像R2。
該步驟的原理同5033的原理一致,具體可參見上述步驟5033中的內(nèi)容。具體地,
5044:對第二級卷積層上的第一特征圖像R2進行水平池化操作,得到第二 級卷積層上的第二特征圖像H1。
具體地,R2中第i個特征圖像是一個高和寬分別為7和w2的圖像,提取出的每一行中所有元素的最大值,依次按順序連接成一個長度為7的一維向量。
對R2中所有256個特征圖像都重復上述操作后,獲得256個長度為7的一維向量。將每個一維向量看作一個列向量,按順序拼接成一個高和寬分別為7和256的圖像H1。H1就是對R2進行水平池化操作后得到的第二卷積層上的第二特征圖像。
505:在第三級卷積層上,使用第三級卷積層的卷積核和偏置矩陣對第二級卷積層上的第一級特征圖像R2進行卷積操作和最大池化操作,得到第三級卷積層上的第一特征圖像R3。
下面將結合步驟502中的各個模型參數(shù)對在第三級卷積層上,使用第三級卷積層上的卷積核和偏置矩陣對第二級卷積層上的第一級特征圖像R2進行卷積操作和最大池化操作的步驟進行具體說明。具體地,獲得第三級卷積層上的第一特征圖像R3的過程如下:
5051:填補第二級卷積層上的第一特征圖像R2,得到填補后的圖像Rp2。
該步驟的原理同步驟5031中的原理一致,具體可參見上述步驟5031中的內(nèi)容。該步驟為可選步驟。通過該步驟,能夠確保進行卷積操作后的圖像與第二級卷積層上的第一特征圖像R2具有相同的尺寸。
具體地,填補的長度包括但不限于為1,填補后獲得新的圖像Rp2。其中,且高度和寬度分別為9和w2+2。
5052:在第三級卷積層上,使用第三級卷積層上的卷積核和偏置矩陣對填補后的圖像Rp2進行卷積操作,得到第三級卷積層上的卷積圖像D3。
該步驟的原理同上述步驟5032的原理一致,具體可參見上述步驟5032中的內(nèi)容,此處不再贅述。
其中,卷積核在填補后的圖像Rp2中上滑動步長為1,即:
其中,表示獲得的第三級卷積層上的第i個卷積圖像,表示C3中的第i個卷積核,表示B3中的第i個偏置矩陣,表示Rp2中的第j個圖像。根據(jù)卷積操作的性質(zhì)可得,其中,表示用第i個卷積核卷積Rp2后得到的卷積圖像,且的大小為7×w2。
5053:對第三級卷積層上的卷積圖像D3進行最大池化操作,獲得第三級卷積層上的第一特征圖像R3。
該步驟的原理同5033的原理一致,具體可參見上述步驟5033中的內(nèi)容。具體地,
5054:對第三級卷積層上的第一特征圖像R3進行水平池化操作,得到第二級卷積層上的第二特征圖像H2。
該步驟的原理同上述步驟5044的原理一致,具體可參見上述步驟5044中的內(nèi)容。
具體地,通過對第三級卷積層上的第一特征圖像R3進行水平池化操作,可以得到一個高和寬分別為3和384的圖像H2。H2就是對R3進行水平池化操作后的輸出。
506:在第四級卷積層上,使用第四級卷積層的卷積核和置矩陣對第三級卷積層上的第一級特征圖像R3進行卷積操作和最大池化操作,得到第四級卷積層上的第一特征圖像R4。
下面將結合步驟502中的各個模型參數(shù)對在第四級卷積層上,使用第四級卷積層上的卷積核和偏置矩陣對第三級卷積層上的第一級特征圖像R3進行卷積操作和最大池化操作的步驟進行具體說明。具體地,獲得第四級卷積層上的第一特征圖像R4的過程如下:
5061:在第四級卷積層上,使用第四級卷積層上的卷積核和偏置矩陣對第三級卷積層上的第一級特征圖像R3進行卷積操作,得到第四級卷積層上的卷積圖像D4。
其中,卷積核在R3上滑動步長為1,即:
其中,表示獲得的第四級卷積層上的第i個卷積圖像,表示C4中的第i個卷積核,表示B4中的第i個偏置矩陣,表示R3中的第j個圖像。根據(jù)卷積操作的性質(zhì)可得,其中,表示用第i個卷積核卷積R3后得到的卷積圖像,且的大小為1×(w3-2)。由于第四級特征圖像提取沒有最大池化操作,因此卷積圖像就是第四級卷積層上的第一特征圖像,即R4=D4,且大小為1×(w3-2)。
5062:對第四級卷積層上的第一特征圖像R4進行水平池化操作,得到第四級卷積層上的第二特征圖像H3。
該步驟的原理同上述步驟5044的原理一致,具體可參見上述步驟5044中的內(nèi)容。
具體地,R4中第i個特征圖像是一個長度為w3-2的向量,提取出中所有元素中的最大值。對R4中所有512個特征圖像都重復上述操作后,獲得512個數(shù),將這些數(shù)按順序連接成一個長度為512的向量H3。H3就是對R4進行水平池化操作后的輸出。
507:根據(jù)訓練圖像在第二級卷積層上的第二特征圖像H1、第三級卷積層上的第二特征圖像H2和第四級卷積層上的第二特征圖像H3,確定訓練圖像I的特征向量Fc1。
具體地,可以分別將H1、H2的列向量首尾相連后級聯(lián)起來,然后再級聯(lián)向量H3,獲得一個一維向量Fc1,將Fc1作為訓練圖像I的特征向量。
結合上述各個步驟中的舉例,由于H1大小為7×256、H2大小為3×384、H3 長度為512,因此,F(xiàn)c1的長度為3456。
508:將特征向量Fc1作為第一級全連接層的輸入,使用第一級全連接層的權重矩陣和偏置向量對Fc1進行處理,計算出第一級全連接層的輸出Fc2。
結合上述步驟502中的內(nèi)容,可以使用第一級全連接層的權重矩陣為W1,偏置向量為B5,通過如下公式計算出第一級全連接層輸出Fc2:
Fc2=Fc1*W1+B5。
結合上述步驟508中的內(nèi)容,F(xiàn)c2的長度為1024。上述各個步驟所得到的結果可以參見圖3中的具體數(shù)值。當然,圖3中的數(shù)值僅用于舉例,并不構成對本發(fā)明實施例的限制。
509:將第一級全連接層的輸出輸入第二級全連接層,使用第二級全連接層的權重矩陣和偏置計算訓練圖像I的類別概率向量Y,并根據(jù)訓練圖像I的類別概率向量Y和初始類別label,計算類別誤差Loss。
該步驟的原理已在步驟206和步驟207中進行了具體說明,具體可參見步驟206和步驟207中的內(nèi)容,此處不再贅述。
具體地,結合上述舉例,可以將第一級全連接層輸出Fc2作為第二級全連接層的輸入。由步驟502中的內(nèi)容可得,第二級全連接層的權重矩陣為W2,偏置向量為B6,計算出訓練圖像I的類別概率向量Y。其中,Y=Fc2*W2+B6,且Y=[Y1,Y2,……Yi,……,Yn]。其中,Yi表示輸入圖像I屬于第i類的概率,n表示待訓練CNN模型能夠識別的圖像類別的數(shù)量。其中,圖3中僅以待訓練CNN模型能夠識別10種圖像類別為例進行了說明。
進一步地,在根據(jù)訓練圖像I的類別概率向量Y和初始類別label計算類別誤差Loss時,可以通過如下公式實現(xiàn):
Loss=-Lnylabel。
例如,訓練圖像I的初始類別屬于第1類,則label=1。
510:對所有訓練圖像中的每一張訓練圖像重復步驟502至步驟509,計算出所有訓練圖像的類別誤差平均值將該類別誤差平均值作為類別誤差。
511:基于類別誤差,對待訓練CNN模型的模型參數(shù)進行調(diào)整。
該步驟的原理已在步驟208中進行了具體說明,具體可參見步驟208中的內(nèi)容,此處不再贅述。
具體地,在使用SGD將類別誤差反向傳導回待訓練CNN模型時,可以令SGD算法中的學習率取0.01,將步驟510所計算的類別誤差反向傳導回待訓練CNN模型,以更新卷積核C1、C2、C3、C4,偏置矩陣B1、B2、B3、B4,權重矩陣W1、W2和偏置向量B5、B6中的所有元素。
512:將步驟503至步驟511迭代操作預設次數(shù)N,將迭代次數(shù)達到預設次數(shù)N時得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
關于N的具體數(shù)值范圍,本發(fā)明實施例不作具體限定。為了使訓練好的CNN模型比較準確,該N的取值可以比較大。具體實施時,N可以為經(jīng)驗值。例如,N取300000。迭代次數(shù)達到300000時得到的模型參數(shù)為訓練好的CNN模型的模型參數(shù)。
實驗表明,當待訓練CNN模型包括四級卷積層,并在第二級卷積層、第三級卷積層和第四級卷積層上進行水平池化操作時,通過上述步驟501至步驟512訓練得到的CNN模型具有比較高的準確率,從而能夠提高訓練CNN模型時的準確率。
本發(fā)明實施例提供的方法,通過在各級卷積層上對訓練圖像進行卷積操作和最大池化操作后,進一步對最大池化操作后得到的特征圖像進行水平池化操作。由于在進行水平池化操作時,能夠進一步從特征圖像中提取出標識特征圖像水平方向特征的特征圖像,確保訓練好的CNN模型在識別圖像類別時,不受待識別圖像水平方向尺寸的顯示,從而能夠識別任意尺寸的待識別圖像,使得通過該種方式訓練好的CNN模型在識別圖像時的適用范圍比較廣泛。
圖6是本發(fā)明另一實施例提供的一種CNN模型的訓練裝置結構示意圖,該CNN的訓練裝置可以用于執(zhí)行上述圖1、圖2或圖5任一圖所對應實施例提供 的CNN模型的訓練方法。如圖6所示,該裝置包括:
第一獲取模塊601,用于獲取待訓練CNN模型的初始模型參數(shù),其中,初始模型參數(shù)包括各級卷積層的初始卷積核、各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和全連接層的初始偏置向量;
第二獲取模塊602,用于獲取多個訓練圖像;
特征提取模塊603,用于在各級卷積層上,使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像;
水平池化模塊604,用于對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像;
第一確定模塊605,用于根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量;
處理模塊606,用于根據(jù)初始權重矩陣和初始偏置向量對每個特征向量進行處理,得到每個訓練圖像的類別概率向量;
計算模塊607,用于根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差;
調(diào)整模塊608,用于基于類別誤差,對待訓練CNN模型的模型參數(shù)進行調(diào)整;
迭代模塊609,用于基于調(diào)整后的模型參數(shù)和多個訓練圖像,繼續(xù)進行模型參數(shù)調(diào)整的過程,直至迭代次數(shù)達到預設次數(shù);
第二確定模塊610,用于將迭代次數(shù)達到預設次數(shù)時所得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
本發(fā)明實施例提供的裝置,通過在各級卷積層上對訓練圖像進行卷積操作和最大池化操作后,進一步對最大池化操作后得到的特征圖像進行水平池化操作。由于在進行水平池化操作時,能夠進一步從特征圖像中提取出標識特征圖像水平方向特征的特征圖像,確保訓練好的CNN模型在識別圖像類別時,不受 待識別圖像水平方向尺寸的顯示,從而能夠識別任意尺寸的待識別圖像,使得通過該種方式訓練好的CNN模型在識別圖像時的適用范圍比較廣泛。
在另一個實施例中,第一獲取模塊601包括:
第一獲取單元,用于獲取多個初始訓練圖像;
第一處理單元,用于對于任一初始訓練圖像,保持所述初始訓練圖像的寬高比,將每個初始訓練圖像處理為具有指定高度的第一圖像;
第二處理單元,用于將所述第一圖像處理為具有指定寬度的圖像;
第一確定單元,用于將具有指定高度和指定寬度的圖像作為初始訓練圖像對應的訓練圖像。
在另一個實施例中,第一獲取模塊601包括:
第二獲取單元,用于獲取多個初始訓練圖像;
第三處理單元,用于對于任一初始訓練圖像,保持初始訓練圖像的寬高比,將初始訓練圖像處理為具有指定高度的圖像,將指定高度對應的寬度作為每個初始訓練圖像的寬度。
在另一個實施例中,第一處理單元包括:
處理子單元,用于將每個初始訓練圖像處理為具有指定高度的圖像,得到初始寬度;
填充子單元,用于當初始寬度小于指定寬度時,在處理后的初始訓練圖像左右兩邊使用指定灰度值的像素進行均勻填充,直至達到指定寬度;
裁剪子單元,用于當初始寬度大于指定寬度時,對處理后的初始訓練圖像左右兩邊的像素進行均勻裁剪,直至達到指定寬度。
在另一個實施例中,特征提取模塊603包括:
卷積單元,用于對于任一訓練圖像,將在上一級卷積層上的第一特征圖像輸入當前卷積層,使用當前卷積層上的初始卷積核和初始偏置矩陣,對上一級卷積層上的第一特征圖像進行卷積操作,得到當前卷積層上的卷積圖像,其中,如果當前卷積層為第一級卷積層,則上一級卷積層上的第一特征圖像為訓練圖 像;
最大池化單元,用于對當前卷積層上的卷積圖像進行最大池化操作,得到訓練圖像在當前卷積層上的第一特征圖像;
傳輸單元,用于繼續(xù)將當前卷積層上的第一特征圖像傳輸至下一級卷積層,并在下一級卷積層進行卷積操作和最大池化操作,直至在最后一級卷積層進行卷積操作和最大池化操作,得到最后一層卷積層上的第一特征圖像為止。
在另一個實施例中,水平池化模塊604包括:
提取單元,用于對任一訓練圖像在任一級卷積層上的第一特征圖像,提取卷積層上的第一特征圖像中的每個圖像每行元素中的最大值,其中,第一特征圖像包括預設數(shù)值的圖像,預設數(shù)值與卷積層的卷積核及偏置矩陣的數(shù)量相同;
排列單元,用于按照每個圖像的像素排列情況,將每個圖像所有行提取到的最大值排列成一個一維向量;
組合單元,用于組合卷積層上的第一特征圖像中的所有圖像的一維向量,得到卷積層上的第二特征圖像。
在另一個實施例中,第一確定模塊605,用于對于任一訓練圖像,將訓練圖像在各級卷積層上的第二特征圖像中所有行的元素首尾相接,得到訓練圖像的特征向量。
在另一個實施例中,計算模塊607包括:
獲取單元,用于獲取每個訓練圖像的初始類別;
第一計算單元,用于根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別通過如下公式計算每個訓練圖像的類別誤差:
Loss=-Lnylabel
式中,Loss表示每個訓練圖像的類別誤差,label表示每個訓練圖像的初始類別,yi表示每個訓練圖像的類別概率向量中的某一元素,ylabel表示初始類別對應的類別概率;
第二計算單元,用于計算所有訓練圖像的類別誤差平均值,將類別誤差平 均值作為類別誤差。
在另一個實施例中,訓練圖像為自然場景下的圖像,自然場景下的圖像包括不同語種的字符,待訓練CNN模型為語種識別分類器。
在另一個實施例中,待訓練CNN模型包括四級卷積層和兩個全連接層,各級卷積層分別包括相同或不同數(shù)量的卷積核和偏置矩陣;
水平池化操作,用于對每個訓練圖像在第二級卷積層上的第一特征圖像、第三級卷積層上的第一特征圖像和第四級卷積層上的第一特征圖像分別進行水平池化操作,得到每個訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像;
第一確定模塊,用于對于任一訓練圖像,根據(jù)訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像,確定訓練圖像的特征向量。
上述所有可選技術方案,可以采用任意結合形成本發(fā)明的可選實施例,在此不再一一贅述。
請參考圖7,其示出了本發(fā)明實施例所涉及的終端的結構示意圖,該終端可以用于實施上述圖1、圖2或圖4所對應實施例提供的CNN模型的訓練方法。具體來講:
終端700可以包括RF(Radio Frequency,射頻)電路110、包括有一個或一個以上計算機可讀存儲介質(zhì)的存儲器120、輸入單元130、顯示單元140、傳感器150、音頻電路160、WiFi(Wireless Fidelity,無線保真)模塊170、包括有一個或者一個以上處理核心的處理器180、以及電源190等部件。本領域技術人員可以理解,圖7中示出的終端結構并不構成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
RF電路110可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個或者一個以上處理器180處理;另外,將 涉及上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路110包括但不限于天線、至少一個放大器、調(diào)諧器、一個或多個振蕩器、用戶身份模塊(SIM)卡、收發(fā)信機、耦合器、LNA(Low Noise Amplifier,低噪聲放大器)、雙工器等。此外,RF電路110還可以通過無線通信與網(wǎng)絡和其他設備通信。所述無線通信可以使用任一通信標準或協(xié)議,包括但不限于GSM(Global System of Mobile communication,全球移動通訊系統(tǒng))、GPRS(General Packet Radio Service,通用分組無線服務)、CDMA(Code Division Multiple Access,碼分多址)、WCDMA(Wideband Code Division Multiple Access,寬帶碼分多址)、LTE(Long Term Evolution,長期演進)、電子郵件、SMS(Short Messaging Service,短消息服務)等。
存儲器120可用于存儲軟件程序以及模塊,處理器180通過運行存儲在存儲器120的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理。存儲器120可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)終端700的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器120可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應地,存儲器120還可以包括存儲器控制器,以提供處理器180和輸入單元130對存儲器120的訪問。
輸入單元130可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設置以及功能控制有關的鍵盤、鼠標、操作桿、光學或者軌跡球信號輸入。具體地,輸入單元130可包括觸敏表面131以及其他輸入設備132。觸敏表面131,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面131上或在觸敏表面131附近的操作),并根據(jù)預先設定的程式驅(qū)動相應的連接裝置??蛇x的,觸敏表面131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制 器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標,再送給處理器180,并能接收處理器180發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸敏表面131。除了觸敏表面131,輸入單元130還可以包括其他輸入設備132。具體地,其他輸入設備132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
顯示單元140可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端700的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標、視頻和其任意組合來構成。顯示單元140可包括顯示面板141,可選的,可以采用LCD(Liquid Crystal Display,液晶顯示器)、OLED(Organic Light-Emitting Diode,有機發(fā)光二極管)等形式來配置顯示面板141。進一步的,觸敏表面131可覆蓋顯示面板141,當觸敏表面131檢測到在其上或附近的觸摸操作后,傳送給處理器180以確定觸摸事件的類型,隨后處理器180根據(jù)觸摸事件的類型在顯示面板141上提供相應的視覺輸出。雖然在圖7中,觸敏表面131與顯示面板141是作為兩個獨立的部件來實現(xiàn)輸入和輸入功能,但是在某些實施例中,可以將觸敏表面131與顯示面板141集成而實現(xiàn)輸入和輸出功能。
終端700還可包括至少一種傳感器150,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板141的亮度,接近傳感器可在終端700移動到耳邊時,關閉顯示面板141和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別終端姿態(tài)的應用(比如橫豎屏切換、相關游戲、磁力計姿態(tài)校準)、振動識別相關功能(比如計步器、敲擊)等;至于終端700還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路160、揚聲器161,傳聲器162可提供用戶與終端700之間的音頻 接口。音頻電路160可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P聲器161,由揚聲器161轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器162將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路160接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器180處理后,經(jīng)RF電路110以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲器120以便進一步處理。音頻電路160還可能包括耳塞插孔,以提供外設耳機與終端700的通信。
WiFi屬于短距離無線傳輸技術,終端700通過WiFi模塊170可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖7示出了WiFi模塊170,但是可以理解的是,其并不屬于終端700的必須構成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器180是終端700的控制中心,利用各種接口和線路連接整個終端的各個部分,通過運行或執(zhí)行存儲在存儲器120內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器120內(nèi)的數(shù)據(jù),執(zhí)行終端700的各種功能和處理數(shù)據(jù),從而對終端進行整體監(jiān)控。可選的,處理器180可包括一個或多個處理核心;優(yōu)選的,處理器180可集成應用處理器和調(diào)制解調(diào)處理器,其中,應用處理器主要處理操作系統(tǒng)、用戶界面和應用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器180中。
終端700還包括給各個部件供電的電源190(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器180邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。電源190還可以包括一個或一個以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
盡管未示出,終端700還可以包括攝像頭、藍牙模塊等,在此不再贅述。具體在本實施例中,終端的顯示單元是觸摸屏顯示器,終端還包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行。所述一個或者一個以上程序包含 用于執(zhí)行以下操作的指令:
獲取待訓練CNN模型的初始模型參數(shù),其中,初始模型參數(shù)包括各級卷積層的初始卷積核、各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和全連接層的初始偏置向量;
獲取多個訓練圖像;
在各級卷積層上,使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像;
對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像;
根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量;
根據(jù)初始權重矩陣和初始偏置向量對每個特征向量進行處理,得到每個訓練圖像的類別概率向量;
根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差;
基于類別誤差,對待訓練CNN模型的模型參數(shù)進行調(diào)整;
基于調(diào)整后的模型參數(shù)和多個訓練圖像,繼續(xù)進行模型參數(shù)調(diào)整的過程,直至迭代次數(shù)達到預設次數(shù);
將迭代次數(shù)達到預設次數(shù)時所得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
假設上述為第一種可能的實施方式,則在第一種可能的實施方式作為基礎而提供的第二種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
對于任一初始訓練圖像,保持初始訓練圖像的寬高比,將初始訓練圖像處 理為具有指定高度的第一圖像;
將第一圖像處理為具有指定寬度的第二圖像,將具有所述指定高度和所述指定寬度的圖像作為初始訓練圖像對應的訓練圖像。
在第一種可能的實施方式作為基礎而提供的第三種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
對于任一初始訓練圖像,保持初始訓練圖像的寬高比,將初始訓練圖像處理為具有指定高度的圖像,將指定高度對應的寬度作為初始訓練圖像的寬度。
在第二種可能的實施方式作為基礎而提供的第四種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:將第一圖像處理為具有指定寬度的第二圖像,包括:
當?shù)谝粓D像的寬度小于指定寬度時,在第一圖像左右兩邊使用指定灰度值的像素進行均勻填充,直至第一圖像的寬度達到指定寬度時,得到第二圖像;
當?shù)谝粓D像的寬度大于指定寬度時,對第一圖像左右兩邊的像素進行均勻裁剪,直至第一圖像的寬度達到指定寬度時,得到第二圖像。
在第一種可能的實施方式作為基礎而提供的第五種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像,包括:
對于任一訓練圖像,將在上一級卷積層上的第一特征圖像輸入當前卷積層,使用當前卷積層上的初始卷積核和初始偏置矩陣,對上一級卷積層上的第一特征圖像進行卷積操作,得到當前卷積層上的卷積圖像,其中,如果當前卷積層為第一級卷積層,則上一級卷積層上的第一特征圖像為訓練圖像;
對當前卷積層上的卷積圖像進行最大池化操作,得到訓練圖像在當前卷積層上的第一特征圖像后,繼續(xù)將當前卷積層上的第一特征圖像傳輸至下一級卷積層,并在下一級卷積層進行卷積操作和最大池化操作,直至在最后一級卷積 層進行卷積操作和最大池化操作,得到最后一層卷積層上的第一特征圖像為止。
在第一種可能的實施方式作為基礎而提供的第六種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像,包括:
對任一訓練圖像在任一級卷積層上的第一特征圖像,提取卷積層上的第一特征圖像中的每個圖像每行元素中的最大值,其中,第一特征圖像包括預設數(shù)值的圖像,預設數(shù)值與卷積層的卷積核及偏置矩陣的數(shù)量相同;
按照每個圖像的像素排列情況,將每個圖像所有行提取到的最大值排列成一個一維向量;
組合卷積層上的第一特征圖像中的所有圖像的一維向量,得到卷積層上的第二特征圖像。
在第六種可能的實施方式作為基礎而提供的第七種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量,包括:
對于任一訓練圖像,將訓練圖像在各級卷積層上的第二特征圖像中所有行的元素首尾相接,得到訓練圖像的特征向量。
在第一種可能的實施方式作為基礎而提供的第八種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差,包括:
獲取每個訓練圖像的初始類別;
根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別通過如下公式計算每個訓練圖像的類別誤差:
Loss=-Lnylabel
式中,Loss表示每個訓練圖像的類別誤差,label表示每個訓練圖像的初始類別,yi表示每個訓練圖像的類別概率向量中的某一元素,ylabel表示初始類別對 應的類別概率;
計算所有訓練圖像的類別誤差平均值,將類別誤差平均值作為類別誤差。
在第一種至第八種中任一種可能的實施方式作為基礎而提供的第九種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:訓練圖像為自然場景下的圖像,自然場景下的圖像包括不同語種的字符,待訓練CNN模型為語種識別分類器。
在第一種至第八種中任一種可能的實施方式作為基礎而提供的第十種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:待訓練CNN模型包括四級卷積層和兩個全連接層,各級卷積層分別包括相同或不同數(shù)量的卷積核和偏置矩陣;
對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像,包括:
對每個訓練圖像在第二級卷積層上的第一特征圖像、第三級卷積層上的第一特征圖像和第四級卷積層上的第一特征圖像分別進行水平池化操作,得到每個訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像;
根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量,包括:
對于任一訓練圖像,根據(jù)訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像,確定訓練圖像的特征向量。
本發(fā)明實施例提供的終端,通過在各級卷積層上對訓練圖像進行卷積操作和最大池化操作后,進一步對最大池化操作后得到的特征圖像進行水平池化操作。由于在進行水平池化操作時,能夠進一步從特征圖像中提取出標識特征圖像水平方向特征的特征圖像,確保訓練好的CNN模型在識別圖像類別時,不受待識別圖像水平方向尺寸的顯示,從而能夠識別任意尺寸的待識別圖像,使得 通過該種方式訓練好的CNN模型在識別圖像時的適用范圍比較廣泛。
本發(fā)明實施例提供了一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)可以是上述實施例中的存儲器中所包含的計算機可讀存儲介質(zhì);也可以是單獨存在,未裝配入終端中的計算機可讀存儲介質(zhì)。該計算機可讀存儲介質(zhì)存儲有一個或者一個以上程序,該一個或者一個以上程序被一個或者一個以上的處理器用來執(zhí)行CNN模型的訓練方法,該方法包括:
獲取待訓練CNN模型的初始模型參數(shù),其中,初始模型參數(shù)包括各級卷積層的初始卷積核、各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和全連接層的初始偏置向量;
獲取多個訓練圖像;
在各級卷積層上,使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像;
對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像;
根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量;
根據(jù)初始權重矩陣和初始偏置向量對每個特征向量進行處理,得到每個訓練圖像的類別概率向量;
根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差;
基于類別誤差,對待訓練CNN模型的模型參數(shù)進行調(diào)整;
基于調(diào)整后的模型參數(shù)和多個訓練圖像,繼續(xù)進行模型參數(shù)調(diào)整的過程,直至迭代次數(shù)達到預設次數(shù);
將迭代次數(shù)達到預設次數(shù)時所得到的模型參數(shù)作為訓練好的CNN模型的模 型參數(shù)。
假設上述為第一種可能的實施方式,則在第一種可能的實施方式作為基礎而提供的第二種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
對于任一初始訓練圖像,保持初始訓練圖像的寬高比,將初始訓練圖像處理為具有指定高度的第一圖像;
將第一圖像處理為具有指定寬度的第二圖像,將具有指定高度和指定寬度的圖像作為初始訓練圖像對應的訓練圖像。
在第一種可能的實施方式作為基礎而提供的第三種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
對于任一初始訓練圖像,保持初始訓練圖像的寬高比,將初始訓練圖像處理為具有指定高度的圖像,將指定高度對應的寬度作為初始訓練圖像的寬度。
在第二種可能的實施方式作為基礎而提供的第四種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:將第一圖像處理為具有指定寬度的第二圖像,包括:
當?shù)谝粓D像的寬度小于指定寬度時,在第一圖像左右兩邊使用指定灰度值的像素進行均勻填充,直至第一圖像的寬度達到指定寬度時,得到第二圖像;
當?shù)谝粓D像的寬度大于指定寬度時,對第一圖像左右兩邊的像素進行均勻裁剪,直至第一圖像的寬度達到指定寬度時,得到第二圖像。
在第一種可能的實施方式作為基礎而提供的第五種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像,包括:
對于任一訓練圖像,將在上一級卷積層上的第一特征圖像輸入當前卷積層, 使用當前卷積層上的初始卷積核和初始偏置矩陣,對上一級卷積層上的第一特征圖像進行卷積操作,得到當前卷積層上的卷積圖像,其中,如果當前卷積層為第一級卷積層,則上一級卷積層上的第一特征圖像為訓練圖像;
對當前卷積層上的卷積圖像進行最大池化操作,得到訓練圖像在當前卷積層上的第一特征圖像后,繼續(xù)將當前卷積層上的第一特征圖像傳輸至下一級卷積層,并在下一級卷積層進行卷積操作和最大池化操作,直至在最后一級卷積層進行卷積操作和最大池化操作,得到最后一層卷積層上的第一特征圖像為止。
在第一種可能的實施方式作為基礎而提供的第六種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像,包括:
對任一訓練圖像在任一級卷積層上的第一特征圖像,提取卷積層上的第一特征圖像中的每個圖像每行元素中的最大值,其中,第一特征圖像包括預設數(shù)值的圖像,預設數(shù)值與卷積層的卷積核及偏置矩陣的數(shù)量相同;
按照每個圖像的像素排列情況,將每個圖像所有行提取到的最大值排列成一個一維向量;
組合卷積層上的第一特征圖像中的所有圖像的一維向量,得到卷積層上的第二特征圖像。
在第六種可能的實施方式作為基礎而提供的第七種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量,包括:
對于任一訓練圖像,將訓練圖像在各級卷積層上的第二特征圖像中所有行的元素首尾相接,得到訓練圖像的特征向量。
在第一種可能的實施方式作為基礎而提供的第八種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差,包括:
獲取每個訓練圖像的初始類別;
根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別通過如下公式計算每個訓練圖像的類別誤差:
Loss=-Lnylabel
式中,Loss表示每個訓練圖像的類別誤差,label表示每個訓練圖像的初始類別,yi表示每個訓練圖像的類別概率向量中的某一元素,ylabel表示初始類別對應的類別概率;
計算所有訓練圖像的類別誤差平均值,將類別誤差平均值作為類別誤差。
在第一種至第八種中任一種可能的實施方式作為基礎而提供的第九種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:訓練圖像為自然場景下的圖像,自然場景下的圖像包括不同語種的字符,待訓練CNN模型為語種識別分類器。
在第一種至第八種中任一種可能的實施方式作為基礎而提供的第十種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:待訓練CNN模型包括四級卷積層和兩個全連接層,各級卷積層分別包括相同或不同數(shù)量的卷積核和偏置矩陣;
對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像,包括:
對每個訓練圖像在第二級卷積層上的第一特征圖像、第三級卷積層上的第一特征圖像和第四級卷積層上的第一特征圖像分別進行水平池化操作,得到每個訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像;
根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量,包括:
對于任一訓練圖像,根據(jù)訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像,確定訓練圖 像的特征向量。
本發(fā)明實施例提供的計算機可讀存儲介質(zhì),通過在各級卷積層上對訓練圖像進行卷積操作和最大池化操作后,進一步對最大池化操作后得到的特征圖像進行水平池化操作。由于在進行水平池化操作時,能夠進一步從特征圖像中提取出標識特征圖像水平方向特征的特征圖像,確保訓練好的CNN模型在識別圖像類別時,不受待識別圖像水平方向尺寸的顯示,從而能夠識別任意尺寸的待識別圖像,使得通過該種方式訓練好的CNN模型在識別圖像時的適用范圍比較廣泛。
本發(fā)明實施例中提供了一種圖形用戶接口,該圖形用戶接口用在終端上,該終端包括觸摸屏顯示器、存儲器和用于執(zhí)行一個或者一個以上的程序的一個或者一個以上的處理器;該圖形用戶接口包括:
獲取待訓練CNN模型的初始模型參數(shù),其中,初始模型參數(shù)包括各級卷積層的初始卷積核、各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和全連接層的初始偏置向量;
獲取多個訓練圖像;
在各級卷積層上,使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像;
對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像;
根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量;
根據(jù)初始權重矩陣和初始偏置向量對每個特征向量進行處理,得到每個訓練圖像的類別概率向量;
根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別 誤差;
基于類別誤差,對待訓練CNN模型的模型參數(shù)進行調(diào)整;
基于調(diào)整后的模型參數(shù)和多個訓練圖像,繼續(xù)進行模型參數(shù)調(diào)整的過程,直至迭代次數(shù)達到預設次數(shù);
將迭代次數(shù)達到預設次數(shù)時所得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
假設上述為第一種可能的實施方式,則在第一種可能的實施方式作為基礎而提供的第二種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
保持每個初始訓練圖像的寬高比,將每個初始訓練圖像處理為具有指定高度和指定寬度的圖像,得到多個訓練圖像。
在第一種可能的實施方式作為基礎而提供的第三種可能的實施方式中,終端的存儲器中還包含用于執(zhí)行以下操作的指令:獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
保持每個初始訓練圖像的寬高比,將每個初始訓練圖像處理為具有指定高度的圖像,將指定高度對應的寬度作為每個初始訓練圖像的寬度,得到多個訓練圖像。
本發(fā)明實施例提供的圖形用戶接口,通過在各級卷積層上對訓練圖像進行卷積操作和最大池化操作后,進一步對最大池化操作后得到的特征圖像進行水平池化操作。由于在進行水平池化操作時,能夠進一步從特征圖像中提取出標識特征圖像水平方向特征的特征圖像,確保訓練好的CNN模型在識別圖像類別時,不受待識別圖像水平方向尺寸的顯示,從而能夠識別任意尺寸的待識別圖像,使得通過該種方式訓練好的CNN模型在識別圖像時的適用范圍比較廣泛。
上述圖1、圖2或圖5任一圖所對應實施例提供的CNN模型的訓練方法還 可以由一服務器執(zhí)行。圖8是根據(jù)一示例性實施例示出的一種服務器的結構示意圖,該服務器即可以用于執(zhí)行上述圖1、圖2或圖5任一圖所對應實施例提供的CNN模型的訓練方法。參照圖8,服務器800包括處理組件822,其進一步包括一個或多個處理器,以及由存儲器832所代表的存儲器資源,用于存儲可由處理組件822的執(zhí)行的指令,例如應用程序。存儲器832中存儲的應用程序可以包括一個或一個以上的每一個對應于一組指令的模塊。此外,處理組件822被配置為執(zhí)行指令,以執(zhí)行上述圖1、圖2或圖5任一圖所對應實施例提供的CNN模型的訓練方法。
服務器800還可以包括一個電源組件828被配置為執(zhí)行服務器800的電源管理,一個有線或無線網(wǎng)絡接口850被配置為將服務器800連接到網(wǎng)絡,和一個輸入輸出(I/O)接口858。服務器800可以操作基于存儲在存儲器832的操作系統(tǒng),例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM或類似。
其中,一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行,所述一個或者一個以上程序包含用于進行以下操作的指令:
獲取待訓練CNN模型的初始模型參數(shù),其中,初始模型參數(shù)包括各級卷積層的初始卷積核、各級卷積層的初始偏置矩陣、全連接層的初始權重矩陣和全連接層的初始偏置向量;
獲取多個訓練圖像;
在各級卷積層上,使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像;
對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像;
根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量;
根據(jù)初始權重矩陣和初始偏置向量對每個特征向量進行處理,得到每個訓練圖像的類別概率向量;
根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差;
基于類別誤差,對待訓練CNN模型的模型參數(shù)進行調(diào)整;
基于調(diào)整后的模型參數(shù)和多個訓練圖像,繼續(xù)進行模型參數(shù)調(diào)整的過程,直至迭代次數(shù)達到預設次數(shù);
將迭代次數(shù)達到預設次數(shù)時所得到的模型參數(shù)作為訓練好的CNN模型的模型參數(shù)。
假設上述為第一種可能的實施方式,則在第一種可能的實施方式作為基礎而提供的第二種可能的實施方式中,服務器的存儲器中還包含用于執(zhí)行以下操作的指令:獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
對于任一初始訓練圖像,保持初始訓練圖像的寬高比,將初始訓練圖像處理為具有指定高度的第一圖像;
將第一圖像處理為具有指定寬度的第二圖像,將具有所述指定高度和所述指定寬度的圖像作為初始訓練圖像對應的訓練圖像。
在第一種可能的實施方式作為基礎而提供的第三種可能的實施方式中,服務器的存儲器中還包含用于執(zhí)行以下操作的指令:獲取多個訓練圖像,包括:
獲取多個初始訓練圖像;
對于任一初始訓練圖像,保持初始訓練圖像的寬高比,將初始訓練圖像處理為具有指定高度的圖像,將指定高度對應的寬度作為初始訓練圖像的寬度。
在第二種可能的實施方式作為基礎而提供的第四種可能的實施方式中,服務器的存儲器中還包含用于執(zhí)行以下操作的指令:將第一圖像處理為具有指定寬度的第二圖像,包括:
當?shù)谝粓D像的寬度小于指定寬度時,在第一圖像左右兩邊使用指定灰度值 的像素進行均勻填充,直至第一圖像的寬度達到指定寬度時,得到第二圖像;
當?shù)谝粓D像的寬度大于指定寬度時,對第一圖像左右兩邊的像素進行均勻裁剪,直至第一圖像的寬度達到指定寬度時,得到第二圖像。
在第一種可能的實施方式作為基礎而提供的第五種可能的實施方式中,服務器的存儲器中還包含用于執(zhí)行以下操作的指令:使用各級卷積層上的初始卷積核和初始偏置矩陣,對每個訓練圖像分別進行卷積操作和最大池化操作,得到每個訓練圖像在各級卷積層上的第一特征圖像,包括:
對于任一訓練圖像,將在上一級卷積層上的第一特征圖像輸入當前卷積層,使用當前卷積層上的初始卷積核和初始偏置矩陣,對上一級卷積層上的第一特征圖像進行卷積操作,得到當前卷積層上的卷積圖像,其中,如果當前卷積層為第一級卷積層,則上一級卷積層上的第一特征圖像為訓練圖像;
對當前卷積層上的卷積圖像進行最大池化操作,得到訓練圖像在當前卷積層上的第一特征圖像后,繼續(xù)將當前卷積層上的第一特征圖像傳輸至下一級卷積層,并在下一級卷積層進行卷積操作和最大池化操作,直至在最后一級卷積層進行卷積操作和最大池化操作,得到最后一層卷積層上的第一特征圖像為止。
在第一種可能的實施方式作為基礎而提供的第六種可能的實施方式中,服務器的存儲器中還包含用于執(zhí)行以下操作的指令:對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像,包括:
對任一訓練圖像在任一級卷積層上的第一特征圖像,提取卷積層上的第一特征圖像中的每個圖像每行元素中的最大值,其中,第一特征圖像包括預設數(shù)值的圖像,預設數(shù)值與卷積層的卷積核及偏置矩陣的數(shù)量相同;
按照每個圖像的像素排列情況,將每個圖像所有行提取到的最大值排列成一個一維向量;
組合卷積層上的第一特征圖像中的所有圖像的一維向量,得到卷積層上的第二特征圖像。
在第六種可能的實施方式作為基礎而提供的第七種可能的實施方式中,服務器的存儲器中還包含用于執(zhí)行以下操作的指令:根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量,包括:
對于任一訓練圖像,將訓練圖像在各級卷積層上的第二特征圖像中所有行的元素首尾相接,得到訓練圖像的特征向量。
在第一種可能的實施方式作為基礎而提供的第八種可能的實施方式中,服務器的存儲器中還包含用于執(zhí)行以下操作的指令:根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別,計算類別誤差,包括:
獲取每個訓練圖像的初始類別;
根據(jù)每個訓練圖像的類別概率向量及每個訓練圖像的初始類別通過如下公式計算每個訓練圖像的類別誤差:
Loss=-Lnylabel
式中,Loss表示每個訓練圖像的類別誤差,label表示每個訓練圖像的初始類別,yi表示每個訓練圖像的類別概率向量中的某一元素,ylabel表示初始類別對應的類別概率;
計算所有訓練圖像的類別誤差平均值,將類別誤差平均值作為類別誤差。
在第一種至第八種中任一種可能的實施方式作為基礎而提供的第九種可能的實施方式中,服務器的存儲器中還包含用于執(zhí)行以下操作的指令:訓練圖像為自然場景下的圖像,自然場景下的圖像包括不同語種的字符,待訓練CNN模型為語種識別分類器。
在第一種至第八種中任一種可能的實施方式作為基礎而提供的第十種可能的實施方式中,服務器的存儲器中還包含用于執(zhí)行以下操作的指令:待訓練CNN模型包括四級卷積層和兩個全連接層,各級卷積層分別包括相同或不同數(shù)量的卷積核和偏置矩陣;
對每個訓練圖像在至少一級卷積層上的第一特征圖像進行水平池化操作,得到每個訓練圖像在各級卷積層上的第二特征圖像,包括:
對每個訓練圖像在第二級卷積層上的第一特征圖像、第三級卷積層上的第一特征圖像和第四級卷積層上的第一特征圖像分別進行水平池化操作,得到每個訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像;
根據(jù)每個訓練圖像在各級卷積層上的第二特征圖像確定每個訓練圖像的特征向量,包括:
對于任一訓練圖像,根據(jù)訓練圖像在第二級卷積層上的第二特征圖像、第三級卷積層上的第二特征圖像和第四級卷積層上的第二特征圖像,確定訓練圖像的特征向量。
本發(fā)明實施例提供的服務器,通過在各級卷積層上對訓練圖像進行卷積操作和最大池化操作后,進一步對最大池化操作后得到的特征圖像進行水平池化操作。由于在進行水平池化操作時,能夠進一步從特征圖像中提取出標識特征圖像水平方向特征的特征圖像,確保訓練好的CNN模型在識別圖像類別時,不受待識別圖像水平方向尺寸的顯示,從而能夠識別任意尺寸的待識別圖像,使得通過該種方式訓練好的CNN模型在識別圖像時的適用范圍比較廣泛。
需要說明的是:上述實施例提供的CNN模型的訓練裝置在訓練CNN模型時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的CNN模型的訓練裝置、終端及服務器與CNN模型的訓練方法實施例屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。