IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 中興通訊股▲ふん▼有限公司の特許一覧

特許7444870データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体
<>
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図1
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図2
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図3
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図4
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図5
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図6
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図7
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図8
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図9
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図10
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図11
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図12
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図13
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図14
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図15
  • 特許-データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-27
(45)【発行日】2024-03-06
(54)【発明の名称】データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体
(51)【国際特許分類】
   G06N 3/04 20230101AFI20240228BHJP
   G06N 3/08 20230101ALI20240228BHJP
【FI】
G06N3/04
G06N3/08
【請求項の数】 9
(21)【出願番号】P 2021521345
(86)(22)【出願日】2019-09-27
(65)【公表番号】
(43)【公表日】2022-01-14
(86)【国際出願番号】 CN2019108580
(87)【国際公開番号】W WO2020078200
(87)【国際公開日】2020-04-23
【審査請求日】2022-08-05
(31)【優先権主張番号】201811223953.9
(32)【優先日】2018-10-19
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】511151662
【氏名又は名称】中興通訊股▲ふん▼有限公司
【氏名又は名称原語表記】ZTE CORPORATION
【住所又は居所原語表記】ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan Shenzhen,Guangdong 518057 China
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】ユー,ジンチン
(72)【発明者】
【氏名】リャン,ミンチャオ
(72)【発明者】
【氏名】ヤン,シェンナン
(72)【発明者】
【氏名】リュウ,ジィ
【審査官】青木 重徳
(56)【参考文献】
【文献】特開平04-051386(JP,A)
【文献】特開2001-175636(JP,A)
【文献】宇都宮 誉博 ほか,重みの2のべき乗近似を用いたCNNのFPGA実装に関する一検討,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2017年05月15日,第117巻, 第46号,p.25-30
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/04
G06N 3/08
JSTPlus/JMEDPlus/JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークにおける、コンピュータにより実行されるデータ処理方法であって、
正数と負数の値の絶対値が同じである重みを1種類に分類し、次に共通因子に2の累乗を掛けるという方式に従って各種類の重みを分類することと、
負数の値の重みを1種類に分類し、正数の値の重みを別の種類に分類し、次に共通因子に2の累乗を掛けるという方式に従って各種類の重みを分類することと、
共通因子に2の累乗を掛けるという方式に従って直接分類することとの1つを含む分類ルールに従って重みが分類された少なくとも1種類の重み及び各種類の重みに対応する特徴データを取得するステップと、
前記少なくとも1種類の重みに基づき、各種類の重みに対応する、共通因子である分類特徴を取得するステップと、
前記少なくとも1種類の重みと前記各種類の重みに対応する分類特徴に基づいて、特徴データに対応する分類データを取得し、2の累乗である前記分類データに基づいて特徴データ計算して、各種類の重みに対応する第1の処理結果を得るステップと、
前記分類特徴と前記第1の処理結果に基づいて乗算及び加算して、前記特徴データと前記少なくとも1種類の重みに基づいて畳み込み演算を行った第2の処理結果を得るステップと、を含む、データ処理方法。
【請求項2】
少なくとも1種類の重みを取得する前記ステップの前に、
履歴重みを取得するステップと、
設定されたスクリーニング条件に従って前記履歴重みをスクリーニングし、スクリーニングされた重みを得るステップと、
設定された分類ルールに従って、前記スクリーニングされた重みを分類して、前記少なくとも1種類の重みを得るステップと、をさらに含む、請求項1に記載の方法。
【請求項3】
前記分類特徴と前記第1の処理結果に基づいて計算して、前記特徴データと前記少なくとも1種類の重みに基づいて畳み込み演算を行った第2の処理結果を得る前記ステップは、
設定されたソートルールに従って、各種類の重みに対応する第1の処理結果をソートして、ソートされた第1の処理結果を得るステップと、
前記ソートされた第1の処理結果から1つの処理対象の第1の処理結果を配列順序に従って順次選択するステップと、
前記分類特徴と前記処理対象の第1の処理結果に基づいて計算して、第1の計算結果を得るステップと、
現在得られている第1の計算結果と得られた第1の計算結果を計算して、第2の計算結果を得るステップと、
前記第2の計算結果が負数であると確定する場合、前記第2の計算結果を第2の処理結果とするステップと、を含む、請求項2に記載の方法。
【請求項4】
前記分類特徴と前記第1の処理結果に基づいて計算して、前記特徴データと前記少なくとも1種類の重みに基づいて畳み込み演算を行った第2の処理結果を得る前記ステップの後、
前記特徴データの第1の次元及び対応するネットワーク次元を取得するステップと、
前記第2の処理結果の第2の次元を取得するステップと、
前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と予定閾値範囲に従って、前記第2の処理結果に対応する現在のネットワーク次元を調整するステップと、
第2の処理結果に対応する重みを取得するステップと、
前記現在のネットワーク次元と前記第2の処理結果に対応する重みに基づき、前記第2の処理結果を計算して第3の処理結果を得るステップと、をさらに含む、請求項1に記載の方法。
【請求項5】
前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と予定閾値範囲に従って、前記第2の処理結果に対応する現在のネットワーク次元を調整する前記ステップは、
前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と調整対象のネットワーク次元に対してモジュロ演算を行い、モジュロ結果を得るステップと、
前記モジュロ結果と前記調整対象のネットワーク次元に基づいて比して、比の結果を得るステップと、
前記比の結果が予定閾値範囲にある場合、前記調整対象の次元が前記第2の処理結果に対応する現在のネットワーク次元であると確定するステップと、を含む、請求項に記載の方法。
【請求項6】
前記分類データに基づいて前記特徴データを計算して、各種類の重みに対応する第1の処理結果を得る前記ステップは、
前記分類データに基づいて前記特徴データに対して左シフト計算を行って、各種類の重みに対応する第1の処理結果を得るステップを含み、
記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得る前記ステップは、
前記分類特徴と前記第1の処理結果に基づいて乗算及び加算を行って、第2の処理結果を得るステップを含む、請求項に記載の方法。
【請求項7】
ニューラルネットワークにおけるデータ処理装置であって、
正数と負数の値の絶対値が同じである重みを1種類に分類し、次に共通因子に2の累乗を掛けるという方式に従って各種類の重みを分類することと、
負数の値の重みを1種類に分類し、正数の値の重みを別の種類に分類し、次に共通因子に2の累乗を掛けるという方式に従って各種類の重みを分類することと、
共通因子に2の累乗を掛けるという方式に従って直接分類することとの1つを含む分類ルールに従って重みが分類された少なくとも1種類の重み及び各種類の重みに対応する特徴データを取得するように構成される第1の取得モジュールと、
前記少なくとも1種類の重みに基づき、各種類の重みに対応する、共通因子である分類特徴を取得するように構成される第2の取得モジュールと、
前記少なくとも1種類の重みと前記各種類の重みに対応する分類特徴に基づいて、特徴データに対応する分類データを取得し、2の累乗である前記分類データに基づいて特徴データ計算して、各種類の重みに対応する第1の処理結果を得るように構成される第1の獲得モジュールと、
前記分類特徴と前記第1の処理結果に基づいて乗算及び加算して、前記特徴データと前記少なくとも1種類の重みに基づいて畳み込み演算を行った第2の処理結果を得るように構成される第2の獲得モジュールとを備える、データ処理装置。
【請求項8】
データ処理装置であって、前記データ処理演算装置は、少なくともプロセッサと、前記プロセッサで実行可能な命令を記憶するためのメモリと、前記プロセッサと前記メモリを接続するためのバスとを備え、前記命令が前記プロセッサに実行されると請求項1~のいずれか1項に記載の方法を実現するデータ処理装置。
【請求項9】
コンピュータプログラムを記憶するコンピュータで読み取り可能な記憶媒体であって、前記コンピュータプログラムがプロセッサに実行されると請求項1~のいずれか1項記載の方法を実現する、コンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本出願は、2018年10月19日に提出された、出願名称が「データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体」であり、出願番号が201811223953.9である中国特許出願に対する優先権を主張し、そのすべての内容が参照により本出願に組み込まれる。
【0002】
本出願は、人工知能ニューラルネットワーク技術の分野に関し、特にデータ処理方法及び装置、コンピュータで読み取り可能な記憶媒体に関する。
【背景技術】
【0003】
深層ニューラルネットワーク(DNN:Deep Neural Network)は、人工ニューラルネットワークであり、深層学習は、実質的に多くの隠れ層を有する機械学習モデルと大量のトレーニングデータを構築することで、より有用な特徴を学習して、最終的に分類又は予測の精度を向上させることであり、音声分析と画像識別の分野で広く応用されている。
【0004】
深層学習技術の継続的な発展に伴い、深層ニューラルネットワークの演算量が増加しているため、深層ニューラルネットワークの演算量を効果的に低減させることは、現在、解決すべき緊急の課題になっている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述の技術的課題を解決するために、本出願の実施例は、ニューラルネットワークの演算量を低減させることができるデータ処理方法及び装置、コンピュータで読み取り可能な記憶媒体を提供することが望まれる。
【課題を解決するための手段】
【0006】
本出願の技術的解決策は次のように実現される。
【0007】
第1の態様では、本出願の実施例は、少なくとも1種類の重み及び各種類の重みに対応する特徴データを取得するステップと、前記少なくとも1種類の重みに基づき、各種類の重みに対応する分類特徴を取得するステップと、前記少なくとも1種類の重みと前記特徴データに基づいて計算し、各種類の重みに対応する第1の処理結果を得るステップと、前記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得るステップと、を含む、データ処理方法を提供する。
【0008】
上述の解決策では、少なくとも1種類の重みを取得する前記ステップの前に、履歴重みを取得するステップと、設定されたスクリーニング条件に従って前記履歴重みをスクリーニングして、スクリーニングされた重みを得るステップと、設定された分類ルールに従って、前記スクリーニングされた重みを分類して、前記少なくとも1種類の重みを得るステップと、をさらに含む。
【0009】
上述の解決策では、前記少なくとも1種類の重みと前記特徴データに基づいて計算して、各種類の重みに対応する第1の処理結果を得る前記ステップは、前記少なくとも1種類の重みと前記分類特徴に基づき、前記特徴データに対応する分類データを取得するステップと、前記分類データに基づいて前記特徴データを計算して、各種類の重みに対応する第1の処理結果を得るステップと、を含む。
【0010】
上述の解決策では、前記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得る前記ステップは、設定されたソートルールに従って、各種類の重みに対応する第1の処理結果をソートし、ソートされた第1の処理結果を得るステップと、前記ソートされた第1の処理結果から1つの処理対象の第1の処理結果を配列順序に従って順次選択するステップと、前記分類特徴と前記処理対象の第1の処理結果に基づいて計算して、第1の計算結果を得るステップと、現在得られている第1の計算結果と得られた第1の計算結果を計算して、第2の計算結果を得るステップと、前記第2の計算結果が負数であると確定する場合、前記第2の計算結果を第2の処理結果とするステップと、を含む。
【0011】
上述の解決策は、前記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得る前記ステップの後、前記特徴データの第1の次元及び対応するネットワーク次元を取得するステップと、前記第2の処理結果の第2の次元を取得するステップと、前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と予定閾値範囲に従って、前記第2の処理結果に対応する現在のネットワーク次元を調整するステップと、第2の処理結果に対応する重みを取得するステップと、前記現在のネットワーク次元と前記第2の処理結果に対応する重みに基づき、前記第2の処理結果を計算して第3の処理結果を得るステップと、をさらに含む。
【0012】
上述の解決策では、前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と予定閾値範囲に従って、前記第2の処理結果に対応する現在のネットワーク次元を調整する前記ステップは、前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と調整対象のネットワーク次元に対してモジュロ演算を行い、モジュロ結果を得るステップと、前記モジュロ結果と前記調整対象のネットワーク次元に基づいて比して、比の結果を得るステップと、前記比の結果が予定閾値範囲にある場合、前記調整対象の次元が前記第2の処理結果に対応する現在のネットワーク次元であると確定するステップと、を含む。
【0013】
上述の解決策では、前記分類データに基づいて前記特徴データを計算して、各種類の重みに対応する第1の処理結果を得る前記ステップは、前記分類データに基づいて前記特徴データに対して左シフト計算を行い、各種類の重みに対応する第1の処理結果を得るステップを含み、それに応じて、前記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得る前記ステップは、前記分類特徴と前記第1の処理結果に基づいて乗算及び加算を行い、第2の処理結果を得るステップを含む。
【0014】
第2の態様では、本出願の実施例は、少なくとも1種類の重み及び各種類の重みに対応する特徴データを取得するように構成される第1の取得モジュールと、前記少なくとも1種類の重みに基づき、各種類の重みに対応する分類特徴を取得するように構成される第2の取得モジュールと、前記少なくとも1種類の重みと前記特徴データに基づいて計算し、各種類の重みに対応する第1の処理結果を得るように構成される第1の獲得モジュールと、前記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得るように構成される第2の獲得モジュールと、を備えるデータ処理装置を提供する。
【0015】
第3の態様では、本出願の実施例は、プロセッサと、前記プロセッサで実行可能な命令を記憶するメモリと、前記プロセッサ、前記メモリを接続するためのバスとを備え、前記命令が前記プロセッサに実行されると上述データ処理方法を実現する、データ処理装置を提供する。
【0016】
第4の態様では、本出願の実施例は、データ処理プログラムを記憶しており、前記データ処理プログラムがプロセッサに実行されると上述データ処理方法を実現する、コンピュータで読み取り可能な記憶媒体を提供する。
【図面の簡単な説明】
【0017】
図1】本出願の実施例によるデータ処理方法の実現プロセスの概略図の一である。
図2】本出願の実施例によるデータ処理方法の実現プロセスの概略図の二である。
図3】本出願の実施例によるデータ処理方法の実現プロセスの概略図の三である。
図4】本出願の実施例によるデータ処理方法の実現プロセスの概略図の四である。
図5】本出願の実施例によるデータ処理方法の実現プロセスの概略図の五である。
図6】本出願の実施例によるデータ処理方法の実現プロセスの概略図の六である。
図7】本出願の実施例によるニューラルネットワークハードウェアアーキテクチャの構成構造図である。
図8】本出願の実施例による計算ユニットの構造図である。
図9】本出願の実施例による計算ユニットにおける分類演算ユニットの構造図である。
図10】本出願の実施例による計算ユニットにおける1つのCP演算ユニットが1つの乗算及び加算ユニットに対応する構造図である。
図11】本出願の実施例による計算ユニットにおける1つのCP演算ユニットが複数の乗算及び加算ユニットに対応する構造図である。
図12】本出願の実施例によるデータ処理方法の実現プロセスの概略図の七である。
図13】本出願の実施例による計算ユニットにおける次元マッチング構成の概略図であるである。
図14】本出願の実施例による計算ユニットにおける演算構造の概略図である。
図15】本出願の実施例によるデータ処理装置の概略図である。
図16】本出願の実施例によるデータ処理装置の構成構造図である。
【発明を実施するための形態】
【0018】
以下に本出願の実施形態における図面を組み合わせて、本出願の実施例における技術的解決策を明確かつ全面的に説明する。
【0019】
実施例1
本出願の実施例は、データ処理方法を提供する。図1は本出願の実施例によるデータ処理方法の実現プロセスの概略図の一である。図1に示すように、本出願の実施例では、データ処理方法を実現するためには、以下のステップを含むことができる。
【0020】
ステップ101において、少なくとも1種類の重み及び各種類の重みに対応する特徴データを取得する。
【0021】
本出願の実施例では、特徴データと重みを計算する前に、少なくおとも1種類の重み及び各種類の重みに対応する特徴データを取得する必要がある。
【0022】
なお、取得された少なくとも1種類の重みは、スクリーニング条件と分類ルールに従って予め処理して得られた分類後の重みであり、かつ、各重みのそれぞれが対応する特徴データに対応しているため、各種類の重みインジケータ、重みに対応する位置インデックス情報、及び各種類の重みに対応する特徴データを記憶ユニットに予め記憶し、重みインジケータが重みを識別するために使用され、重みに対応する位置インデックス情報が特徴データの記憶位置を識別するために使用され、即ち重みインジケータが重みに対応し、重みが位置インテックスに対応するため、重みインジケータは位置インデックス情報に対応している。
【0023】
ここで、重みインジケータ及び対応する位置インデックス情報を記憶ユニットから順次読み出し、重みインジケータによって重みを復元し、位置インデックス情報によって対応する位置の特徴データ、即ち重みに対応する特徴データをインデックス付けし、当該重み及び特徴に対して畳み込み演算を行い、このように類推して、すべての畳み込み操作を完了する。
【0024】
例示的には、上述のスクリーニング条件は、設定された閾値の重みを除去し、設定された閾値でない重みを保持することであってもよく、例えば、閾値が0である場合、スクリーニング条件は、値が0である重みを除去し、値が0でない重みを保持することである。
【0025】
上述分類ルールは、正数と負数の値の絶対値が同じである重みを1種類に分類し、次に共通因子に2の累乗を掛けるという方式に従って各種類の重みを分類することであってもよいし、負数の値の重みを1種類に分類し、正数の値の重みを別の種類に分類し、次に共通因子に2の累乗を掛けるという方式に従って各種類の重みを分類することでよいし、共通因子に2の累乗を掛けるという方式に従って直接分類することであってもよく、例えば、値が1、3、4、6である重みは、共通因子に2の累乗を掛けるという方式に従って、1=1*20、3=3*20、4=1*22、6=3*21に変換されてもよく、共通因子が抽出された後、共通因子が3である重み3及び重み6を1種類に分類し、共通因子が1である重み1及び重み4を別の種類に分類することができ、上述のスクリーニング条件と分類ルールは、本出願の実施例で限定されていない。
【0026】
ステップ102において、少なくとも1種類の重みに基づき、各種類の重みに対応する分類特徴を取得する。
【0027】
本出願の実施例では、少なくとも1種類の重みが取得された後、少なくとも1種類の重みに基づいて各種類の重みに対応する分類特徴を取得することができる。
【0028】
なお、重みを分類することで、各種類の重みに対応する分類特徴を取得することができ、例えば、1、3、4、6の重みは、共通因子に2の累乗を掛けるという方式に従って1=1*20、3=3*20、4=1*22、6=3*21に変換されてもよく、このようにして、共通因子3の重みを1種類に分類することができ、この種類の重み3及び重み6に対応する共通因子3は、この種類の重みに対応する分類特徴であり、共通因子1の重みを別の種類に分類し、この種類の重み1及び重み4に対応する共通因子1は、この種類の重みに対応する分類特徴である。
【0029】
ステップ103において、少なくとも1種類の重みと特徴データに基づいて計算して、各種類の重みに対応する第1の処理結果を得る。
【0030】
本出願の実施例では、重み及び特徴データが取得された後、重みに基づいて分類特徴を取得し、分類特徴と重みに基づいて計算し、特徴データに対応する分類データを得て、分類データに基づいて特徴データに対して加算を行って各種類の重みに対応する第1の処理結果を得ることができる。
【0031】
例示的には、1種類の重みの重み値がそれぞれ1と4であり、重み1に対応する特徴データが1であり、重み4に対応する特徴データが2であり、別の種類の重みの重み値がそれぞれ6及び-12であり、重み6に対応する特徴データが3であり、重み-12に対応する特徴データが4であると、重みは、共通因子に2の累乗を掛けるという方式に従って1=1*20、4=1*22、6=3*21、12=3*22に変換されてもよく、重み1及び重み4に対応する分類特徴、即ち共通因子が1であり、対応する分類データ、即ち2の累乗がそれぞれ0と2であり、重み6と重み-12に対応する分類特徴、即ち共通因子が3であり、対応する分類データ、即ち2の累乗がそれぞれ1、2である。
【0032】
以上のことから、分類データに基づいて特徴データを加算し、各種類の重みに対応する第1の処理結果を得ることがわかり、具体的には、1種類の重み1及び重み4に対応する第1の処理結果は(1<<0)+(2<<2)=1+8=9であってもよく、別の種類の重み6及び重み-12に対応する第1の処理結果は(3<<1)-(4<<2)=6-16=-10であってもよい。
【0033】
なお、負数の重みに対応する計算は負数加算、即ち減算である。
【0034】
本出願の実施例では、ステップ102で得られた分類特徴及びステップ103で得られた第1の処理結果は、ステップ102及びステップ103に従って第2の処理結果を計算するステップ104に用いられ、したがって、ステップ103は、ステップ102の前に実行されてもよく、本出願の実施例ではステップ102とステップ103の実行順序は、具体的に限定されない。
【0035】
ステップ104において、分類特徴と第1の処理結果に基づいて計算して、第2の処理結果を得る。
【0036】
本出願の実施例では、分類特徴と第1の処理結果が取得された後、分類特徴と第1の処理結果に基づいて乗算及び加算を行い、第2の処理結果を得る。
【0037】
例示的には、重み1、重み-12、重み4、重み6について、共通因子に2の累乗を掛けるという方式に従って、重み1及び重み4を1種類に分類し、重み6及び重み-12を別の種類に分類し、重み1及び重み4に対応する第1の処理結果が9であり、対応する分類特徴が1であり、重み6及び重み-12に対応する第1の処理結果が-10であり、対応する分類特徴が3であり、第2の処理結果は、9*1+(-10)*3=-21である。
【0038】
図2は本出願の実施例によるデータ処理方法の実現プロセスの概略図の二である。図2に示すように、本出願の実施例では、少なくとも1種類の重みデータを取得する前、即ちステップ101の前にデータ処理方法を実現するために、以下のステップをさらに含むことができる。
【0039】
ステップ101aにおいて、履歴重みを取得する。
【0040】
本出願の実施例では、十分なサンプルデータを収集することにより、予定モデル例えば人工ニューラルネットワークのバックプロパゲーションアルゴリズムに従ってサンプルデータをトレーニングして履歴重みを得る。
【0041】
ステップ101bにおいて、スクリーニング条件に従って履歴重みをスクリーニングし、スクリーニングされた重みを得る。
【0042】
本出願の実施例では、ニューラルネットワークのスパース演算をサポートするために、設定されたスクリーニング条件に従って履歴重みをスクリーニングし、スクリーニングされた重みを得ることができる。
【0043】
例示的には、上述のスクリーニング条件は、値が0である重みを削除し、0でない値の重みを保持することであってもよく、即ち、値が0でない重みのみを記憶し、値が0である重みを記憶及び計算する必要がなく、このようにして記憶帯域幅だけでなく、計算量を低減させることができ、それによってニューラルネットワークのスパース演算をサポートする。
【0044】
ステップ101cにおいて、設定された分類ルールに従って、スクリーニングされた重みを分類して、少なくとも1種類の重みを得る。
【0045】
本出願の実施例では、スクリーニングされた重みが得られた後、分類ルールに従って、スクリーニングされた重みを分類し、少なくとも1種類の重みを取得し、当該分類ルールは、正数、負数の値の絶対値が同じである重みを1種類に分類し、次に共通因子に2の累乗を掛けるという方式に従って、分類された重みを分類し続けることであってもよい。
【0046】
例示的には、例えば、8ビットの固定小数点を例にとると、-128から127の重みには256のケースがあり、正数、負数の値の絶対値が同じである重みを1種類に分類し、分類された重みには128つのケースがあり、分類された重みに対して、共通因子に2の累乗を掛けるという方式に従って128つのケースを分類し、例えば1、2、4、8、16、32、64を1種類に分類し、対応する分類特徴、即ち共通因子が1であり、3、6、12、24、48、96を1種類に分類し、対応する分類特徴、即ち共通因子が3であり、分類した後、重みを64つのケースに組み合わせ、これより、元の256つのケースを分類して64つのケースに整理することができる。
【0047】
図3は本出願の実施例によるデータ処理方法の実現プロセスの概略図の三である。図3に示すように、本出願の実施例では、少なくとも1種類の重みと特徴データに基づいて計算し、各種類の重みに対応する第1の処理結果を得て、即ちデータ処理方法を実現するために、ステップ103は以下のステップをさらに含むことができる。
【0048】
ステップ103aにおいて、少なくとも1種類の重みと分類特徴に基づき、特徴データに対応する分類データを取得する。
【0049】
本出願の実施例では、重みと分類特徴が取得された後、少なくとも1種類の重みと分類特徴に基づき、特徴データに対応する分類データを取得することができる。
【0050】
例示的には、1種類の重みの重み値が1と4であり、対応する特徴データがそれぞれ1と2であり、別の種類の重みの重み値が6と-12であり、対応する特徴データがそれぞれ3と4であり、重みは、共通因子に2の累乗を掛けるという方式に従って1=1*20、4=1*22、6=3*21、12=3*22に変換されてもよく、ここで、1種類の重み1及び重み4の分類特徴、即ち共通因子が1であり、対応する分類データ、即ち2の累乗がそれぞれ0と2であり、別の種類の重み6と重み-12に対応する分類特徴、即ち共通因子が3であり、対応する分類データ、即ち2の累乗がそれぞれ1、2である。
【0051】
ステップ103bにおいて、分類データに基づいて特徴データに対して左シフト計算を行い、各種類の重みに対応する第1の処理結果を得る。
【0052】
ステップ104aにおいて、分類特徴と第1の処理結果に基づいて乗算及び加算を行い、第2の処理結果を得る。
【0053】
例示的には、1種類の重みの重み値が1と4であり、対応する特徴データがそれぞれ1と2であり、対応する分類データ、即ち2の累乗がそれぞれ0と2であり、対応する分類特徴、即ち共通因子が1であり、別の種類の重みの重み値6と-12であり、対応する特徴データがそれぞれ3と4であり、対応する分類データ、即ち2の累乗がそれぞれ1と2であり、対応する分類特徴、即ち共通因子が3であり、重み1及び重み4に対応する第1の処理結果が(1<<0)+(2<<2)=1+8=9であり、重み6及び重み-12に対応する第1の処理結果が(3<<1)-(4<<2)=6-16=-10であり、さらに、分類特徴と第1の処理結果に基づいて乗算してから加算し、即ちまず9*1を乗算して9を得て、次に10*3を乗算して30を得て、次に加算して第2の処理結果9+(-30)=-21を得る。
【0054】
上述の説明に基づいて、例えば8ビットの固定小数点を例にとると、-128から127の重みには256つのケースがあり、従来技術では、重みと対応する特徴データとを直接乗算してから加算し、したがって、第2の処理結果を得るために256回の乗算を行う必要があり、計算量を低減させるために、本出願の実施例では、まずすべての重みを分類して64つ種類の重みを得て、次に分類された各種類の重みと対応する特徴データに基づいてシフトしてから加算して64つ種類の重みに対応する第1の処理結果を得て、次に前記第1の処理結果と対応する分類特徴を乗算してから加算し、即ち本出願の実施例では、第2の処理結果を得るために、64回の乗算を行うだけでよく、したがって、本出願の実施例は、計算量を効果的に減らすという効果を達成することができる。
【0055】
図4は本出願の実施例によるデータ処理方法の実現プロセスの概略図の四である。図4に示すように、本出願の実施例では、分類特徴と第1の処理結果に基づいて計算し、第2の処理結果を得て、即ちデータ処理方法を実現するために、ステップ104は以下のステップを含むことができる。
【0056】
ステップ104a1において、設定されたソートルールに従って、各種類の重みに対応する第1の処理結果をソートして、ソートされた第1の処理結果を得る。
【0057】
本出願の実施例では、各種類の重みに対応する第1の処理結果が取得された後、設定されたソートルールに従って、各種類の重みに対応する第1の処理結果をソートして、ソートされた第1の処理結果を得ることができる。ここで、各種類の重みに対して1つの対応する第1の処理結果を得ると、各種類の重みに対応する第1の処理結果をソートし、即ち得られた各第1の処理結果をソートし、つまり、第1の処理結果の数は重みの種類の数と同じである。
【0058】
なお、設定されたソートルールに従って各種類の重みに対応する第1の処理結果をソートする前に、本出願の実施例は、まずステップ101aから101cに従って重みを前処理する必要があり、具体的には、前処理は、まず重み値の正と負を識別し、値が正数である重みを1種類に分類し、値が負数である重みを別の種類に分類することであってもよく、即ち、正数と負数に従って、スクリーニングされた重みを2種類に分類し、次に共通因子に2の累乗を掛けるという方式に従って、当該正数及び負数の重みをそれぞれ分類し続け、少なくとも1種類の重みと各種類の重みに対応する第1の処理結果を得て、次に、設定されたソートルールに従って、各種類の重みに対応する第1の処理結果をソートして、各種類の重みに対応する、ソートされた第1の処理結果を得ることができる。
【0059】
ここで、ソートルールは、値が正数である第1の処理結果をソート結果の前に位置させ、値が負数である第1の処理結果をソート結果の後に位置させることであってもよく、ソートルールに従って、各種類の重みに対応する第1の処理結果をソートし、ソートされた第1の処理結果を得ることは、まず第1の処理結果の値が正数又は負数であるか否かを識別し、第1の処理結果の値の正負に従って第1の処理結果を正数の第1の処理結果と負数の第1の処理結果に分類し、正数の第1の処理結果を選択してソート結果の前に位置させ、負数の第1の処理結果を選択してソート結果の後、即ち正数の第1の処理結果の後に位置させることを含み、このようにして第2の処理結果を計算して得るときに前の正数の第1の処理結果を計算してから負数の第1の処理結果を計算することが容易になる。
【0060】
ソート結果の前に位置する正数の第1の処理結果に対して、負数の第1の処理結果の前に計算を行うことが保証される限り、大きさの順序でソートしてもよく、ランダムにソートしてもよく、ソート結果の後に位置する負数の第1の処理結果に対して、ランダムにソートすることができ、演算量をさらに低減させるために、ソート結果の後に位置するすべての負数の第1の処理結果を大きさの順序でソートすることができる。
【0061】
ステップ104b1において、ソートされた第1の処理結果から処理対象の第1の処理結果を配列順序に従って順次選択する。
【0062】
なお、ここでの配列順序は、正数の第1の処理結果を前に位置させ、負数の第1の処理結果のすべてを正数の第一の処理結果の後に位置させることであってもよく、本出願の実施例では、処理対象の第1の処理結果を配列順序に従って順次選択することは、まず最も前に配列された正数の第1の処理結果を選択し、各正数の第1の処理結果が順次選択されて計算された後、後の負数の重みに対応する第1の処理結果を選択して計算することであってもよい。
【0063】
ステップ104c1において、処理対象の第1の処理結果と分類特徴に基づいて計算し、第1の計算結果を得る。
【0064】
ステップ104d1において、現在得られている第1の計算結果と得られた第1の計算結果を計算して、第2の計算結果を得る。
【0065】
ステップ104e1において、第2の計算結果が負数であると確定する場合、第2の計算結果を第2の処理結果とする。
【0066】
本出願の実施例では、処理対象の第1の処理結果を選択した後、処理対象の第1の処理結果と分類特徴に基づいて計算し、第1の計算結果を得て、現在得られている第1の計算結果と得られた第1の計算結果を計算し、第2の計算結果を得て、第2の計算結果が負数であるか否かを判断し、第2の計算結果が負数であると、配列順序に従って、次の選択される第1の処理結果も負数であるはずであり、このとき、次の選択されるもの計算プロセスを停止し、第2の計算結果を第2の処理結果として直接使用し、第2の計算結果が正数であると、次の処理対象の第1の処理結果を選択し続けて計算して第2の計算結果を得て、当該第2の計算結果が負数であるか否かを再度判断し、このように類推して、第2の計算結果が負数であると確定するか、配列順序の後にある第1の処理結果の計算が完了されるまで続く。
【0067】
例示的には、ソートされた第1の処理結果がA、B、C、Dであり、対応する分類特徴がそれぞれA1、B1、C1、D1であると、まずA*A1を計算し、A*A1が負数であるか否かを判断し、第2の計算結果A*A1が負数であると、第2の計算結果A*A1を第2の処理結果として直接使用し、第2の計算結果A*A1が正数であると、B*B1を計算し、現在得られている第1の計算結果B*B1と得られた第1の計算結果A*A1を計算して第2の計算結果A*A1+B*B1を計算し、当該第2の計算結果A*A1+B*B1が負数であるか否かを判断し、当該第2の計算結果A*A1+B*B1が負数であると、当該第2の計算結果A*A1+B*B1を第2の処理結果として直接使用し、当該第2の計算結果A*A1+B*B1が正数であると、C*C1を計算し、現在得られている第1の計算結果C*C1と得られた第1の計算結果A*A1+B*B1を計算して第2の計算結果A*A1+B*B1+C*C1を得て、当該第2の計算結果A*A1+B*B1+C*C1が負数であるか否かを判断し、このように類推して、第2の計算結果が負数であると確定するか、配列順序の後にある第1の処理結果Dの計算が完了されるまで続く。
【0068】
なお、深層ニューラルネットワークの計算では、第2の処理結果が負数である限り、正規化線形ユニット(ReLU:Rectified Linear Unit)の活性化関数に対してすべて0出力と見なされ、上述の説明から、本出願の実施例では計算プロセス全体が改善されたことがわかり、まず、すべての重みを正数と負数に従って2種類に分類し、分類ルール、例えば共通因子に2の累乗を掛けるという方式に従ってこれらの2つ種類の重みを再度分類し、1種類の重みに対応する重み値がいずれも負数である場合、その計算された第1の処理結果が負数であり、1種類の重みに対応する重み値がいずれも正数である場合、その計算された第1の処理結果が正数であり、このようにして各種類の重みに対応する第1の処理結果をソートし、正数を配列順序の前に位置させ、負数を配列順序のうちの正数の後に位置させ、さらに配列順序に従って順次選択し、第2の計算結果が負数であると確定する場合、後続の計算プロセスでも必然的に負数であり、当該計算を終止することができ、これにより、畳み込み計算を早めに終了する目的を達成でき、それによって計算量と計算電力を低減させ、さらにエネルギー効率比を向上させることができる。
【0069】
図5は本出願の実施例によるデータ処理方法の実現プロセスの概略図の五である。図5に示すように、本出願の実施例では、分類特徴と第1の処理結果に基づいて計算し、第2の処理結果を得た後、即ちステップ104の後、データ処理方法を実現するために、以下のステップをさらに含むことができる。
【0070】
ステップ105において、特徴データの第1の次元及び対応するネットワーク次元を取得する。
【0071】
本出願の実施例では、第1の次元は、重み及び特徴データに基づいて計算される実際に必要なネットワークモデルを特徴付け、ネットワーク次元は、重み及び特徴データの計算のために割り当てられるように計画されるネットワークモデルを特徴付ける。
【0072】
ステップ106において、第2の処理結果の第2の次元を取得する。
【0073】
本出願の実施例では、第2の処理結果に対応するコンピューティングリソースをさらに確保するために、本出願の実施例は、現在の特徴データに対応する第1の次元及び第2の処理結果に対応する第2の次元を取得する必要がある。
【0074】
ステップ107において、第2の次元が第1の次元よりも小さいと確定する場合、ネットワーク次元と予定閾値範囲に従って、第2の処理結果に対応する現在のネットワーク次元を調整する。
【0075】
本出願の実施例では、第2の処理結果が取得された後、次の層の計算を行う前に、本出願の実施例では第2の次元が第1の次元よりも小さいか否かを確定する必要があり、第2の次元が第1の次元よりも小さい場合、現在の層に対応するネットワーク次元に従って次の層の計算を処理するとコンピューティングリソースが明らかに浪費されることを示し、第2の次元が第1の次元以上である場合、現在の層に対応するネットワーク次元に基づいて次の層の計算を処理するとリソースが浪費されないことを示し、即ち第2の処理結果に対応する現在のネットワーク次元を調整する必要がなく、したがって、本出願の実施例では、1つの予定閾値範囲を設定し、ネットワーク次元と予定閾値範囲に従って、第2の処理結果に対応する現在のネットワーク次元を調整し、リソースの浪費を回避する。
【0076】
ステップ108において、第2の処理結果に対応する重みを取得する。
【0077】
ステップ109において、現在のネットワーク次元と第2の処理結果に対応する重みに基づき、第2の処理結果を計算して第3の処理結果を得る。
【0078】
本出願の実施例では、現在のネットワーク次元が得られた後、第2の処理結果に対応する重みに基づいて第2の処理結果を計算して第3の処理結果を得て、このように、計算プロセスでは、計算されたネットワーク次元が小さくなると発見すると、現在のネットワーク次元をリアルタイムで調整して、コンピューティングリソースを最大限に活用することができる。
【0079】
図6は本出願の実施例によるデータ処理方法の実現プロセスの概略図の六である。図6に示すように、本出願の実施例では、第2の次元が第1よりも小さいと確定する場合、第2の次元と予定閾値範囲に従って、第2の処理結果に対する現在の次元を調整し、即ち、ステップ107は、データ処理方法を実現するために、以下のステップを含むことができる。
【0080】
ステップ107aにおいて、第2の次元が第1の次元よりも小さいと確定する場合、ネットワーク次元と調整対象のネットワーク次元に対してモジュロ演算を行い、モジュロ結果を得る。
【0081】
本出願の実施例では、第2の次元が第1の次元よりも小さいと確定する場合、即ち現在のネットワーク次元を調整する必要がある場合、ネットワーク次元と調整対象の次元に対してモジュロ演算を行い、モジュロ結果を得る。
【0082】
例示的には、ネットワーク次元が18であり、調整対象のネットワーク次元が16であると仮定すると、2つのモジュロ結果は2である。
【0083】
ステップ107bにおいて、モジュロ結果と調整対象のネットワーク次元を比して、比の結果を得る。
【0084】
本出願の実施例では、モジュロ結果が得られた後、モジュロ結果と調整対象のネットワーク次元を比して、比の結果を得る。
【0085】
例示的には、ネットワーク次元が18であり、調整対象のネットワーク次元が16であるとすると、2つのモジュロ結果は2であり、モジュロ結果と調整対象のネットワーク次元との比の結果が2/16=1/8である。
【0086】
ステップ107cにおいて、比の結果が予定閾値範囲にある場合、調整対象の次元が第2の処理結果に対応する現在のネットワーク次元であると確定する。
【0087】
本出願の実施例では、予定閾値範囲が0-1/6であるとすると、上述の例に基づき、当該比の結果1/8が予定閾値範囲にある場合、当該調整対象の次元16が第2の処理結果に対応する現在のネットワーク次元であると確定することがわかる。
【0088】
本出願の実施例では、少なくとも1種類の重み及び各種類の重みに対応する特徴データを取得し、少なくとも1種類の重みに基づき、各種類の重みに対応する分類特徴を取得し、少なくとも1種類の重みと特徴データに基づいて計算し、各種類の重みに対応する第1の処理結果を得て、分類特徴と第1の処理結果に基づいて計算して、第2の処理結果を得て、このようにして、まず重みを分類して分類特徴を得て、分類特徴に基づいて特徴データを計算し、これにより、巨大な重みを分析し、それらをより少ないケースに整理して分類し、さらに計算量を効果的に低減させることができる。
【0089】
実施例2
実施例1と同じ発明の概念に基づいて、上述のデータ処理方法をニューラルネットワークに適用する。本出願の実施例をより良く理解するために、以下に畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)を簡単に説明する。
【0090】
DNNは、CNNとリカレントニューラルネットワーク(RNN:Recurrent Neural Network)を含み、一般的に入力層、隠れ層及び出力層を含む。
【0091】
CNNは多層ニューラルネットワークであり、各層は複数の2次元平面で構成され、各平面は複数の独立したニューロンで構成されている。CNNは、通常、畳み込み層、プーリング層及び全接続層(FC:Full Connectionlayer)で構成され、ここで、畳み込み層は、現象畳み込みカーネルと非線形活性化関数を介して入力データの特徴マップを生成し、畳み込みカーネルは、入力データの異なる領域との内積を繰り返し、その後非線形関数を介して出力し、プーリング層は、通常、平均プーリング層又は最大プーリング層であり、この層は、前の層によって得られた特徴マップのある領域の平均値又は最大値のみを検索し、全接続層では入力セグメントのすべての要素は出力されたニューロンに接続され、各出力要素はすべての入力要素にそれぞれの重みを掛けてから合計される。
【0092】
図7は本出願の実施例によるニューラルネットワークハードウェアアーキテクチャの構成構造図である。
【0093】
図7に示すように、当該ニューラルネットワークハードウェアアーキテクチャは、中央処理ユニット(CPU:Central Processing Unit)、記憶ユニット、ダイレクトメモリアクセス(DMA:Direct Memory Access)コントローラ、命令解析ユニット、制御ユニット、入出力キャッシュユニット及び計算ユニットを備え、CPUは、制御命令をDMAコントローラに送信するように構成され、記憶ユニットは、ニューラルネットワークの特徴データ、重み及び計算ユニットによって計算された結果を記憶するように構成され、当該記憶ユニットは、外部ダブルレート同期動的ランダムアクセスメモリ(DDR:Double Data Rate SDRAM)又はオンチップランダムアクセスメモリ(RAM:Random Access Memory)であってもよく、DMAコントローラは、CPUからの畳み込み計算の制御命令を受信し、当該命令に開始アドレスと終了アドレスが含まれ、当該開始アドレスと終了アドレスで識別されるアドレスセグメントに記憶されている特徴データと重みを記憶ユニットから入出力キャッシュユニットに記憶すると同時に、命令を命令解析ユニットに送信するように構成され、又は、CPUからの計算結果を記憶するための制御命令を受信し、計算ユニットによって得られた計算結果を入出力キャッシュユニットから記憶ユニットに記憶するように構成され、命令解析ユニットは、DMAコントローラからの命令を受信し、当該命令を解析して命令の内容を得て、当該命令を解析して得られた内容を制御ユニットに送信するように構成され、制御ユニットは、命令解析ユニットから得られた内容を受信し、命令解析ユニットから得られた内容に従って命令を入出力キャッシュユニットに送信するように構成され、入出力キャッシュユニットは、制御ユニットからの命令を受信し、制御ユニットの命令に応じて、計算ユニットのために計算対象の特徴データと重みを準備するように構成され、又は、計算ユニットによって計算される特徴データと重み、及び計算ユニットによって取得された計算結果を記憶するように構成され、当該入出力キャッシュユニットは、2つの部分を含み、1つの部分は、重みと特徴データをキャッシュするために使用され、当該キャッシュデータ容量を減らすために、当該キャッシュのサイズと各層のチャネルの数及び対応する畳み込みカーネルのサイズを関連付けることができ、例えば、畳み込みカーネルのサイズが3*3である場合、64つのチャネルのサイズのデータをキャッシュすることができ、畳み込みカーネルのサイズが7*7である場合、64つのチャネルのサイズよりも大きいデータをキャッシュすることができ、別の部分のキャッシュは、計算対象の重みと特徴データを記憶し、重みと特徴のデータを計算ユニットに出力するために使用され、計算ユニットは、入出力キャッシュユニットからの特徴データ及び重みを受信し、当該特徴データと重みに基づいて畳み込み計算を完了して第2の処理結果を取得するように構成される。
【0094】
深層ニューラルネットワークでは、まず畳み込み演算を行い、次にFCの乗算及び加算、ReLU活性化関数及びプーリング処理を行う必要があり、したがって、本出願の実施例の計算ユニットは、畳み込み演算の完了に加えて、FC乗算及び加算、ReLU活性化関数及びプーリング処理にも使用され得る。計算ユニットにおける畳み込み計算を改善して計算量を低減させることを目的とする本出願の実施例に基づき、計算ユニットによる畳み込み計算を完了するプロセスを以下に詳細に説明する。
【0095】
図8は本出願の実施例による計算ユニットの構造図である。図8に示すように、計算ユニットは、セレクター、分類(CP:Classification Processor)演算ユニット及び乗算及び加算ユニット(MAU:Multiply AddUnit)を含み、ここで、セレクターは、入出力キャッシュユニットから出力された特徴データ及び重みを受信し、重みインジケータ及び対応する位置インデックス情報に基づき、特徴データと重みから対応する重みと特徴データを選択し、当該重みと特徴データをCP演算ユニットに出力するように構成され、CP演算ユニットは、セレクターから出力された特徴データと重みを受信し、特徴データと重みに対してシフト計算を行い、第1の処理結果と分類特徴をMAUに入力するように構成され、MAUは、CP演算ユニットから出力された第1の処理結果と分類特徴を受信し、第1の処理結果と分類特徴に対して乗算及び加算を行い、第2の処理結果を取得するように構成される。
【0096】
図9は本出願の実施例による計算ユニットにおけるCP演算ユニットの構造図である。図9に示すように、CP演算ユニットは、分類器と加算器を含む。
【0097】
ここで、分類器は、セレクターから出力された重みと特徴のデータを受信し、重みを分類して分類特徴と分類データを取得し、分類特徴、分類データ及び特徴データを加算器に入力するように構成される。
【0098】
加算器は、分類器から出力された分類特徴、分類データ及び特徴データを受信し、分類データに基づいて特徴データに対してシフト加算を行い、第1の処理結果を得て、その後第1の処理結果と分類特徴をMAUに入力するように構成され、重みが負数である場合、加算器は、当該負数の重みに対応する計算を負数加算、即ち減算として実行する。
【0099】
MAUは、加算器から出力された第1の処理結果と分類特徴を受信し、第1の処理結果と分類結果に対して乗算してから加算し、第2の処理結果を出力するように構成される。MAUは、1つ又は複数のCP演算ユニットに対応することができる。
【0100】
図10は、本出願の実施例による計算ユニットにおける1つのCP演算ユニットが1つの乗算及び加算ユニットに対応する構造概略図であり、図10に示すように、MAUは、乗算器と累算器を含み、CP演算ユニットは、各種類の重みに対応する第1の処理結果と対応する分類特徴をMAUに順次出力し、乗算器は、まず前の2つ種類の重みの第1の処理結果に対応する分類特徴に対して乗算を行い、対応する2つの乗算結果を累算器に出力し、次に累算器は、2つの乗算結果を加算し、次に乗算器は、第3種類の重みの第1の処理結果に対応する分類特徴に対して乗算を行い、対応する乗算結果を得て累算器に出力し、次に、累算器は、前の上で累算し、最後種類の重みに対応する第1の処理結果と対応する分類特徴を乗算してから累算し、得られた累算結果を第2の処理結果とするまで続く。
【0101】
図11は本出願の実施例による計算ユニットにおける複数のCP演算ユニットが1つの乗算及び加算ユニットの構造である。図11に示すように、乗算器の前に1つの乗算器キューを追加し、複数のCP演算ユニットから1つの乗算器へのルーティング選択機能を完了し、この設計により、乗算器の使用頻度を効果的に上げ、さらに使用される乗算器の数を減らすことができる。
【0102】
上述の説明に基づき、図12は本出願の実施例によるデータ処理方法の実現プロセスの概略図の七である。図12に示すように、本出願の実施例によるデータ処理方法をより良く説明するために、データ処理方法を上述のニューラルネットワークハードウェアアーキテクチャの計算ユニットに応用することができる。
【0103】
ステップ201において、重みと特徴データを記憶ユニットに予め記憶する。
【0104】
なお、分類データの場合、後続の乗算及び加算を早めに終止するために、まず正数を記憶し、次に負数を記憶することができる。重みが0であるデータの場合、畳み込み演算が完了された結果はまだ0であるため、重みが0であるデータを破棄し、計算に参加しなく、即ち記憶ユニットに記憶及びこれから読み取る必要がなく、それによって記憶リソースとデータ読み書き帯域幅を節約し、リソース処理効率を向上させ、さらにスパース演算をサポートする効果を達成する。
【0105】
ステップ202において、計算ユニットは、対応するネットワーク次元を生成する。
【0106】
なお、計算ユニットの場合、300*300と416*416のように、異なるネットワークモデルに対応するネットワーク次元が異なり、また、異なるネットワークモデルの場合、それにサポートされる次元も1*1、3*などのように、一致しない可能性があり、したがって、本出願の実施例における計算ユニットは、弾性的かつスケーラブルな構造として設計され、即ち、異なるネットワークモデルに対応する次元が異なる場合、計算ユニットを対応するネットワーク構造モデルに一致させて、コンピューティングリソースを最大限に活用することができる。
【0107】
図13は本出願の実施例における計算ユニットの次元マッチング構成の概略図である。13に示すように、畳み込みカーネルが1*1又は3*3であるか、特徴画像が4*4以下である場合、ネットワーク次元は図13の左側のものに変更することができ、畳み込みカーネルが3*3であるか、特徴画像が4*4より大きい場合、ネットワーク次元は図13の右側のものに変更することができる。
【0108】
本出願の実施例では、制御ユニットが現在のニューラルネットワークモデルに対応する次元命令を計算ユニットに送信する場合、計算ユニットは、当該命令に応じて対応するハードウェア構造モデル、即ち当該層の計算に対応するネットワーク次元を生成し、具体的には、特徴データの第1の次元及び対応するネットワーク次元を取得し、第2の処理結果の第2の次元を取得し、第2の次元が前記第1の次元よりも小さいと確定する場合、ネットワーク次元と予定閾値範囲に従って、第2の処理結果に対応する現在のネットワーク次元を調整し、第2の処理結果に対応する重みを取得し、現在のネットワーク次元と第2の処理結果に対応する重みに基づき、第2の処理結果を計算して第3の処理結果を得る。
【0109】
ここで、現在のネットワーク次元を確定する方法は、第2の次元が第1の次元よりも小さいと確定する場合、ネットワーク次元と調整対象のネットワーク次元に対してモジュロ演算を行い、モジュロ結果を得て、モジュロ結果と調整ネットワーク次元に基づいて比し、比の結果を得て、比の結果が予定閾値範囲にある場合、調整対象の次元が第2の処理結果に対応する現在のネットワーク次元であると確定することであってもよい。
【0110】
ステップ203において、DMAコントローラは、対応する重みと特徴データを記憶ユニットから読み取り、入出力キャッシュユニットに記憶する。
【0111】
本出願の実施例では、CPUは、命令をDMAコントローラに送信し、DMAコントローラは、送信された命令に応じて記憶ユニットから読み取られた重み及び特徴データを入出力キャッシュユニットに出力する。
【0112】
なお、一定のプロセスが実行されると、現在の処理の進行状況を割り込みの形でCPUに通知し、制御ユニットは、現在の処理の進行状況に応じて、対応する命令を入出力キャッシュユニットに送信し、入出力キャッシュユニットは、命令を計算ユニットに出力し、計算ユニットのために計算対象の重みと特徴データを準備し、次に計算ユニットは命令の要件に従って対応する操作を実行し、例えば、畳み込み計算が完了された後、全接続を計算する必要があり、計算ユニット及びキャッシュユニットは、命令に従って全接続を一致させる操作を行う。
【0113】
ステップ204において、入出力キャッシュユニットは重みと特徴データを取得する。
【0114】
本出願の実施例では、キャッシュユニットは、重みに対応する位置インデックス情報を取得し、重みに対応する位置インデックス情報に基づき、対応する特徴データをインデックス付けし、例えば、重み値A1がフィルタに対応する元の位置で100として番号付けされている場合、重み値A1に対応する位置番号100に従ってその位置の特徴データをインデックス付けすることができる。
【0115】
ステップ205において、計算ユニットにおけるCP演算ユニットは、入力された重みと特徴データを計算して第1の処理結果を得る。
【0116】
本出願の実施例では、重みと特徴データが取得された後、入出力キャッシュユニットは、重みと特徴データを計算ユニットに出力し、計算ユニットおけるCP演算ユニットは、入力された重みと特徴データを計算して第1の処理結果を得る。
【0117】
ここで、CP演算ユニットは、まず、重みに対応する分類特徴に基づいて同じ種類の重みに対応する特徴データを累算し、同じ種類のデータの累算が完了された後、累算器をクリアし、次の分類データの累算を行い、すべてのデータの処理が完了されるまで続く。
【0118】
なお、重みが正数である場合、CP演算ユニットは、加算を実行し、負数の場合、CP演算ユニットは、減算を実行する。
【0119】
例示的には、1種類の重みの重み値が6、12、-24、48であり、対応する特徴データがそれぞれ2、6、8、3である場合、当該重みに対応する分類特徴、即ち共通因子は3であり、対応する分類データ、即ち2の累乗はそれぞれ1、2、3、4であり、当該種類の重みに対応する第1の処理結果は(2<<1)+(6<<2)-(8<<3)+(3<<4)=4+24-64+48=12である。
【0120】
ステップ206において、MAUは入力された分類特徴と第1の処理結果に基づいて計算して、第2の処理結果を得る。
【0121】
本出願実施例では、複数のCP演算の結果をMAUに出力した後、まずシリアルデータストリームに変換して乗算器モジュールに送信し、乗算が完了された後、異なる分類データの累算を行う。
【0122】
図14は本出願の実施例による計算ユニットにおける演算構造の概略図である。図14に示すように、計算ユニットにおける演算構造は、特徴データ、重み、CPアレイ及びMAUアレイで構成され、当該計算ユニットの計算プロセスは、重みと特徴データを、セレクターを介して対応するCP演算ユニットに出力し、CP演算ユニットが分類及び累算処理を完了してから第1の処理結果と分類特徴をMAUに出力し、MAUが第1の処理結果と分類特徴に対して乗算及び加算を行って第2の処理結果を得ることである。
【0123】
本出願の実施例によれば、分類特徴によって特徴データを加算して第1の処理結果を得て、次に第1の処理結果と分類特徴に基づいて乗算及び加算を行い、このような加算してから乗算する方式により、演算量を効果的に低減させることができる。
【0124】
実施例3
実施例1と実施例2の同じ発明の概念に基づき、本出願の実施例は、データ処理装置を提供する。上述実施例2のニューラルネットワークハードウェアアーキテクチャにおける計算ユニットは、当該データ処理装置に応用されてもよい。図15は本出願の実施例によるデータ処理装置の概略図である。図15に示すように、前記処理装置は、少なくとも1種類の重み及び各種類の重みに対応する特徴データを取得するように構成される第1の取得モジュール301と、前記少なくとも1種類の重みに基づき、各種類の重みに対応する分類特徴を取得するように構成される第2の取得モジュール302と、前記少なくとも1種類の重みと前記特徴データに基づいて計算して、各種類の重みに対応する第1の処理結果を得るように構成される第1の獲得モジュール303と、前記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得るように構成される第2の獲得モジュール304と、を備える。
【0125】
他の実施例では、前記第1の取得モジュールは、履歴重みを取得し、設定されたスクリーニング条件に従って前記履歴重みをスクリーニングして、スクリーニングされた重みを得て、設定された分類ルールに従って、前記スクリーニングされた重みを分類して、前記少なくとも1種類の重みを得る。
【0126】
他の実施例では、前記第1の獲得モジュールは、前記少なくとも1種類の重みと前記分類特徴に基づき、前記特徴データに対応する分類データを取得し、前記分類データに基づいて前記特徴データを計算して、各種類の重みに対応する第1の処理結果を得る。
【0127】
他の実施例では、前記第2の獲得モジュールは、設定されたソートルールに従って、各種類の重みに対応する第1の処理結果をソートして、ソートされた第1の処理結果を得て、前記ソートされた第1の処理結果から1つの処理対象の第1の処理の結果を配列順序に従って順次選択し、前記分類特徴と前記処理対象の第1の処理結果に基づいて計算し、第1の計算結果を得て、現在得られている第1の計算結果と得られた第1の計算結果を計算して、第2の計算結果を得て、前記第2の計算結果が負数であると確定する場合、前記第2の計算結果を第2の処理結果とする。
【0128】
他の実施例では、前記データ処理装置は、さらに前記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得た後、前記特徴データの第1の次元及び対応するネットワーク次元を取得し、前記第2の処理結果の第2の次元を取得し、前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と予定閾値範囲に従って、前記第2の処理結果に対応する現在のネットワーク次元を調整し、2の処理結果に対応する重みを取得し、前記現在のネットワーク次元と前記第2の処理結果に対応する重みに基づき、前記第2の処理結果を計算して第3の処理結果を得る。
【0129】
他の実施例では、前記データ処理装置は、さらに前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と調整対象のネットワーク次元に対してモジュロ演算を行い、モジュロ結果を得て、前記モジュロ結果と前記調整対象のネットワーク次元に基づいて比し、比の結果を得て、前記比の結果が予定閾値範囲にある場合、前記調整対象の次元が前記第2の処理結果に対応する現在のネットワーク次元であると確定する。
【0130】
他の実施例では、前記第1の獲得モジュールは、さらに前記分類データに基づいて前記特徴データに対して左シフト計算を行い、各種類の重みに対応する第1の処理結果を得て、それに応じて、前記第2の獲得モジュールは、さらに前記分類特徴と前記第1の処理結果に基づいて乗算及び加算を行い、第2の処理結果を得る。
【0131】
本出願の実施例によれば、データ処理装置は、分類特徴によって特徴データを累算し、次に累算結果と分類特徴に基づいて乗算を行い、このように加算してから乗算する演算方式により、演算量を効果的に低減させることができる。
【0132】
実施例4
実施例1-実施例3の同じ発明の概念に基づき、本出願の実施例は、データ処理装置を提供する。図16は本出願の実施例によるデータ処理装置の構成構造図である。図16に示すように、データ処理装置は、少なくともプロセッサ01、前記プロセッサ01で実行可能な命令を記憶するためのメモリ02、通信インターフェース03、及び前記プロセッサ、前記メモリ、前記通信インターフェースを接続するためのバス04を備え、前記命令が前記プロセッサに実行されると、少なくとも1種類の重み及び各種類の重みに対応する特徴データを取得するステップと、前記少なくとも1種類の重みに基づき、各種類の重みに対応する分類特徴を取得し、前記少なくとも1種類の重みと前記特徴データに基づいて計算し、各種類の重みに対応する第1の処理結果を得るステップと、前記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得るステップとを、実現する。
【0133】
1つの選択可能な実施例では、第1のプロセッサは、さらに第1のメモリに記憶されているデータ処理プログラムを実行して、履歴重みを取得するステップと、設定されたスクリーニング条件に従って前記履歴重みをスクリーニングして、スクリーニングされた重みを得るステップと、設定された分類ルールに従って、前記スクリーニングされた重みを分類して、前記少なくとも1種類の重みを得るステップとを実現するように構成される。
【0134】
1つの選択可能な実施例では、第1のプロセッサは、第1のメモリに記憶されているデータ処理プログラムを実行して、前記少なくとも1種類の重みと前記分類特徴に基づき、前記特徴データに対応する分類データを取得するステップと、前記分類データに基づいて前記特徴データを計算して、各種類の重みに対応する第1の処理結果を得るステップとを実現するように構成される。
【0135】
1つの選択可能な実施例では、第1のプロセッサは、第1のメモリに記憶されているデータ処理プログラムを実行して、設定されたソートルールに従って、各種類の重みに対応する第1の処理結果をソートして、ソートされた第1の処理結果を得るステップと、前記ソートされた第1の処理結果から1つの処理対象の第1の処理の結果を配列順序に従って順次選択するステップと、前記分類特徴と前記処理対象の第1の処理結果に基づいて計算して、第1の計算結果を得るステップと、現在得られている第1の計算結果と得られた第1の計算結果を計算して、第2の計算結果を得るステップと、前記第2の計算結果が負数であると確定する場合、前記第2の計算結果を第2の処理結果とするステップとを実現するように構成される。
【0136】
1つの選択可能な実施例では、第1のプロセッサは、さらに第1のメモリに記憶されているデータ処理プログラムを実行して、前記分類特徴と前記第1の処理結果に基づいて計算して、第2の処理結果を得た後、前記特徴データの第1の次元及び対応するネットワーク次元を取得するステップと、前記第2の処理結果の第2の次元を取得するステップと、前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と予定閾値範囲に従って、前記第2の処理結果に対応する現在のネットワーク次元を調整するステップと、第2の処理結果に対応する重みを取得するステップと、前記現在のネットワーク次元と前記第2の処理結果に対応する重みに基づき、前記第2の処理結果を計算して第3の処理結果を得るステップとを実現するように構成される。
【0137】
1つの選択可能な実施例では、第1のプロセッサは、第1のメモリに記憶されているデータ処理プログラムを実行して、前記第2の次元が前記第1の次元よりも小さいと確定する場合、前記ネットワーク次元と調整対象のネットワーク次元に対してモジュロ演算を行い、モジュロ結果を得るステップと、前記モジュロ結果と前記調整対象のネットワーク次元に基づいて比し、比の結果を得るステップと、前記比の結果が予定閾値範囲にある場合、前記調整対象の次元が前記第2の処理結果に対応する現在のネットワーク次元であると確定するステップを実現するように構成される。
【0138】
1つの選択可能な実施例では、第1のプロセッサは、第1のメモリに記憶されているデータ処理プログラムを実行して、前記分類データに基づいて前記特徴データに対して左シフト計算を行い、各種類の重みに対応する第1の処理結果を得るステップと、前記分類特徴と前記第1の処理結果に基づいて乗算及び加算を行い、第2の処理結果を得るステップとを実現するように構成される。
【0139】
本出願の実施例によれば、データ処理装置は、分類特徴によって特徴データを累算し、次に累算結果と分類特徴に基づいて乗算を行い、このように加算してから乗算する演算方式により、演算量を効果的に低減させることができる。
【0140】
実際の応用において、プロセッサは、中央処理ユニット(CPU:Central Processing Unit)、マイクロプロセッサユニット(MPU:Microprocessor Unit)、デジタル信号プロセッサ(DSP:Digital Signal Processor)又はフィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Array)などであってもよい。
【0141】
また、本実施例における各コンポーネントは、1つの処理ユニットに統合されてもよく、個々のユニットは単独で物理的に存在してもよく、2つ又は2つ以上のユニットは、1つのユニットに統合されてもよい。上述の統合されたユニットは、ハードウェアの形で実現されてもよいし、ソフトウェア機能モジュールの形で実現されてもよい。
【0142】
前記統合されたユニットは、ソフトウェア機能モジュールの形で実現されて独立した製品として販売又は使用される場合、1つのコンピュータで読み取り可能な記憶媒体に記憶されてもよく、このような理解に基づき、本実施例の技術的解決策は、本質的にソフトウェア製品の形で具体化でき、又は従来技術に貢献する部分又は当該技術的解決策の全部又は一部は、ソフトウェア製品の形で具体化でき、当該コンピュータソフトウェア製品は、1つの記憶媒体に記憶され、コンピュータデバイス(パーソナルコンピュータ、サーバー、又はネットワークデバイスなど)又はプロセッサ(processor)に本実施例に記載の方法のステップのすべて又は一部を実行させるためのいくつかの命令を含む。
【0143】
前記記憶媒体は、磁気ランダムアクセスメモリ(FRAM:ferromagnetic random access memory)、読み取り専用メモリ(ROM:Read Only Memory)、プログラマブル読み取り専用メモリ(PROM:Programmable Read-Only Memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:Erasable Programmable Read-Only Memory)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM:Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ(Flash Memory)、磁気表面メモリ、光ディスク、又は読み取り専用光ディスク(CD-ROM:Compact Disc Read-Only Memory)などのプログラムコードを記憶できる様々な媒体を含み、本出願の実施例で限定されない。
【0144】
上述の実施例に基づき、本出願の実施例は、データ処理プログラムを記憶しており、前記データ処理プログラムがプロセッサに実行されると上述の1つの又は複数の実施例におけるデータ処理方法を実現するコンピュータで読み取り可能な記憶媒体を提供する。
【0145】
当業者は、本出願の実施例が方法、システム、又はコンピュータプログラム製品として提供されてもよいことを理解すべきである。
【0146】
したがって、本出願は、ハードウェア実施例、ソフトウェア実施例、又はハードとソフトを組み合わせた実施例の形を採用することができる。さらに、本出願は、コンピュータで使用可能なプログラムコードを含む1つ又は複数のコンピュータで使用可能な記憶媒体(磁気ディスクメモリ、光学メモリを含むがこれらに限らない)で実施されるコンピュータプログラム製品の形を採用することができる。
【0147】
本出願は本出願の実施例による方法、デバイス(システム)、及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明される。コンピュータプログラム命令によってフローチャート及び/又はブロック図の各フロー及び/又はブロック、及びフローチャート及び/又はブロック図におけるフロー及び/又はブロックの組み合わせを実現できることを理解すべきである。
【0148】
これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、組み込みプロセッサ又は他のプログラマブルデータ処理デバイスのプロセッサに提供して1つの機械を生成することができ、これにより、コンピュータ又はプログラマブルデータ処理装置のプロセッサで実行される命令によってフローチャートにおける1つのフロー又は複数のフロー及び/又はブロック図における1つのブロック又は複数のブロックに指定された機能を実現するための装置を生成する。
【0149】
これらのコンピュータプログラム命令は、特定の方式で動作するようにコンピュータ又は他のプログラマブルデータ処理デバイスを案内することができるコンピュータで読み取り可能なメモリに記憶されてもよく、これにより、当該コンピュータで読み取り可能なメモリに記憶されている命令によって命令装置を含む製造品を生成し、当該命令装置は、フローチャートにおける1つのフロー又は複数のフロー及び/又はブロック図における1つのブロック又は複数のブロックに指定された機能を実現する。
【0150】
これらのコンピュータプログラム命令はコンピュータ又はその他のプログラマブルデータ処理デバイスにロードされてもよく、そのため、コンピュータ又は他のプログラマブルデバイスで一連の動作ステップを実行してコンピュータで実現される処理を発生し、それによってコンピュータ又は他のプログラマブルデバイスで実行される命令はフローチャートにおける1つのフロー又は複数のフロー及び/又はブロック図における1つのブロック又は複数のブロックに指定された機能を実現するためのステップを提供する。
【0151】
上述は、本出願の好ましい実施例に過ぎず、本出願の保護範囲を限定するためのものではない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16