數(shù)據(jù)處理方法、數(shù)據(jù)處理裝置及芯片的制作方法
【專利摘要】本發(fā)明實施例公開了一種數(shù)據(jù)處理方法、數(shù)據(jù)處理裝置及芯片。其中,數(shù)據(jù)處理方法包括:在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);其中,N為大于1的整數(shù),i為整數(shù)、且1<i≤N;若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),通過第i?1層網(wǎng)絡(luò)對該第i?1層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);之后,通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第i?1層網(wǎng)絡(luò)的訓練數(shù)據(jù);否則,直接執(zhí)行通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第i?1層網(wǎng)絡(luò)的訓練數(shù)據(jù)的操作。本發(fā)明實施例可以節(jié)省數(shù)據(jù)存儲的帶寬。
【專利說明】
數(shù)據(jù)處理方法、數(shù)據(jù)處理裝置及芯片
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于數(shù)據(jù)處理領(lǐng)域,特別是涉及一種數(shù)據(jù)處理方法、數(shù)據(jù)處理裝置及芯片。
【背景技術(shù)】
[0002]近年來隨著深度學習技術(shù)的飛速發(fā)展,深度學習技術(shù)中的代表性技術(shù)一一卷積神經(jīng)網(wǎng)絡(luò)(Convolut1nal Neural Networks,CNN)在圖像識別、語音識別等模式識別領(lǐng)域得到了廣泛地應(yīng)用。
[0003]卷積神經(jīng)網(wǎng)絡(luò)是一個多層的神經(jīng)網(wǎng)絡(luò),每層由多個二維平面組成,而每個平面由多個獨立的神經(jīng)元組成。它在本質(zhì)上是一種輸入到輸出的映射,能夠?qū)W習大量的輸入與輸出之間的映射關(guān)系,只要用已知的模式對卷積神經(jīng)網(wǎng)絡(luò)加以訓練,卷積神經(jīng)網(wǎng)絡(luò)就具有輸入與輸出對之間的映射能力。
[0004]目前,卷積神經(jīng)網(wǎng)絡(luò)的訓練過程包括:正向處理過程和反向處理過程。其中,正向處理過程是從卷積神經(jīng)網(wǎng)絡(luò)的底層開始,每一次訓練一層網(wǎng)絡(luò),一層一層的往頂層訓練。反向處理過程是通過帶標簽的數(shù)據(jù)去訓練卷積神經(jīng)網(wǎng)絡(luò),使誤差自頂向下傳輸,對網(wǎng)絡(luò)進行微調(diào)。
[0005]在實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的過程中,發(fā)明人發(fā)現(xiàn),采用現(xiàn)有技術(shù)訓練卷積神經(jīng)網(wǎng)絡(luò),對于每一層網(wǎng)絡(luò)的輸入數(shù)據(jù)都要進行存儲。隨著卷積神經(jīng)網(wǎng)絡(luò)的日趨龐大,網(wǎng)絡(luò)的層數(shù)及每一層中神經(jīng)元的數(shù)目不斷增加,在同一塊芯片上難于存儲整個卷積神經(jīng)網(wǎng)絡(luò)的所有數(shù)據(jù),而如果將這些數(shù)據(jù)存儲在芯片外的存儲設(shè)備中,由于交互的數(shù)據(jù)量巨大,芯片與存儲設(shè)備之間的帶寬將限制數(shù)據(jù)的傳輸效率,從而影響卷積神經(jīng)網(wǎng)絡(luò)的訓練效率。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例要解決的一個技術(shù)問題是:提供一種數(shù)據(jù)處理方法、數(shù)據(jù)處理裝置及芯片,以節(jié)省數(shù)據(jù)存儲的帶寬。
[0007]根據(jù)本發(fā)明實施例的一個方面,提供一種數(shù)據(jù)處理方法,包括:
[0008]在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);其中,N為大于I的整數(shù),i為整數(shù)、且l<i<N;
[0009]若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),通過第1-Ι層網(wǎng)絡(luò)對該第1-Ι層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);
[0010]通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù);
[0011]若存儲有第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),直接執(zhí)行所述通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù)的操作;
[0012]其中,i=N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為表示第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間差異的差異函數(shù);i〈N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)。
[0013]基于本發(fā)明上述方法的另一實施例中,還包括:
[0014]獲取第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間的差異,獲得差異函數(shù);
[0015]計算差異函數(shù)對第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)的導(dǎo)數(shù),獲得第N層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0016]基于本發(fā)明上述方法的另一實施例中,所述差異函數(shù)具體為損失函數(shù)。
[0017]基于本發(fā)明上述方法的另一實施例中,所述基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第i_l層網(wǎng)絡(luò)的訓練數(shù)據(jù)包括:
[0018]基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得第i_l層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值;所述訓練數(shù)據(jù)具體為輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0019]基于本發(fā)明上述方法的另一實施例中,還包括:
[0020]針對當前待處理的第i層網(wǎng)絡(luò),識別第i層網(wǎng)絡(luò)是否為卷積層;
[0021]若第i層網(wǎng)絡(luò)為卷積層,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0022]基于本發(fā)明上述方法的另一實施例中,獲取第1-1層網(wǎng)絡(luò)的訓練數(shù)據(jù)之后,還包括:[〇〇23]識別i_l的值是否大于1;
[0024]若1-1的值大于1,以第1-1層網(wǎng)絡(luò)作為新的第i層網(wǎng)絡(luò),執(zhí)行所述檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)的操作;
[0025]若1-1的值等于1,識別第1層網(wǎng)絡(luò)是否為卷積層;
[0026]若第1層網(wǎng)絡(luò)為卷積層,基于第1層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第1層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第1層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第1層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0027]基于本發(fā)明上述方法的另一實施例中,獲得網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值之后,還包括:
[0028]分別采用各層網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值對各自層的卷積系數(shù)進行更新。
[0029]基于本發(fā)明上述方法的另一實施例中,還包括:
[0030]在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,存儲第1層網(wǎng)絡(luò)的輸入樣本,選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù),所述其他層網(wǎng)絡(luò)為所述N層神經(jīng)網(wǎng)絡(luò)中除第1層網(wǎng)絡(luò)外的網(wǎng)絡(luò)層。
[0031]基于本發(fā)明上述方法的另一實施例中,所述選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)包括:
[0032]對層類型不同的相鄰兩層網(wǎng)絡(luò),按照間隔層存儲數(shù)據(jù)的方式,存儲所述其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)。
[0033]基于本發(fā)明上述方法的另一實施例中,還包括:
[0034]從相鄰兩層網(wǎng)絡(luò)中,選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。[〇〇35]基于本發(fā)明上述方法的另一實施例中,在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中, 檢測第i層是否為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層;[〇〇36]若第i層是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,存儲該第i層的輸入數(shù)據(jù);
[0037]否則,第i層不是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,不存儲該第i層的輸入數(shù)據(jù)。
[0038]基于本發(fā)明上述方法的另一實施例中,所述選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層包括:
[0039]根據(jù)所述神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)屬性參數(shù),選擇所述神經(jīng)網(wǎng)絡(luò)中存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。
[0040]基于本發(fā)明上述方法的另一實施例中,所述網(wǎng)絡(luò)屬性參數(shù)包括:所述神經(jīng)網(wǎng)絡(luò)的層數(shù)、每層網(wǎng)絡(luò)的層類型、每層網(wǎng)絡(luò)包含的神經(jīng)元的數(shù)量。
[0041]基于本發(fā)明上述方法的另一實施例中,所述神經(jīng)網(wǎng)絡(luò)包括卷積神經(jīng)網(wǎng)絡(luò),所述N層網(wǎng)絡(luò)包括卷積層。
[0042]基于本發(fā)明上述方法的另一實施例中,所述N層網(wǎng)絡(luò)還包括:卷積層、池化層、全相連層與決策層中的任意一個或多個。
[0043]根據(jù)本發(fā)明實施例的另一個方面,提供一種數(shù)據(jù)處理裝置,包括:
[0044]第一檢測單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);其中,N為大于I的整數(shù),i為整數(shù)、且l<i<N;
[0045]第一處理單元,用于根據(jù)第一檢測單元的檢測結(jié)果,若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),通過第1-Ι層網(wǎng)絡(luò)對該第1-Ι層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);以及通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù);若存儲有第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),直接執(zhí)行所述通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù)的操作;
[0046]其中,i=N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為表示第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間差異的差異函數(shù);i〈N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)。
[0047]基于本發(fā)明上述裝置的另一實施例中,還包括:
[0048]比較單元,用于獲取第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間的差異,獲得差異函數(shù);
[0049]第一計算單元,用于計算差異函數(shù)對第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)的導(dǎo)數(shù),獲得第N層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0050]基于本發(fā)明上述裝置的另一實施例中,所述差異函數(shù)具體為損失函數(shù)。基于本發(fā)明上述裝置的另一實施例中,所述第一處理單元基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù),具體用于基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得第1-Ι層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值;所述訓練數(shù)據(jù)具體為輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0051 ]基于本發(fā)明上述裝置的另一實施例中,還包括:
[0052]第一識別單元,用于針對當前待處理的第i層網(wǎng)絡(luò),識別第i層網(wǎng)絡(luò)是否為卷積層;
[0053]第二計算單元,用于根據(jù)第一識別單元的識別結(jié)果,若第i層網(wǎng)絡(luò)為卷積層,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0054]基于本發(fā)明上述裝置的另一實施例中,還包括:
[0055]第二識別單元,用于識別1-Ι的值是否大于I;若1-Ι的值大于1,以第1-Ι層網(wǎng)絡(luò)作為新的第i層網(wǎng)絡(luò),回到所述第一檢測單元執(zhí)行相應(yīng)的操作;若1-1的值等于1,回到所述第一識別單元執(zhí)行相應(yīng)的操作。
[0056]基于本發(fā)明上述裝置的另一實施例中,還包括:
[0057]更新單元,用于分別采用各層網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值對各自層的卷積系數(shù)進行更新。
[0058]基于本發(fā)明上述裝置的另一實施例中,還包括:[〇〇59]存儲單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,存儲第1層網(wǎng)絡(luò)的輸入樣本,選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù),所述其他層網(wǎng)絡(luò)為所述N層神經(jīng)網(wǎng)絡(luò)中除第1層網(wǎng)絡(luò)外的網(wǎng)絡(luò)層。
[0060]基于本發(fā)明上述裝置的另一實施例中,所述選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)包括:
[0061]對層類型不同的相鄰兩層網(wǎng)絡(luò),按照間隔層存儲數(shù)據(jù)的方式,存儲所述其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)。
[0062]基于本發(fā)明上述裝置的另一實施例中,還包括:
[0063]從相鄰兩層網(wǎng)絡(luò)中,選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。
[0064]基于本發(fā)明上述裝置的另一實施例中,還包括:[〇〇65]第二檢測單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,檢測第i層是否為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層;
[0066]第二處理單元,用于根據(jù)第二檢測單元的檢測結(jié)果,若第i層是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,存儲該第i層的輸入數(shù)據(jù);否則,第i層不是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,不存儲該第i層的輸入數(shù)據(jù)。
[0067]基于本發(fā)明上述裝置的另一實施例中,所述選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層包括:
[0068]根據(jù)所述神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)屬性參數(shù),選擇所述神經(jīng)網(wǎng)絡(luò)中存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。
[0069]基于本發(fā)明上述裝置的另一實施例中,所述網(wǎng)絡(luò)屬性參數(shù)包括:所述神經(jīng)網(wǎng)絡(luò)的層數(shù)、每層網(wǎng)絡(luò)的層類型、每層網(wǎng)絡(luò)包含的神經(jīng)元的數(shù)量。
[0070]基于本發(fā)明上述裝置的另一實施例中,所述神經(jīng)網(wǎng)絡(luò)包括卷積神經(jīng)網(wǎng)絡(luò),所述N層網(wǎng)絡(luò)包括卷積層。
[0071]基于本發(fā)明上述裝置的另一實施例中,所述N層網(wǎng)絡(luò)還包括:卷積層、池化層、全相連層與決策層中的任意一個或多個。
[0072]根據(jù)本發(fā)明實施例的又一個方面,提供一種芯片,包括:上述任意一項所述的數(shù)據(jù)處理裝置。
[0073]基于本發(fā)明上述芯片的另一實施例中,包括:專用集成電路ASIC、現(xiàn)場可編程門陣列FPGA、中央處理單元CPU或圖形處理單元GPU。
[0074]基于本發(fā)明實施例提供的數(shù)據(jù)處理方法、裝置及芯片,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率,進而提高神經(jīng)網(wǎng)絡(luò)的訓練效率。
【附圖說明】
[0075]構(gòu)成說明書的一部分的附圖描述了本發(fā)明的實施例,并且連同描述一起用于解釋本發(fā)明的原理。
[0076]參照附圖,根據(jù)下面的詳細描述,可以更加清楚地理解本發(fā)明,其中:
[0077]圖1是本發(fā)明數(shù)據(jù)處理方法的一個實施例的流程圖。
[0078]圖2是本發(fā)明數(shù)據(jù)處理方法的另一個實施例的流程圖。
[0079]圖3是本發(fā)明數(shù)據(jù)處理方法的又一個實施例的流程圖。
[0080]圖4是本發(fā)明數(shù)據(jù)處理方法的再一個實施例的流程圖。
[0081 ]圖5是本發(fā)明數(shù)據(jù)處理方法的再一個實施例的流程圖。
[0082]圖6是本發(fā)明數(shù)據(jù)處理方法的再一個實施例的流程圖。
[0083]圖7是本發(fā)明數(shù)據(jù)處理方法的一個具體實施例的示意圖。
[0084]圖8是本發(fā)明數(shù)據(jù)處理方法的一個具體實施例的流程圖。
[0085]圖9是本發(fā)明數(shù)據(jù)處理裝置的一個實施例的結(jié)構(gòu)圖。
[0086]圖10是本發(fā)明數(shù)據(jù)處理裝置的另一個實施例的結(jié)構(gòu)圖。
[0087]圖11是本發(fā)明數(shù)據(jù)處理裝置的又一個實施例的結(jié)構(gòu)圖。
[0088]圖12是本發(fā)明數(shù)據(jù)處理裝置的再一個實施例的結(jié)構(gòu)圖。
[0089]圖13是本發(fā)明數(shù)據(jù)處理裝置的再一個實施例的結(jié)構(gòu)圖。
[0090]圖14是本發(fā)明數(shù)據(jù)處理裝置的再一個實施例的結(jié)構(gòu)圖。
[0091 ]圖15是本發(fā)明數(shù)據(jù)處理裝置的再一個實施例的結(jié)構(gòu)圖。
【具體實施方式】
[0092]現(xiàn)在將參照附圖來詳細描述本發(fā)明的各種示例性實施例。應(yīng)注意到:除非另外具體說明,否則在這些實施例中闡述的部件的相對布置、數(shù)字表達式和數(shù)值不限制本發(fā)明的范圍。
[0093]同時,應(yīng)當明白,為了便于描述,附圖中所示出的各個部分的尺寸并不是按照實際的比例關(guān)系繪制的。
[0094]以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應(yīng)用或使用的任何限制。
[0095]對于相關(guān)領(lǐng)域普通技術(shù)人員已知的技術(shù)、方法和設(shè)備可能不作詳細討論,但在適當情況下,所述技術(shù)、方法和設(shè)備應(yīng)當被視為說明書的一部分。
[0096]應(yīng)注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步討論。
[0097]圖1是本發(fā)明數(shù)據(jù)處理方法的一個實施例的流程圖。如圖1所示,本發(fā)明實施例的數(shù)據(jù)處理方法,包括:
[0098]120,在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)。
[0099]若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),執(zhí)行操作140。否則,若存儲有第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),直接執(zhí)行操作160。
[0100]其中,N為大于1的整數(shù),i為整數(shù)、且l<i<N。
[0101]140,采用預(yù)設(shè)算法,通過第1-1層網(wǎng)絡(luò)對該第1-1層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)。
[0102]在操作140之后,執(zhí)行操作160。
[0103]160,通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-1層網(wǎng)絡(luò)的訓練數(shù)據(jù)。
[0104]其中,i=N時,第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為表示第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間差異的差異函數(shù);i〈N時,第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)。[〇1〇5]基于本發(fā)明實施例提供的數(shù)據(jù)處理方法,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率, 進而提尚神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0106]圖2是本發(fā)明數(shù)據(jù)處理方法的另一個實施例的流程圖。如圖2所示,本發(fā)明實施例的數(shù)據(jù)處理方法與圖1的數(shù)據(jù)處理方法的不同之處在于,在操作120之前還包括:
[0107]220,獲取第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間的差異,獲得差異函數(shù)。
[0108]240,計算差異函數(shù)對第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)的導(dǎo)數(shù),獲得第N層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0109]基于本發(fā)明實施例提供的數(shù)據(jù)處理方法,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率, 進而提尚神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0110]在本發(fā)明的另一個實施例中,差異函數(shù)具體為損失函數(shù)。
[0111]圖3是本發(fā)明數(shù)據(jù)處理方法的又一個實施例的流程圖。如圖3所示,本發(fā)明實施例的數(shù)據(jù)處理方法,包括:
[0112]310,獲取第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間的差異,獲得差異函數(shù)。
[0113]320,計算差異函數(shù)對第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)的導(dǎo)數(shù),獲得第N層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0114]330,在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i 層網(wǎng)絡(luò)的輸入數(shù)據(jù)。
[0115]若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),執(zhí)行操作340。否則,若存儲有第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),直接執(zhí)行操作350。
[0116]其中,N為大于1的整數(shù),i為整數(shù)、且l<i<N。[〇117]340,采用預(yù)設(shè)算法,通過第1-1層網(wǎng)絡(luò)對該第1-1層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)。
[0118]在操作340之后,執(zhí)行操作350。
[0119]350,通過預(yù)設(shè)方式,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得第1-1層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值;其中訓練數(shù)據(jù)具體為輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0120]其中,i=N時,第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為表示第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間差異的差異函數(shù);i〈N時,第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)。
[0121]基于本發(fā)明實施例提供的數(shù)據(jù)處理方法,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率,進而提尚神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0122]圖4是本發(fā)明數(shù)據(jù)處理方法的再一個實施例的流程圖。如圖4所示,本發(fā)明實施例的數(shù)據(jù)處理方法與圖3的數(shù)據(jù)處理方法的不同之處在于,在操作350之后還包括:
[0123]420,針對當前待處理的第i層網(wǎng)絡(luò),識別第i層網(wǎng)絡(luò)是否為卷積層。
[0124]440,若第i層網(wǎng)絡(luò)為卷積層,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值?;诒景l(fā)明實施例提供的數(shù)據(jù)處理方法,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率,進而提高神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0125]圖5是本發(fā)明數(shù)據(jù)處理方法的再一個實施例的流程圖。如圖5所示,本發(fā)明實施例的數(shù)據(jù)處理方法與圖3的數(shù)據(jù)處理方法的不同之處在于,在操作350之后還包括:
[0126]510,針對當前待處理的第i層網(wǎng)絡(luò),識別第i層網(wǎng)絡(luò)是否為卷積層。
[0127]若第i層網(wǎng)絡(luò)為卷積層,執(zhí)行操作520。否則,若第i層網(wǎng)絡(luò)不為卷積層,直接執(zhí)行操作 530 0
[0128]520,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。530,識別1-Ι的值是否大于
1
[0129]若1-Ι的值大于I,執(zhí)行操作540。否則,若1-Ι的值等于I,執(zhí)行操作550。
[0130]540,以第1-Ι層網(wǎng)絡(luò)作為新的第i層網(wǎng)絡(luò),執(zhí)行圖3中的操作330。
[0131]550,識別第I層網(wǎng)絡(luò)是否為卷積層。
[0132]560,若第I層網(wǎng)絡(luò)為卷積層,基于第I層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第I層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第I層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第I層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。操作560之后,或者第I層網(wǎng)絡(luò)不為卷積層,可以分別采用各層網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值對各自層的卷積系數(shù)進行更新。
[0133]基于本發(fā)明實施例提供的數(shù)據(jù)處理方法,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率,進而提尚神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0134]圖6是本發(fā)明數(shù)據(jù)處理方法的再一個實施例的流程圖。如圖6所示,本發(fā)明實施例的數(shù)據(jù)處理方法與圖3的數(shù)據(jù)處理方法的不同之處在于,在操作350之后還包括:
[0135]610,針對當前待處理的第i層網(wǎng)絡(luò),識別第i層網(wǎng)絡(luò)是否為卷積層。
[0136]若第i層網(wǎng)絡(luò)為卷積層,執(zhí)行操作620。否則,若第i層網(wǎng)絡(luò)不為卷積層,直接執(zhí)行操作 630。
[0137]620,若第i層網(wǎng)絡(luò)為卷積層,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0138]630,識別1-1的值是否大于1。
[0139]若1-1的值大于1,執(zhí)行操作640。否則,若1-1的值等于1,執(zhí)行操作650。[〇14〇]640,以第1-1層網(wǎng)絡(luò)作為新的第i層網(wǎng)絡(luò),執(zhí)行圖3中的操作330。[〇141]650,識別第1層網(wǎng)絡(luò)是否為卷積層。
[0142]若第1層網(wǎng)絡(luò)為卷積層,執(zhí)行操作660。否則,若第1層網(wǎng)絡(luò)不為卷積層,直接執(zhí)行操作 670。
[0143]660,若第1層網(wǎng)絡(luò)為卷積層,基于第1層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第1層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第1層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第1層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0144]670,分別采用各層網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值對各自層的卷積系數(shù)進行更新。
[0145]基于本發(fā)明實施例提供的數(shù)據(jù)處理方法,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率, 進而提尚神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0146]圖7是本發(fā)明數(shù)據(jù)處理方法的一個具體實施例的示意圖。圖8是本發(fā)明數(shù)據(jù)處理方法的一個具體實施例的流程圖。如圖7所示,本發(fā)明具體實施例的數(shù)據(jù)處理方法是對一個6 層的神經(jīng)網(wǎng)絡(luò)進行處理,它包括正向處理和反向處理兩個過程,其中,在圖7中,以實線表示輸入數(shù)據(jù)的正向傳遞,以虛線表示輸出數(shù)據(jù)的反向傳遞。在這里我們以Li層表示第i層網(wǎng)絡(luò),其中i = l、2、3、4、5、6。如圖8所示,本實施例的數(shù)據(jù)處理方法具體包括:
[0147]801,輸入樣本經(jīng)過L1層,產(chǎn)生L2層的輸入數(shù)據(jù),同時存儲輸入樣本。
[0148]802,L2層的輸入數(shù)據(jù)經(jīng)過L2層,產(chǎn)生L3層的輸入數(shù)據(jù),不存儲L2層的輸入數(shù)據(jù)。
[0149]803,L3層的輸入數(shù)據(jù)經(jīng)過L3層,產(chǎn)生L4層的輸入數(shù)據(jù),同時存儲L3層的輸入數(shù)據(jù)。
[0150]804,L4層的輸入數(shù)據(jù)經(jīng)過L4層,產(chǎn)生L5層的輸入數(shù)據(jù),不存儲L4層的輸入數(shù)據(jù)。
[0151]805,L5層的輸入數(shù)據(jù)經(jīng)過L5層,產(chǎn)生L6層的輸入數(shù)據(jù),同時存儲L5層的輸入數(shù)據(jù)。
[0152]806,L6層的輸入數(shù)據(jù)經(jīng)過L6層,產(chǎn)生L6層的輸出數(shù)據(jù),不存儲L6層的輸入數(shù)據(jù)。
[0153]807,獲取L6層的輸出數(shù)據(jù)與參考數(shù)據(jù)之間的差異,獲得損失函數(shù),S卩l(xiāng)oss函數(shù)。
[0154]808,計算loss函數(shù)值對L6層的輸出數(shù)據(jù)的導(dǎo)數(shù),獲得L6層輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0155]809,檢測未存儲L6層的輸入數(shù)據(jù),通過L5層對L5層的輸入數(shù)據(jù)進行處理,獲得L6 層的輸入數(shù)據(jù)。
[0156]810,通過預(yù)設(shè)方式,基于L6層輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算loss函數(shù)值對L6層的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得L5層輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0157]811,識別L6層為卷積層,基于L6層輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算loss函數(shù)值對L6層的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得L6層的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0158]812,識別6-1的值大于1,檢測存儲有L5層的輸入數(shù)據(jù),通過預(yù)設(shè)方式,基于L5層輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算L5層的輸出數(shù)據(jù)對L5層的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得L4層輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0159]813,識別L5層為卷積層,基于L5層輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算L5層的輸出數(shù)據(jù)對L5 層的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得L5層的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0160]814,識別5-1的值大于1,檢測未存儲L4層的輸入數(shù)據(jù),通過L3層對L3層的輸入數(shù)據(jù)進行處理,獲得L4層的輸入數(shù)據(jù)。
[0161]815,通過預(yù)設(shè)方式,基于L4層輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算L4層的輸出數(shù)據(jù)對L4層的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得L3層輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0162]816,識別L4層不為卷積層,識別4-1的值大于I,檢測存儲有L3層的輸入數(shù)據(jù),通過預(yù)設(shè)方式,基于L3層輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算L3層的輸出數(shù)據(jù)對L3層的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得L2層輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0163]817,識別L3層不為卷積層,識別3-1的值大于I,檢測未存儲L2層的輸入數(shù)據(jù),通過LI層對LI層的輸入數(shù)據(jù)進行處理,獲得L2層的輸入數(shù)據(jù)。
[0164]818,通過預(yù)設(shè)方式,基于L2層輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算L2層的輸出數(shù)據(jù)對L2層的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得LI層輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0165]819,識別L2層為卷積層,基于L2層輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算L2層的輸出數(shù)據(jù)對L2層的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得L2層的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0166]820,識別2-1的值等于I,識別LI層為卷積層,基于LI層輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算LI層的輸出數(shù)據(jù)對LI層的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得LI層的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0167]821,分別采用各層網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值對各自層的卷積系數(shù)進行更新。
[0168]由上述可見,本發(fā)明上述任意一個實施例的方法,還包括:在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,存儲第I層網(wǎng)絡(luò)的輸入樣本,選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)的操作。其中其他層網(wǎng)絡(luò)為N層神經(jīng)網(wǎng)絡(luò)中除第I層網(wǎng)絡(luò)外的網(wǎng)絡(luò)層。
[0169]在本發(fā)明的另一個實施例中,選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)包括:對層類型不同的相鄰兩層網(wǎng)絡(luò),按照間隔層存儲數(shù)據(jù)的方式,存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)。其中,間隔層存儲具體為隔一層存儲一層,即一層存儲,一層不存儲,這樣以此類推。
[0170]在本發(fā)明的另一個實施例中,是從相鄰兩層網(wǎng)絡(luò)中,選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。例如,哪些層存儲哪些層不存儲是提前選擇好的,可以通過做標記或者存儲這些層的層編號來識別這些層。
[0171]本發(fā)明的另一個實施例中,在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,檢測第i層是否為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層;若第i層是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,存儲該第i層的輸入數(shù)據(jù);否則,第i層不是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,不存儲該第i層的輸入數(shù)據(jù)。
[0172]在本發(fā)明的另一個實施例中,選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層包括:根據(jù)神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)屬性參數(shù),選擇神經(jīng)網(wǎng)絡(luò)中存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。其中,網(wǎng)絡(luò)屬性參數(shù)包括:神經(jīng)網(wǎng)絡(luò)的層數(shù)、每層網(wǎng)絡(luò)的層類型、每層網(wǎng)絡(luò)包含的神經(jīng)元的數(shù)量等。
[0173]在本發(fā)明上述任意一個實施例的方法中,神經(jīng)網(wǎng)絡(luò)包括卷積神經(jīng)網(wǎng)絡(luò),N層網(wǎng)絡(luò)包括卷積層。
[0174]在本發(fā)明的另一個實施例中,N層網(wǎng)絡(luò)還包括:卷積層、池化層、全相連層與決策層中的任意一個或多個。
[0175]圖9是本發(fā)明數(shù)據(jù)處理裝置的一個實施例的結(jié)構(gòu)圖。如圖9所示,本發(fā)明實施例的數(shù)據(jù)處理裝置,包括:
[0176]第一檢測單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)。
[0177]其中,N為大于1的整數(shù),i為整數(shù)、且l<i<N。
[0178]第一處理單元,用于根據(jù)第一檢測單元的檢測結(jié)果,若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),通過第i_l層網(wǎng)絡(luò)對該第i_l層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù); 以及通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第 i_l層網(wǎng)絡(luò)的訓練數(shù)據(jù);若存儲有第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),直接執(zhí)行所述通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第i_l層網(wǎng)絡(luò)的訓練數(shù)據(jù)的操作。
[0179]其中,i=N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為表示第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間差異的差異函數(shù);i〈N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)。
[0180]基于本發(fā)明實施例提供的數(shù)據(jù)處理裝置,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率, 進而提尚神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0181]圖10是本發(fā)明數(shù)據(jù)處理裝置的另一個實施例的結(jié)構(gòu)圖。如圖10所示,本實施例的數(shù)據(jù)處理裝置與圖9的數(shù)據(jù)處理裝置的不同之處在于,還包括:
[0182]比較單元,用于獲取第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間的差異,獲得差異函數(shù);
[0183]第一計算單元,用于計算差異函數(shù)對第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)的導(dǎo)數(shù),獲得第N層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0184]在本發(fā)明的另一個實施例中,差異函數(shù)具體為損失函數(shù)。
[0185]在本發(fā)明的另一個實施例中,第一處理單元基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第i_l層網(wǎng)絡(luò)的訓練數(shù)據(jù),具體用于基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得第i_l層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值;其中訓練數(shù)據(jù)具體為輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0186]圖11是本發(fā)明數(shù)據(jù)處理裝置的又一個實施例的結(jié)構(gòu)圖。如圖11所示,本實施例的數(shù)據(jù)處理裝置與圖10的數(shù)據(jù)處理裝置的不同之處在于,還包括:
[0187]第一識別單元,用于針對當前待處理的第i層網(wǎng)絡(luò),識別第i層網(wǎng)絡(luò)是否為卷積層;
[0188]第二計算單元,用于根據(jù)第一識別單元的識別結(jié)果,若第i層網(wǎng)絡(luò)為卷積層,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0189]圖12是本發(fā)明數(shù)據(jù)處理裝置的再一個實施例的結(jié)構(gòu)圖。如圖12所示,本實施例的數(shù)據(jù)處理裝置與圖11的數(shù)據(jù)處理裝置的不同之處在于,還包括:[〇19〇]第二識別單元,用于識別i_l的值是否大于1;若i_l的值大于1,以第i_l層網(wǎng)絡(luò)作為新的第i層網(wǎng)絡(luò),回到第一檢測單元執(zhí)行相應(yīng)的操作;若1-1的值等于1,回到第一識別單元執(zhí)行相應(yīng)的操作。
[0191]圖13是本發(fā)明數(shù)據(jù)處理裝置的再一個實施例的結(jié)構(gòu)圖。如圖13所示,本實施例的數(shù)據(jù)處理裝置與圖12的數(shù)據(jù)處理裝置的不同之處在于,還包括:
[0192]更新單元,用于分別采用各層網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值對各自層的卷積系數(shù)進行更新。
[0193]圖14是本發(fā)明數(shù)據(jù)處理裝置的再一個實施例的結(jié)構(gòu)圖。如圖14所示,本實施例的數(shù)據(jù)處理裝置與上述任意一個實施例的數(shù)據(jù)處理裝置的不同之處在于,還包括:
[0194]存儲單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,存儲第I層網(wǎng)絡(luò)的輸入樣本,選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù),所述其他層網(wǎng)絡(luò)為所述N層神經(jīng)網(wǎng)絡(luò)中除第I層網(wǎng)絡(luò)外的網(wǎng)絡(luò)層。
[0195]基于本發(fā)明實施例提供的數(shù)據(jù)處理裝置,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率,進而提尚神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0196]在本發(fā)明的另一個實施例中,選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)包括:對層類型不同的相鄰兩層網(wǎng)絡(luò),按照間隔層存儲數(shù)據(jù)的方式,存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)。其中,間隔層存儲具體為隔一層存儲一層,即一層存儲,一層不存儲,這樣以此類推。
[0197]在本發(fā)明的另一個實施例中,是從相鄰兩層網(wǎng)絡(luò)中,選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。例如,哪些層存儲哪些層不存儲是提前選擇好的,可以通過做標記或者存儲這些層的層編號來識別這些層。
[0198]圖15是本發(fā)明數(shù)據(jù)處理裝置的再一個實施例的結(jié)構(gòu)圖。如圖15所示,本實施例的數(shù)據(jù)處理裝置與上述任意一個實施例的數(shù)據(jù)處理裝置的不同之處在于,還包括:
[0199]第二檢測單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,檢測第i層是否為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層;
[0200]第二處理單元,用于根據(jù)第二檢測單元的檢測結(jié)果,若第i層是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,存儲該第i層的輸入數(shù)據(jù);否則,第i層不是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,不存儲該第i層的輸入數(shù)據(jù)。
[0201]基于本發(fā)明實施例提供的數(shù)據(jù)處理裝置,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率,進而提尚神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0202]在本發(fā)明的另一個實施例中,選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層包括:根據(jù)神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)屬性參數(shù),選擇神經(jīng)網(wǎng)絡(luò)中存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。其中,網(wǎng)絡(luò)屬性參數(shù)包括:神經(jīng)網(wǎng)絡(luò)的層數(shù)、每層網(wǎng)絡(luò)的層類型、每層網(wǎng)絡(luò)包含的神經(jīng)元的數(shù)量等。
[0203]在本發(fā)明上述任意一個實施例的數(shù)據(jù)處理裝置中,神經(jīng)網(wǎng)絡(luò)包括卷積神經(jīng)網(wǎng)絡(luò),N層網(wǎng)絡(luò)包括卷積層。
[0204]在本發(fā)明的另一個實施例中,N層網(wǎng)絡(luò)還包括:卷積層、池化層、全相連層與決策層中的任意一個或多個。
[0205]本發(fā)明實施例還提供了一種芯片,包括:上述任意一個實施例的數(shù)據(jù)處理裝置。
[0206]本發(fā)明實施例的芯片可以包括:專用集成電路ASIC、現(xiàn)場可編程門陣列FPGA、中央處理單元CPU或圖形處理單元GPU。
[0207]基于本發(fā)明實施例提供的芯片,包括:上述任意一個實施例的數(shù)據(jù)處理裝置,通過不存儲神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),利用所存儲的前一層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲得神經(jīng)網(wǎng)絡(luò)中某些層的輸入數(shù)據(jù),可以減少神經(jīng)網(wǎng)絡(luò)在訓練過程中對于存儲帶寬需求,節(jié)省數(shù)據(jù)存儲的帶寬,從而提高數(shù)據(jù)的傳輸效率,進而提高神經(jīng)網(wǎng)絡(luò)的訓練效率。
[0208]本發(fā)明實施例提供了以下技術(shù)方案:
[0209]1、一種數(shù)據(jù)處理方法,包括:
[0210]在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);其中,N為大于I的整數(shù),i為整數(shù)、且l<i<N;
[0211]若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),通過第1-Ι層網(wǎng)絡(luò)對該第1-Ι層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);
[0212]通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù);
[0213]若存儲有第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),直接執(zhí)行所述通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù)的操作;
[0214]其中,i=N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為表示第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間差異的差異函數(shù);i〈N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)。
[0215]2、根據(jù)I所述的方法,還包括:
[0216]獲取第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間的差異,獲得差異函數(shù);
[0217]計算差異函數(shù)對第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)的導(dǎo)數(shù),獲得第N層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0218]3、根據(jù)2所述的方法,所述差異函數(shù)具體為損失函數(shù)。
[0219]4、根據(jù)3所述的方法,所述基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù)包括:
[0220]基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得第1-Ι層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值;所述訓練數(shù)據(jù)具體為輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0221]5、根據(jù)4所述的方法,還包括:
[0222]針對當前待處理的第i層網(wǎng)絡(luò),識別第i層網(wǎng)絡(luò)是否為卷積層;
[0223]若第i層網(wǎng)絡(luò)為卷積層,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0224]6、根據(jù)5所述的方法,獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù)之后,還包括:
[0225]識別1-Ι的值是否大于I;
[0226]若1-Ι的值大于I,以第1-Ι層網(wǎng)絡(luò)作為新的第i層網(wǎng)絡(luò),執(zhí)行所述檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)的操作;
[0227]若1-Ι的值等于I,識別第I層網(wǎng)絡(luò)是否為卷積層;
[0228]若第I層網(wǎng)絡(luò)為卷積層,基于第I層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第I層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第I層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第I層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0229]7、根據(jù)6所述的方法,獲得網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值之后,還包括:
[0230]分別采用各層網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值對各自層的卷積系數(shù)進行更新。
[0231]8、根據(jù)I至7任意一項所述的方法,還包括:
[0232]在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,存儲第1層網(wǎng)絡(luò)的輸入樣本,選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù),所述其他層網(wǎng)絡(luò)為所述N層神經(jīng)網(wǎng)絡(luò)中除第1層網(wǎng)絡(luò)外的網(wǎng)絡(luò)層。
[0233]9、根據(jù)8所述的方法,所述選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)包括:
[0234]對層類型不同的相鄰兩層網(wǎng)絡(luò),按照間隔層存儲數(shù)據(jù)的方式,存儲所述其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)。
[0235]10、根據(jù)8所述的方法,還包括:
[0236]從相鄰兩層網(wǎng)絡(luò)中,選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。
[0237]11、根據(jù)10所述的方法,在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,檢測第i層是否為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層;
[0238]若第i層是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,存儲該第i層的輸入數(shù)據(jù);
[0239]否則,第i層不是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,不存儲該第i層的輸入數(shù)據(jù)。
[0240]12、根據(jù)10所述的方法,所述選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層包括:
[0241]根據(jù)所述神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)屬性參數(shù),選擇所述神經(jīng)網(wǎng)絡(luò)中存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。
[0242]13、根據(jù)12所述的方法,所述網(wǎng)絡(luò)屬性參數(shù)包括:所述神經(jīng)網(wǎng)絡(luò)的層數(shù)、每層網(wǎng)絡(luò)的層類型、每層網(wǎng)絡(luò)包含的神經(jīng)元的數(shù)量。
[0243]14、根據(jù)1至13任意一項所述的方法,所述神經(jīng)網(wǎng)絡(luò)包括卷積神經(jīng)網(wǎng)絡(luò),所述N層網(wǎng)絡(luò)包括卷積層。
[0244]15、根據(jù)14所述的方法,所述N層網(wǎng)絡(luò)還包括:卷積層、池化層、全相連層與決策層中的任意一個或多個。
[0245]16、一種數(shù)據(jù)處理裝置,包括:
[0246]第一檢測單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);其中,N為大于1的整數(shù),i為整數(shù)、且l<i<N;
[0247]第一處理單元,用于根據(jù)第一檢測單元的檢測結(jié)果,若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),通過第i_l層網(wǎng)絡(luò)對該第i_l層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù); 以及通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第 i_l層網(wǎng)絡(luò)的訓練數(shù)據(jù);若存儲有第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),直接執(zhí)行所述通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第i_l層網(wǎng)絡(luò)的訓練數(shù)據(jù)的操作;
[0248]其中,i=N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為表示第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間差異的差異函數(shù);i〈N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)。
[0249]17、根據(jù)16所述的裝置,還包括:
[0250]比較單元,用于獲取第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間的差異,獲得差異函數(shù);
[0251]第一計算單元,用于計算差異函數(shù)對第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)的導(dǎo)數(shù),獲得第N層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0252]18、根據(jù)17所述的裝置,所述差異函數(shù)具體為損失函數(shù)。
[0253]19、根據(jù)18所述的裝置,所述第一處理單元基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù)時,具體用于基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)的導(dǎo)數(shù),獲得第1-Ι層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值;所述訓練數(shù)據(jù)具體為輸出數(shù)據(jù)的導(dǎo)數(shù)值。
[0254]20、根據(jù)19所述的裝置,還包括:
[0255]第一識別單元,用于針對當前待處理的第i層網(wǎng)絡(luò),識別第i層網(wǎng)絡(luò)是否為卷積層;
[0256]第二計算單元,用于根據(jù)第一識別單元的識別結(jié)果,若第i層網(wǎng)絡(luò)為卷積層,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。
[0257]21、根據(jù)20所述的裝置,還包括:
[0258]第二識別單元,用于識別1-Ι的值是否大于I;若1-Ι的值大于1,以第1-Ι層網(wǎng)絡(luò)作為新的第i層網(wǎng)絡(luò),回到所述第一檢測單元執(zhí)行相應(yīng)的操作;若1-Ι的值等于I,回到所述第一識別單元執(zhí)行相應(yīng)的操作。
[0259]22、根據(jù)21所述的裝置,還包括:
[0260]更新單元,用于分別采用各層網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值對各自層的卷積系數(shù)進行更新。
[0261]23、根據(jù)16至22任意一項所述的裝置,還包括:
[0262]存儲單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,存儲第I層網(wǎng)絡(luò)的輸入樣本,選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù),所述其他層網(wǎng)絡(luò)為所述N層神經(jīng)網(wǎng)絡(luò)中除第I層網(wǎng)絡(luò)外的網(wǎng)絡(luò)層。
[0263]24、根據(jù)23所述的裝置,所述選擇性存儲其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)包括:
[0264]對層類型不同的相鄰兩層網(wǎng)絡(luò),按照間隔層存儲數(shù)據(jù)的方式,存儲所述其他層網(wǎng)絡(luò)的輸入數(shù)據(jù)。
[0265]25、根據(jù)23所述的裝置,還包括:
[0266]從相鄰兩層網(wǎng)絡(luò)中,選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。
[0267]26、根據(jù)25所述的裝置,還包括:
[0268]第二檢測單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,檢測第i層是否為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層;
[0269]第二處理單元,用于根據(jù)第二檢測單元的檢測結(jié)果,若第i層是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,存儲該第i層的輸入數(shù)據(jù);否則,第i層不是存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層,不存儲該第i層的輸入數(shù)據(jù)。
[0270]27、根據(jù)25所述的裝置,所述選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò)層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層包括:
[0271]根據(jù)所述神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)屬性參數(shù),選擇所述神經(jīng)網(wǎng)絡(luò)中存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。
[0272]28、根據(jù)27所述的裝置,所述網(wǎng)絡(luò)屬性參數(shù)包括:所述神經(jīng)網(wǎng)絡(luò)的層數(shù)、每層網(wǎng)絡(luò)的層類型、每層網(wǎng)絡(luò)包含的神經(jīng)元的數(shù)量。
[0273]29、根據(jù)16至28任意一項所述的裝置,所述神經(jīng)網(wǎng)絡(luò)包括卷積神經(jīng)網(wǎng)絡(luò),所述N層網(wǎng)絡(luò)包括卷積層。
[0274]30、根據(jù)29所述的裝置,所述N層網(wǎng)絡(luò)還包括:卷積層、池化層、全相連層與決策層中的任意一個或多個。
[0275]31、一種芯片,包括:16至30中任意一項所述的數(shù)據(jù)處理裝置。
[0276]32、根據(jù)31所述的芯片,所述芯片包括:專用集成電路ASIC、現(xiàn)場可編程門陣列FPGA、中央處理單元CPU或圖形處理單元GPU。本說明書中各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似的部分相互參見即可。對于裝置實施例而言,由于其與方法實施例基本對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0277]可能以許多方式來實現(xiàn)本發(fā)明的方法、裝置和系統(tǒng)。例如,可通過軟件、硬件、固件或者軟件、硬件、固件的任何組合來實現(xiàn)本發(fā)明的方法、裝置和系統(tǒng)。用于所述方法的步驟的上述順序僅是為了進行說明,本發(fā)明的方法的步驟不限于以上具體描述的順序,除非以其它方式特別說明。此外,在一些實施例中,還可將本發(fā)明實施為記錄在記錄介質(zhì)中的程序,這些程序包括用于實現(xiàn)根據(jù)本發(fā)明的方法的機器可讀指令。因而,本發(fā)明還覆蓋存儲用于執(zhí)行根據(jù)本發(fā)明的方法的程序的記錄介質(zhì)。
[0278]本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實施例是為了更好說明本發(fā)明的原理和實際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計適于特定用途的帶有各種修改的各種實施例。
【主權(quán)項】
1.一種數(shù)據(jù)處理方法,其特征在于,包括:在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的 輸入數(shù)據(jù);其中,N為大于1的整數(shù),i為整數(shù)、且l<i<N;若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),通過第i_l層網(wǎng)絡(luò)對該第i_l層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行 處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第 1-1層網(wǎng)絡(luò)的訓練數(shù)據(jù);若存儲有第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),直接執(zhí)行所述通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸 出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第i_l層網(wǎng)絡(luò)的訓練數(shù)據(jù)的操作;其中,i = N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為表示第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù) 據(jù)之間差異的差異函數(shù);i〈N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:獲取第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間的差異,獲得差異函數(shù);計算差異函數(shù)對第N層網(wǎng)絡(luò)的輸出數(shù)據(jù)的導(dǎo)數(shù),獲得第N層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和 該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-1層網(wǎng)絡(luò)的訓練數(shù)據(jù)包括:基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)對第i層網(wǎng)絡(luò)的輸 入數(shù)據(jù)的導(dǎo)數(shù),獲得第1-1層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值;所述訓練數(shù)據(jù)具體為輸出數(shù)據(jù)的導(dǎo)數(shù) 值。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括:針對當前待處理的第i層網(wǎng)絡(luò),識別第i層網(wǎng)絡(luò)是否為卷積層;若第i層網(wǎng)絡(luò)為卷積層,基于第i層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第i層網(wǎng)絡(luò)的輸出相關(guān) 數(shù)據(jù)對第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第i層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,獲取第1-1層網(wǎng)絡(luò)的訓練數(shù)據(jù)之后,還包 括:識別1-1的值是否大于1;若1-1的值大于1,以第1-1層網(wǎng)絡(luò)作為新的第i層網(wǎng)絡(luò),執(zhí)行所述檢測是否存儲有當前 待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù)的操作;若1-1的值等于1,識別第1層網(wǎng)絡(luò)是否為卷積層;若第1層網(wǎng)絡(luò)為卷積層,基于第1層網(wǎng)絡(luò)輸出數(shù)據(jù)的導(dǎo)數(shù)值,計算第1層網(wǎng)絡(luò)的輸出相關(guān) 數(shù)據(jù)對第1層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù),獲得第1層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,獲得網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值之后,還包括:分別采用各層網(wǎng)絡(luò)參數(shù)的導(dǎo)數(shù)值對各自層的卷積系數(shù)進行更新。7.根據(jù)權(quán)利要求1至6任意一項所述的方法,其特征在于,還包括:在對N層神經(jīng)網(wǎng)絡(luò)進行正向處理的過程中,存儲第1層網(wǎng)絡(luò)的輸入樣本,選擇性存儲其 他層網(wǎng)絡(luò)的輸入數(shù)據(jù),所述其他層網(wǎng)絡(luò)為所述N層神經(jīng)網(wǎng)絡(luò)中除第1層網(wǎng)絡(luò)外的網(wǎng)絡(luò)層。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,還包括:從相鄰兩層網(wǎng)絡(luò)中,選擇本層輸入數(shù)據(jù)量大、和/或前一層網(wǎng)絡(luò)的數(shù)據(jù)處理量小的網(wǎng)絡(luò) 層作為存儲輸入數(shù)據(jù)的網(wǎng)絡(luò)層。9.一種數(shù)據(jù)處理裝置,其特征在于,包括: 第一檢測單元,用于在對N層神經(jīng)網(wǎng)絡(luò)進行反向處理的過程中,檢測是否存儲有當前待處理的第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);其中,N為大于I的整數(shù),i為整數(shù)、且l<i<N; 第一處理單元,用于根據(jù)第一檢測單元的檢測結(jié)果,若未存儲第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),通過第1-Ι層網(wǎng)絡(luò)對該第1-Ι層網(wǎng)絡(luò)的輸入數(shù)據(jù)進行處理,獲得第i層網(wǎng)絡(luò)的輸入數(shù)據(jù);以及通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù);若存儲有第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),直接執(zhí)行所述通過預(yù)設(shè)方式,基于該第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)和該第i層網(wǎng)絡(luò)的輸入數(shù)據(jù),獲取第1-Ι層網(wǎng)絡(luò)的訓練數(shù)據(jù)的操作; 其中,i = N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為表示第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)與參考數(shù)據(jù)之間差異的差異函數(shù);i〈N時,所述第i層網(wǎng)絡(luò)的輸出相關(guān)數(shù)據(jù)為第i層網(wǎng)絡(luò)的輸出數(shù)據(jù)。10.一種芯片,其特征在于,包括:權(quán)利要求9所述的數(shù)據(jù)處理裝置。
【文檔編號】G06N3/02GK105956658SQ201610282822
【公開日】2016年9月21日
【申請日】2016年4月29日
【發(fā)明人】張力, 范靖, 楊存永
【申請人】北京比特大陸科技有限公司