(57)【要約】  本出願は、ニューラルネットワークの処理方法に関し、前記方法は、オリジナルネットワークのモデルデータセットとモデル構造パラメータを獲得するステップ（Ｓ１００）と、オリジナルネットワークにおける各計算ノードの運用属性を獲得するステップと、オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び各計算ノードの運用属性に従ってオリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得するステップ（Ｓ２００）と、及び現在の計算ノードの運用属性が第１運用属性である場合、現在の計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存して、オリジナルネットワークに対応する第１オフラインモデルを獲得するステップ（Ｓ３００）とを含む。本発明は、コンピュータシステム及び記憶媒体をさらに提供する。本発明のニューラルネットワーク処理方法、コンピュータシステム及び記憶媒体は、同じネットワークを実行するプロセッサの実行時間を短縮し、プロセッサの処理速度及び効率を向上させる。【選択図】図３
2021508861.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークの処理方法であって、
オリジナルネットワークのモデルデータセットとモデル構造パラメータを獲得し、ここで、前記モデルデータセットは、前記オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、前記モデル構造パラメータは、前記オリジナルネットワークにおける複数の計算ノードの接続関係を含むステップと、
前記オリジナルネットワークにおける各計算ノードの運用属性を獲得し、前記計算ノードの運用属性は、前記計算ノードが専用ニューラルネットワークプロセッサで実行することができることを示す第１運用属性と前記計算ノードが汎用プロセッサで実行することができることを示す第２運用属性を含むステップと、
前記オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び各計算ノードの運用属性に従って前記オリジナルネットワークを実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令を獲得するステップと、及び
現在の計算ノードの運用属性が第１運用属性である場合、前記現在の計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存して、前記オリジナルネットワークに対応する第１オフラインモデルを獲得するステップとを含む、前記ニューラルネットワークの処理方法。
【請求項２】
前記オリジナルネットワークにおける各計算ノードの運用属性を獲得するステップは、
各前記計算ノードが専用ニューラルネットワークプロセッサで実行することができるかどうかをそれぞれ判断するステップと、
現在の計算ノードが前記専用ニューラルネットワークプロセッサで実行することができる場合、前記現在の計算ノードを第１運用属性として表記するステップと、及び
現在の計算ノードが汎用プロセッサでのみ実行できる場合、前記現在の計算ノードを第２運用属性として表記するステップとをさらに含むことを特徴とする
請求項１に記載のニューラルネットワークの処理方法。
【請求項３】
各前記計算ノードが専用ニューラルネットワークプロセッサで実行することができるかどうかをそれぞれ判断するステップは、
予め設定された関数テーブルによって前記現在の計算ノードに等価計算ノードが存在するかどうかを照会し、ここで、前記等価計算ノードは前記専用ニューラルネットワークプロセッサで実行可能な計算ノードであるステップと、
前記現在の計算ノードに等価計算ノードが存在する場合、前記現在の計算ノードが前記専用ニューラルネットワークプロセッサで実行することができると判定するステップと、及び
前記現在の計算ノードに等価計算ノードが存在しない場合、前記現在の計算ノードが前記汎用プロセッサでのみ実行することができると判定するステップとをさらに含むことを特徴とする
請求項２に記載のニューラルネットワークの処理方法。
【請求項４】
前記オリジナルネットワークにおける各計算ノードの運用属性を獲得するステップは、前記オリジナルネットワークのモデルデータセットまたはモデル構造パラメータから前記オリジナルネットワークにおける各計算ノードの運用属性を獲得するステップを含むことを特徴とする
請求項１に記載のニューラルネットワークの処理方法。
【請求項５】
前記汎用プロセッサは、中央プロセッサ、画像プロセッサ、デジタル信号プロセッサ及びフィールド編集可能なゲートアレイのうちの一つまたは複数を含み、
前記第２運用属性は、ＣＰＵ運用属性、ＧＰＵ運用属性、ＤＳＰ運用属性及びＦＰＧＡ運用属性の一つまたは複数を含むことを特徴とする
請求項２または４に記載のニューラルネットワークの処理方法。
【請求項６】
前記オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第２計算ノードの間のすべての第１計算ノードを一つの第１オフラインノードに等価にするステップをさらに含み、ここで、前記第１計算ノードは、第１運用属性を有する計算ノードであり、前記第２計算ノードは、第２運用属性を有する計算ノードであり、前記第１オフラインモデルには、前記第１オフラインノードと前記第２計算ノードとの間のインターフェイスデータがさらに含まれることを特徴とする
請求項１に記載のニューラルネットワークの処理方法。
【請求項７】
前記現在の計算ノードの運用属性が第２運用属性である場合、前記現在の計算ノードに対応するネットワークの重み及び命令を第２不揮発性メモリに保存して、前記オリジナルネットワークに対応する第２オフラインモデルを獲得することを特徴とする
請求項１に記載のニューラルネットワークの処理方法。
【請求項８】
前記オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第１計算ノードの間のすべての第２計算ノードを一つの第２オフラインノードに等価にするステップをさらに含み、ここで、前記第１計算ノードは、第１運用属性を有する計算ノードであり、前記第２計算ノードは、第２運用属性を有する計算ノードであり、前記第２オフラインモデルには、前記第２オフラインノードと前記第１計算ノードとの間のインターフェイスデータがさらに含まれることを特徴とする
請求項７に記載のニューラルネットワークの処理方法。
【請求項９】
前記オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び各計算ノードの運用属性に従って前記オリジナルネットワークを実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令を獲得するステップは、
前記オリジナルネットワークのモデル構造パラメータに従って、前記オリジナルネットワークにおける各計算ノードの実行順序を獲得するステップと、
前記各計算ノードの運用属性に従って、各前記計算ノードに対応するターゲットプロセッサをそれぞれ獲得するステップと、及び
前記オリジナルネットワークにおける各計算ノードの実行順序に応じて、各前記計算ノードに対応するターゲットプロセッサを介して各前記計算ノードをそれぞれ実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令を獲得するステップとを含むことを特徴とする
請求項１に記載のニューラルネットワークの処理方法。
【請求項１０】
前記オリジナルネットワークのモデルデータセットとモデル構造パラメータに従って、前記オリジナルネットワークのメモリ割り当て方法を獲得するステップと、
前記オリジナルネットワークのメモリ割り当て方法に従って、前記オリジナルネットワークの実行過程中の関連データを第１メモリに保存し、ここで、前記オリジナルネットワークの実行過程中の関連データは、前記オリジナルネットワークの各計算ノードに対応するネットワークの重み、命令、入力データ及び出力データを含むステップと、
前記第１メモリから前記オリジナルネットワークにおける各第１運用属性を有する計算ノードに対応するネットワークの重み及び命令を獲得し、前記オリジナルネットワークにおける各第１運用属性を有する計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存し、前記第１オフラインモデルを生成するステップと、
前記第１メモリから前記オリジナルネットワークにおける各第２運用属性を有する計算ノードに対応するネットワークの重み及び命令を獲得し、前記オリジナルネットワークにおける各第２運用属性を有する計算ノードに対応するネットワークの重みを第２不揮発性メモリに保存し、前記第２オフラインモデルを生成するステップとを含むことを特徴とする
請求項７に記載のニューラルネットワークの処理方法。
【請求項１１】
ニューラルネットワーク処理方法であって、
オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得し、ここで、前記モデルデータセットは、前記オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、前記モデル構造パラメータは、前記オリジナルネットワークにおける複数の計算ノードの接続関係を含むステップと、
前記オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第２計算ノードの間のすべての第１計算ノードを一つの第１オフラインノードに等価にし、前記オリジナルネットワークに対応する等価ネットワークを獲得し、ここで、前記第１計算ノードは、第１運用属性を有する計算ノードであり、前記第２計算ノードは、第２運用属性を有する計算ノードであるステップと、及び
前記等価ネットワーク構造における現在の計算ノードが第１オフラインノードである場合、第１不揮発性記憶媒体から第１オフラインモデルを獲得し、前記第１オフラインモデルに従って前記第１オフラインノード実行し、ここで、前記第１オフラインモデルは、前記オリジナルネットワークにおけるすべての第１計算ノードに対応するネットワークの重み及び命令を含むステップとを含む、前記ニューラルネットワーク処理方法。
【請求項１２】
前記第１オフラインモデルには、第１オフラインノードと前記第２計算ノードとの間のインターフェイスデータがさらに含まれることを特徴とする
請求項１１に記載のニューラルネットワーク処理方法。
【請求項１３】
前記等価ネットワーク構造における現在の計算ノードが前記第１オフラインノードではない場合、第２不揮発性メモリから第２オフラインモデルを獲得し、前記第２オフラインモデルに従って前記等価ネットワークにおける現在の計算ノードを実行するステップをさらに含むことを特徴とする
請求項１１に記載のニューラルネットワーク処理方法。
【請求項１４】
コンピュータシステムであって、
第１プロセッサ及び前記第１プロセッサに対応するように設置される第１メモリ及び第２メモリと、及び
それぞれがすべて前記第１プロセッサに接続される一つまたは複数の第２プロセッサ及び前記第２プロセッサに対応するように設置される一つまたは複数の第３メモリとを含み、
前記第１メモリまたは前記第２メモリにはコンピュータプログラムが保存され、前記第１プロセッサが前記コンピュータプログラムを実行する場合、請求項１〜１０または請求項１１〜１３のいずれか一項に記載のニューラルネットワーク処理方法を実行する、前記コンピュータシステム。
【請求項１５】
コンピュータ記憶媒体であって、
前記コンピュータ記憶媒体には、コンピュータプログラムが保存され、前記コンピュータプログラムが一つまたは複数の第１プロセッサによって実行される場合、請求項１〜１０または請求項１１〜１３のいずれか一項に記載のニューラルネットワーク処理方法を実行する、前記コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願発明は、出願日が２０１７年１２月２９日であり、出願番号が２０１７１１４８３７３３．５であり、名前が「ニューラルネットワーク処理方法、コンピュータシステム及び記憶媒体」である中国特許出願、出願日が２０１７年１２月２９日であり、出願番号が２０１７１１４８７６２４．０であり、名前が「ニューラルネットワーク処理方法、コンピュータシステム及び記憶媒体」である中国特許出願に対して優先権を主張し、当該中国特許出願の全ての内容は参照により本明細書に組み込まれる。
【０００２】
本出願は、ディープラーニング技術の分野に関し、特に、ニューラルネットワーク処理方法、コンピュータシステム及び記憶媒体に関する。
【背景技術】
【０００３】
人工知能技術の開発により、ディープラーニングはユビキタスで不可欠になり、そして、例えば、ＴｅｎｓｏｒＦｌｏｗ、ＭＸＮｅｔ、Ｃａｆｆｅ及びＰｙＴｏｒｃｈなどの多くのスケーラブルなディープラーニングシステムが生成され、上記ディープラーニングシステムは、ＣＰＵやＧＰＵなどのプロセッサで実行することができるニューラルネットワークモデルを提供するために使用されることができる。一般的に、プロセッサがＣａｆｆｅネットワークモデルのようなニューラルネットワークモデルを実行する場合、毎回、当該ニューラルネットワークモデルにおける各計算ノードにコンパイル、解析する必要があり、その後、当該ニューラルネットワークモデルの構造形式に応じて、一定の形式に応じて、各計算ノードを実行する。ここで、ニューラルネットワークモデルとネットワーク構造は、トレーニング済みまたは未トレーニングの人工ニューラルネットワークモデルデータであることができる。上記のニューラルネットワークの処理方法は、プロセッサの処理速度に影響を与え、処理効率が低い。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
これを鑑みて、本出願は、ニューラルネットワークに対する装置の処理速度及び処理効率を向上させるニューラルネットワークの処理方法、コンピュータシステム及び記憶媒体を開示する。
【課題を解決するための手段】
【０００５】
ニューラルネットワークの処理方法であって、前記方法は、オリジナルネットワークのモデルデータセットとモデル構造パラメータを獲得し、ここで、前記モデルデータセットは、前記オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、前記モデル構造パラメータは、前記オリジナルネットワークにおける複数の計算ノードの接続関係を含むステップと、前記オリジナルネットワークにおける各計算ノードの運用属性を獲得し、前記計算ノードの運用属性は、前記計算ノードが専用ニューラルネットワークプロセッサで実行することができることを示す第１運用属性と前記計算ノードが汎用プロセッサで実行することができることを示す第２運用属性を含むステップと、前記オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び各計算ノードの運用属性に従って前記オリジナルネットワークを実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令を獲得するステップと、及び現在の計算ノードの運用属性が第１運用属性である場合、前記現在の計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存して、前記オリジナルネットワークに対応する第１オフラインモデルを獲得するステップとを含む。
【０００６】
一つの実施例において、各前記計算ノードが専用ニューラルネットワークプロセッサで実行することができるかどうかをそれぞれ判断し、現在の計算ノードが前記専用ニューラルネットワークプロセッサで実行することができる場合、前記現在の計算ノードを第１運用属性として表記し、現在の計算ノードが汎用プロセッサでのみ実行できる場合、前記現在の計算ノードを第２運用属性として表記する。
【０００７】
一つの実施例において、予め設定された関数テーブルによって前記現在の計算ノードに等価計算ノードが存在するかどうかを照会し、ここで、前記等価計算ノードは前記専用ニューラルネットワークプロセッサで実行可能な計算ノードであり、前記現在の計算ノードに等価計算ノードが存在する場合、前記現在の計算ノードが前記専用ニューラルネットワークプロセッサで実行することができると判定し、前記現在の計算ノードに等価計算ノードが存在しない場合、前記現在の計算ノードが前記汎用プロセッサでのみ実行することができると判定する。
【０００８】
一つの実施例において、前記オリジナルネットワークのモデルデータセットまたはモデル構造パラメータから前記オリジナルネットワークにおける各計算ノードの運用属性を獲得する。
【０００９】
一つの実施例において、前記汎用プロセッサは、中央プロセッサ、画像プロセッサ、デジタル信号プロセッサ及びフィールド編集可能なゲートアレイのうちの一つまたは複数を含み、前記第２運用属性は、ＣＰＵ運用属性、ＧＰＵ運用属性、ＤＳＰ運用属性及びＦＰＧＡ運用属性の一つまたは複数を含む。
【００１０】
一つの実施例において、前記オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第２計算ノードの間のすべての第１計算ノードを一つの第１オフラインノードに等価にするステップをさらに含み、ここで、前記第１計算ノードは、第１運用属性を有する計算ノードであり、前記第２計算ノードは、第２運用属性を有する計算ノードであり、前記第１オフラインモデルには、前記第１オフラインノードと前記第２計算ノードとの間のインターフェイスデータがさらに含まれる。
【００１１】
一つの実施例において、前記現在の計算ノードの運用属性が第２運用属性である場合、前記現在の計算ノードに対応するネットワークの重み及び命令を第２不揮発性メモリに保存して、前記オリジナルネットワークに対応する第２オフラインモデルを獲得する。
【００１２】
一つの実施例において、前記オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第１計算ノードの間のすべての第２計算ノードを一つの第２オフラインノードに等価にするステップをさらに含み、ここで、前記第１計算ノードは、第１運用属性を有する計算ノードであり、前記第２計算ノードは、第２運用属性を有する計算ノードであり、前記第２オフラインモデルには、前記第２オフラインノードと前記第１計算ノードとの間のインターフェイスデータがさらに含まれる。
【００１３】
一つの実施例において、前記オリジナルネットワークのモデル構造パラメータに従って、前記オリジナルネットワークにおける各計算ノードの実行順序を獲得し、前記各計算ノードの運用属性に従って、各前記計算ノードに対応するターゲットプロセッサをそれぞれ獲得し、前記オリジナルネットワークにおける各計算ノードの実行順序に応じて、各前記計算ノードに対応するターゲットプロセッサを介して各前記計算ノードをそれぞれ実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令を獲得する。
【００１４】
一つの実施例において、前記オリジナルネットワークのモデルデータセットとモデル構造パラメータに従って、前記オリジナルネットワークのメモリ割り当て方法を獲得し、前記オリジナルネットワークのメモリ割り当て方法に従って、前記オリジナルネットワークの実行過程中の関連データを第１メモリに保存し、ここで、前記オリジナルネットワークの実行過程中の関連データは、前記オリジナルネットワークの各計算ノードに対応するネットワークの重み、命令、入力データ及び出力データを含み、前記第１メモリから前記オリジナルネットワークにおける各第１運用属性を有する計算ノードに対応するネットワークの重み及び命令を獲得し、前記オリジナルネットワークにおける各第１運用属性を有する計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存し、前記第１オフラインモデルを生成し、前記第１メモリから前記オリジナルネットワークにおける各第２運用属性を有する計算ノードに対応するネットワークの重み及び命令を獲得し、前記オリジナルネットワークにおける各第２運用属性を有する計算ノードに対応するネットワークの重みを第２不揮発性メモリに保存し、前記第２オフラインモデルを生成する。
【００１５】
ニューラルネットワーク処理方法であって、前記方法は、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得し、ここで、前記モデルデータセットは、前記オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、前記モデル構造パラメータは、前記オリジナルネットワークにおける複数の計算ノードの接続関係を含むステップと、前記オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第２計算ノードの間のすべての第１計算ノードを一つの第１オフラインノードに等価にし、前記オリジナルネットワークに対応する等価ネットワークを獲得し、ここで、前記第１計算ノードは、第１運用属性を有する計算ノードであり、前記第２計算ノードは、第２運用属性を有する計算ノードであるステップと、及び前記等価ネットワーク構造における現在の計算ノードが第１オフラインノードである場合、第１不揮発性記憶媒体から第１オフラインモデルを獲得し、前記第１オフラインモデルに従って前記第１オフラインノード実行し、ここで、前記第１オフラインモデルは、前記オリジナルネットワークにおけるすべての第１計算ノードに対応するネットワークの重み及び命令を含むステップとを含む。
【００１６】
一つの実施例において、前記第１オフラインモデルには、第１オフラインノードと前記第２計算ノードとの間のインターフェイスデータがさらに含まれる。
【００１７】
一つの実施例において、前記等価ネットワーク構造における現在の計算ノードが前記第１オフラインノードではない場合、第２不揮発性メモリから第２オフラインモデルを獲得し、前記第２オフラインモデルに従って前記等価ネットワークにおける現在の計算ノードを実行する。
【００１８】
一つの実施例において、本出願は、ニューラルネットワークの処理方法をさらに提供し、前記方法は、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得し、ここで、前記モデルデータセットは、前記オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、前記モデル構造パラメータは、前記オリジナルネットワークにおける複数の計算ノードの接続関係及び各計算ノードの計算属性を含むステップと、前記オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って前記オリジナルネットワークを実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令を獲得するステップと、及び前記オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、前記オリジナルネットワークに対応するオフラインモデルを生成し、前記オリジナルネットワークに対応するオフラインモデルを不揮発性メモリに保存するステップとを含む。
【００１９】
一つの実施例において、前記オリジナルネットワークのモデル構造パラメータ従って、前記オリジナルネットワークにおける各計算ノードの実行順序を獲得し、前記オリジナルネットワークにおける各計算ノードの実行順序に応じて前記オリジナルネットワークを実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令をそれぞれ獲得する。
【００２０】
一つの実施例において、前記オリジナルネットワークのモデルデータセットとモデル構造パラメータに従って、前記オリジナルネットワークのメモリ割り当て方法を獲得し、前記オリジナルネットワークのメモリ割り当て方法に従って、前記オリジナルネットワークの実行過程中の関連データを第１メモリに保存し、ここで、前記オリジナルネットワークの実行過程中の関連データは、前記オリジナルネットワークの各計算ノードに対応するネットワークの重み、命令、入力データ及び出力データを含み、前記第１メモリから前記オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を獲得し、前記オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を第２メモリに保存し、前記オフラインモデルを生成し、ここで、前記第２メモリは不揮発性メモリである。
【００２１】
一つの実施例において、前記オフラインモデルには、ノードインターフェースデータがさらに含まれ、前記ノードインターフェースデータは、前記オリジナルネットワークの各計算ノードの接続関係を表すために使用される。
【００２２】
一つの実施例において、コンピュータシステムのプロセッサまたは仮想デバイスは、前記オリジナルネットワークのモデルデータセットとモデル構造パラメータに従って前記オリジナルネットワークを実行する。
【００２３】
一つの実施例において、新しいオリジナルネットワークのモデルデータセットとモデル構造パラメータを獲得し、前記新しいオリジナルネットワークに対応するオフラインモデルが存在する場合、前記不揮発性メモリから前記新しいオリジナルネットワークに対応するオフラインモデルを獲得し、前記新しいオリジナルネットワークに対応するオフラインモデルに従って前記新しいオリジナルネットワークを実行し、前記新しいオリジナルネットワークに対応するオフラインモデルが存在しない場合、前記新しいオリジナルネットワークのモデルデータセットとモデル構造パラメータに従って前記新しいオリジナルネットワークを実行し、前記新しいオリジナルネットワークに対応するオフラインモデルを生成し、前記新しいオリジナルネットワークに対応するオフラインモデルを不揮発性メモリに保存する。
【００２４】
ニューラルネットワークの処理方法であって、前記方法は、オリジナルネットワークのモデル構造パラメータを獲得し、ここで、前記モデル構造パラメータは、前記オリジナルネットワークにおける複数の計算ノードの接続関係を含むステップと、不揮発性メモリから前記オリジナルネットワークに対応するオフラインモデルを獲得し、ここで、前記オリジナルネットワークに対応するオフラインモデルは、前記オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を含むステップと、及び前記オリジナルネットワークに対応するオフラインモデル及び前記オリジナルネットワークのモデル構造パラメータに従って前記オリジナルネットワークを実行するステップとを含む。
【００２５】
コンピュータシステムであって、第１プロセッサ及び前記第１プロセッサに対応するように設置される第１メモリ及び第２メモリと、及びそれぞれがすべて前記第１プロセッサに接続される一つまたは複数の第２プロセッサ及び前記第２プロセッサに対応するように設置される一つまたは複数の第３メモリとを含み、前記第１メモリまたは前記第２メモリにはコンピュータプログラムが保存され、前記第１プロセッサが前記コンピュータプログラムを実行する場合、上記いずれか一項に記載の方法を実行する。
【００２６】
コンピュータ記憶媒体であって、前記コンピュータ記憶媒体には、コンピュータプログラムが保存され、前記コンピュータプログラムが一つまたは複数の第１プロセッサによって実行される場合、上記いずれか一項に記載の方法を実行する。
【００２７】
本出願の一つまたは複数の実施例の詳細は、以下の添付の図面及び説明に提出される。本発明の他の特徴、目的、及び利点は、説明、添付の図面及び特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００２８】
【図１】一実施例のコンピュータシステムのシステムブロック図である。
【図２】他の実施例のコンピュータシステムのシステムブロック図である。
【図３】一実施例のニューラルネットワークの処理方法のフローチャートである。
【図４】他の実施例のニューラルネットワークの処理方法のフローチャートである。
【図５】他の実施例のニューラルネットワークの処理方法のフローチャートである。
【図６】他の実施例のニューラルネットワークの処理方法のフローチャートである。
【図７】一実施例のニューラルネットワークのネットワークの構造図である。
【図８】図７におけるニューラルネットワークのオフラインモデルの生成過程の模式図である。
【図９】他の実施例のコンピュータシステムのシステムブロック図である。
【図１０】一実施例のニューラルネットワークの処理方法のフローチャートである。
【図１１】一実施例のニューラルネットワークの処理方法のフローチャートである。
【図１２】一実施例のニューラルネットワークの処理方法のフローチャートである。
【図１３】一実施例のニューラルネットワークの処理方法のフローチャートである。
【図１４】一実施例のニューラルネットワークのネットワークの構造図及び等価ネットワークの構造図である。
【図１５】図１４におけるニューラルネットワークの第１オフラインモデルの生成過程の模式図である。
【図１６】図１４におけるニューラルネットワークの第１オフラインモデル、第２オフラインモデルの生成過程の模式図である。
【発明を実施するための形態】
【００２９】
本発明の実施例または先行技術における解決手段をより明確に説明するために、以下、実施例または先行技術の説明に用いた図面について簡単に説明する。明らかに、以下の説明中の図面は、本発明の実施例に過ぎず、当業者にとっては、創造的な労力を払うことなく、開示された図面に従って他の図面を得ることができる。
【００３０】
本発明の実施例における図面に合わせて、本発明の実施例における技術的解決策を明確、完全に説明し、明らかに、記載された実施例は、本発明の全部の実施例ではなく、ただ一部の実施例である。本発明の実施例に基づいて、当業者が創造的な労力を払うことなくて獲得される全ての他の実施例は本発明の保護範囲内に属する。
【００３１】
図１は、一実施例のコンピュータシステムのブロック図であり、当該コンピュータシステムは、プロセッサ１１０、当該プロセッサ１１０に接続される第１メモリ１２０及び第２メモリ１３０を含むことができる。ここで、当該プロセッサ１１０は、計算及び制御機能を提供し、獲得モジュール１１１、演算モジュール１１３及び制御モジュール１１２などを含むことができ、ここで、当該獲得モジュール１１１は、ＩＯ（Ｉｎｐｕｔ入力／Ｏｕｔｐｕｔ出力）インターフェースなどのハードウェアモジュールであることができ、演算モジュール１１３及び制御モジュール１１２はすべてハードウェアモジュールである。例えば、演算モジュール１１３及び制御モジュール１１２は、デジタル回路またはアナログ回路などであることができる。上記ハードウェア回路の物理的実現は、物理デバイスを含むがこれに限定されず、物理デバイスは、トランジスタ及びメモリスタなどを含むがこれらに限定されない。
【００３２】
選択的に、プロセッサは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央プロセッサ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、グラフィックプロセッサ）またはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、デジタル信号処理）のような汎用プロセッサであることができ、当該プロセッサは、ＩＰＵ（Ｉｎｔｅｌｌｉｇｅｎｃｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、インテリジェントプロセッサ）などの専用ニューラルネットワークプロセッサであることもできる。もちろん、当該プロセッサは、命令セットプロセッサ、関連チップセット、専用マイクロプロセッサ（例えば、専用集積回路（ＡＳＩＣ））またはキャッシュ（ｃａｃｈｅ）用途に使用されるオンボードメモリなどであることもである。
【００３３】
当該第１メモリまたは第２メモリには、コンピュータプログラムがさらに保存されることができ、当該コンピュータプログラムは、本出願の実施例で提供されるニューラルネットワーク処理方法を実現するために使用される。具体的に、当該ニューラルネットワーク処理方法は、当該プロセッサが受信したオリジナルネットワークに対応するオフラインモデルを生成し、当該オリジナルネットワークに対応するオフラインモデルは、当該オリジナルネットワークにおける各計算ノードのネットワークの重み及び命令などの必要なネットワーク構造情報を含むことができ、ここで、命令は、当該計算ノードがどのようなコンピューティング機能を実行するかを示すために使用され、具体的に当該オリジナルネットワークにおける各計算ノードの計算属性及び各計算ノードの間の接続関係などの情報を含むことができるため、プロセッサが当該オリジナルネットワークを再び実行する場合、同じオリジナルネットワークを再びコンパイルする必要がなく、当該オリジナルネットワークに対応するオフラインモデルを直接に実行することができるため、当該ネットワークを実行するプロセッサの実行時間を短縮し、さらにプロセッサの処理速度及び効率を向上させる。
【００３４】
さらに、第１メモリ１２０は、キャッシュなどの揮発性メモリのような内部メモリであることができ、ネットワーク入力データ、ネットワーク出力データ、ネットワークの重み及び命令などのようなニューラルネットワーク実行過程中の関連データを保存することができる。第２メモリ１３０は、外部メモリなどの不揮発性メモリであることができ、第２メモリは、ニューラルネットワークに対応するオフラインモデルを保存することができる。従って、コンピュータシステムが当該オリジナルネットワークを実行するためにオリジナルネットワークを再びコンパイルする必要がある場合、第２メモリから当該オリジナルネットワークに対応するオフラインモデルを直接に獲得することができるため、プロセッサの処理速度及び効率を向上させる。
【００３５】
もちろん、他の実施例において、当該コンピュータシステムは、プロセッサと一つのメモリを含むことができ、図２に示したように、当該コンピュータシステムは、プロセッサ２１０と当該プロセッサ２１０に接続させるメモリ２２０を含むことができる。当該プロセッサ２１０は、獲得モジュール２１１、制御モジュール２１２及び演算モジュール２１３を含むことができ、具体的な構造は、上記プロセッサ１１０に関する説明を参照することができる。当該メモリ２２０は、第１記憶ユニット２２１、第２記憶ユニット２２２及び第３記憶ユニット２２３を含むことができ、ここで、当該第１記憶ユニット２２１は、本出願の実施例で提供するニューラルネットワーク処理方法を実現するためのコンピュータプログラムを保存するために使用されることができる。当該第２記憶ユニット２２２は、オリジナルネットワークの実行過程中の関連データを保存するために使用されることができ、当該第３記憶ユニット２２３は、オリジナルネットワークに対応するオフラインモデルを保存するために使用される。さらに、当該メモリに含まれる記憶ユニットの数は３より多くてもよく、ここでは具体的に限定されない。
【００３６】
明らかに、本実施例におけるオリジナルネットワークの実行とは、プロセッサが人工ニューラルネットワークモデルデータを使用してある機械ラーニングアルゴリズム（例えば、ニューラルネットワークアルゴリズム）を実行し、フォワード演算を実行することによりアルゴリズムのターゲットアプリケーション（例えば、音声認識などの人工知能アプリケーション）を実現することを指す。本実施例において、当該オリジナルネットワークに対応するオフラインモデルを直接に実行するとは、オフラインモデルを使用して当該オリジナルネットワークに対応する機械ラーニングアルゴリズム（例えば、ニューラルネットワークアルゴリズム）実行し、フォワード演算を実行することによりアルゴリズムのターゲットアプリケーション（例えば、音声認識などの人工知能アプリケーション）を実現することを指す。
【００３７】
図３に示したように、本発明の一実施例のニューラルネットワークの処理方法は、獲得されたオリジナルネットワークの関連データに従って当該オリジナルネットワークのオフラインモデルを生成及び保存することにより、プロセッサが当該オリジナルネットワークを再び実行する場合、同じオリジナルネットワークを再びコンパイルする必要がなく、当該オリジナルネットワークに対応するオフラインモデルを直接に実行することができるため、当該ネットワークを実行するプロセッサの実行時間を短縮し、さらにプロセッサの処理速度及び効率を向上させる。具体的に、上記方法は、以下のステップを含む。
【００３８】
Ｓ１００において、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得する。具体的に、プロセッサの獲得モジュールを介してオリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得し、当該オリジナルネットワークのモデルデータセット及びモデル構造パラメータを介して当該オリジナルネットワークのネットワーク構造図を獲得することができる。ここで、モデルデータセットは、オリジナルネットワークにおける各計算ノードに対応するネットワークの重みなどのデータを含み、図７に示したニューラルネットワークにおけるＷ１〜Ｗ６は、計算ノードのネットワークの重みを表すために使用される。モデル構造パラメータは、オリジナルネットワークにおける複数の計算ノードの接続関係及び各計算ノードの計算属性を含み、ここで、計算ノードの間の接続関係は、計算ノードの間にデータ伝達があるかどうかを表すために使用され、例えば、複数の計算ノードの間にデータフローの伝達がある場合、複数の計算ノードの間に接続関係があると説明することができる。さらに、計算ノードの接続関係は、入力関係及び出力関係などを含むことができる。図７に示したように、計算ノードＦ１が計算ノードＦ４及びＦ５の入力として出力する場合、計算ノードＦ１と計算ノードＦ４との間に接続関係があり、計算ノードＦ１と計算ノードＦ４との間に接続関係があると説明できる。別の例として、計算ノードＦ１と計算ノードＦ２との間にデータ伝達がない場合、計算ノードＦ１と計算ノードＦ２との間に接続関係が存在しないと説明できる。
【００３９】
各計算ノードの計算属性は、対応する計算ノードの計算タイプ及び計算パラメータを含むことができ、ここで、計算ノードの計算タイプとは、当該計算ノードがある計算を完了することに使用されることを指し、例えば、計算ノードの計算タイプは、加算、減算、及び畳み込み算など含むことができ、対応的に、当該計算ノードは、加算を実現するための計算ノード、減算を実現するための計算ノードまたは畳み込み算を実現するための計算ノードなどであることができる。計算ノードの計算パラメータは、当該計算ノードに対応する計算タイプを完了する必要なパラメータであることができる。例えば、計算ノードの計算タイプは、加算を実現するための計算ノードであることができ、対応的に、当該計算ノードの計算パラメータは、加算における加数であることができ、当該加算における被加数は、入力データとして獲得モジュールを介して獲得することができ、または、当該加算における被加数は、当該計算ノードの前の計算ノードの出力データなどであることができる。
【００４０】
選択的に、当該オリジナルネットワークは、ＴｅｎｓｏｒＦｌｏｗ、ＭＸＮｅｔ、Ｃａｆｆｅ及びＰｙＴｏｒｃｈなどのディープラーニングシステムに基づいて、ＣＰＵ、ＧＰＵまたはＤＳＰなどの汎用プロセッサに対して構築した人工ニューラルネットワークであることができる。当該オリジナルネットワークは、ＩＰＵなどのインテリジェントプロセッサに対して構築した人工ニューラルネットワークであることもできる。例えば、当該オリジナルネットワークがＣａｆｆｅに基づいて構築したニューラルネットワークである場合、当該Ｃａｆｆｅネットワークのモデルデータセット（ｃａｆｆｅｍｏｄｅｌ）及びモデル構造パラメータ（ｐｒｏｔｏｔｘｔ）を獲得することができる。ここで、モデルデータセット（ｃａｆｆｅｍｏｄｅｌ）は、当該Ｃａｆｆｅネットワークのネットワークの重みなどのデータを含み、モデル構造パラメータ（ｐｒｏｔｏｔｘｔ）は、当該Ｃａｆｆｅネットワークの各計算ノードの計算属性及び複数の計算ノードの間の接続関係などを含む。
【００４１】
Ｓ２００において、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従ってオリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得する。具体的に、プロセッサの演算モジュールは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って当該オリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得することができる。さらに、プロセッサの獲得モジュールは、当該オリジナルネットワークの入力データをさらに獲得することができ、プロセッサの演算モジュールは、オリジナルネットワークの入力データ、ネットワークモデルデータセット及びモデル構造パラメータに従ってオリジナルネットワークを実行して、当該オリジナルネットワークにおける各計算ノードに対応する命令を獲得することができる。さらに、上記当該オリジナルネットワークを実行して各計算ノードの命令を獲得する過程は、実際にコンパイルの過程であり、当該コンパイル過程は、コンピュータシステムのプロセッサまたは仮想デバイスを介して実現することができる。即ち、コンピュータシステムのプロセッサまたは仮想デバイスは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従ってオリジナルネットワークを実行する。ここで、仮想デバイスとは、メモリのメモリ空間でプロセッサ実行空間のセクションを仮想することを指す。
【００４２】
明らかに、本実施例におけるオリジナルネットワークの実行とは、プロセッサが人工ニューラルネットワークモデルデータを使用してある機械ラーニングアルゴリズム（例えば、ニューラルネットワークアルゴリズム）を実行し、フォワード演算を実行することにより、アルゴリズムのターゲットアプリケーション（例えば、音声認識などの人工知能アプリケーション）を実現することを指す。
【００４３】
Ｓ３００において、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、オリジナルネットワークに対応するオフラインモデルを生成し、前記オリジナルネットワークに対応するオフラインモデルを不揮発性メモリ（例えば、データベース）に保存する。具体的に、当該プロセッサの制御モジュールは、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、当該オリジナルネットワークに対応するオフラインモデルを生成することができ、例えば、当該プロセッサの制御モジュールは、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を不揮発性第２メモリに保存して、オフラインモデルの生成及び保存を実現することができる。ここで、オリジナルネットワークの各計算ノードについて、当該計算ノードのネットワークの重みと命令は、１対１に対応するように保存される。このようにして、当該オリジナルネットワークを再び実行する場合、不揮発性メモリから当該オリジナルネットワークに対応するオフラインモデルを直接に獲得することができ、それに対応するオフラインモデルに従ってオリジナルネットワークを実行し、当該オリジナルネットワークの各計算ノードに対してオンラインでコンパイルして命令を獲得することなく、システムの実行速度及び効率を向上させる。
【００４４】
明らかに、本実施例において、当該オリジナルネットワークに対応するオフラインモデルを直接に実行するとは、オフラインモデルを使用して当該オリジナルネットワークに対応する機械ラーニングアルゴリズム（例えば、ニューラルネットワークアルゴリズム）実行し、フォワード演算を実行することによりアルゴリズムのターゲットアプリケーション（例えば、音声認識などの人工知能アプリケーション）を実現することを指す。
【００４５】
選択的に、図４に示したように、前記ステップＳ２００は、以下のステップを含むことができる。
【００４６】
Ｓ２１０において、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得する。具体的に、プロセッサの演算モジュールは、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得することができ、さらに、プロセッサの演算モジュールは、オリジナルネットワークにおける各計算ノードの接続関係に従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得することができる。例えば、図７に示したように、計算ノードＦ４の入力データは、計算ノードＦ１の出力データ及び計算ノードＦ２の出力データであり、計算ノードＦ６の入力データは、計算ノードＦ４の出力データ及び計算ノードＦ５の出力データである。従って、図７に示したニューラルネットワークにおける各計算ノードの実行順序は、Ｆ１−Ｆ２−Ｆ３−Ｆ４−Ｆ５−Ｆ６またはＦ１−Ｆ３−Ｆ２−Ｆ５−Ｆ４−Ｆ６などであることができる。もちろん、計算ノードＦ１、Ｆ２及びＦ３は、並列に実行することができ、計算ノードＦ４及びＦ５も並列に実行することができ、ここでは単に例として説明し、実行順序は具体的に限定されない。
【００４７】
Ｓ２２０において、オリジナルネットワークにおける各計算ノードの実行順序に応じてオリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令をそれぞれ獲得する。具体的に、プロセッサの演算モジュールは、オリジナルネットワークにおける各計算ノードの実行順序に従って当該オリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得することができ、即ち、プロセッサは、オリジナルネットワークのモデルデータセットなどのデータをコンパイルして各計算ノードに対応する命令を獲得することができ、各計算ノードに対応する命令を介して当該計算ノードがどのようなコンピューティング機能を実現するかを知ることができ、即ち、当該計算ノードの計算タイプ及び計算パラメータなどの計算属性を獲得することができる。
【００４８】
さらに、図４に示したように、前記ステップＳ３００はさらに以下のステップを含む。
【００４９】
Ｓ３１０において、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って、オリジナルネットワークのメモリ割り当て方法を獲得する。具体的に、プロセッサの演算モジュールは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って、オリジナルネットワークのメモリ割り当て方法を獲得することができる。さらに、プロセッサは、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得することができ、オリジナルネットワークにおける各計算ノードの実行順序に従って、現在のネットワークのメモリ割り当て方法を決定する。例えば、各計算ノードの実行順序に従って、各計算ノードの実行過程中の関連データは、一つのスタックに保存される。ここで、メモリ割り当て方法とは、オリジナルネットワークにおける各計算ノードに関連するデータ（入力データ、出力データ、ネットワークの重みデータ及び中間結果データなどを含む）がメモリ空間（例えば、第１メモリ）での保存位置を決定することを指す。例えば、データテーブルを使用して各計算ノードに関連するデータ（入力データ、出力データ、ネットワークの重みデータ及び中間結果データなど）とメモリ空間のマッピング関係を保存することができる。
【００５０】
Ｓ３２０において、オリジナルネットワークのメモリ割り当て方法に従って、オリジナルネットワークの実行過程中の関連データを第１メモリに保存する。ここで、オリジナルネットワークの実行過程中の関連データは、オリジナルネットワークの各計算ノードに対応するネットワークの重み、命令、入力データ、中間計算結果及び出力データなどを含む。例えば、図７に示したように、Ｘ１とＸ２は、当該ニューラルネットワークの入力データを表し、Ｙは、当該ニューラルネットワークの出力データを表し、プロセッサは、当該ニューラルネットワークの出力データをロボットまたは異なるデジタルインターフェースを制御する制御命令に転換することができる。Ｗ１〜Ｗ６は、計算ノードＦ１、Ｆ２及びＦ３に対応するネットワークの重みを表すために使用され、計算ノードＦ１〜Ｆ５の出力データは、中間計算結果として使用することができる。プロセッサは、決定されたメモリ割り当て方法に従って、オリジナルネットワークの実行過程中の関連データを内部メモリまたはキャッシュなどの揮発性メモリのような第１メモリに保存することができ、具体的な保存方法は、図８における左半部の保存空間を参照することができる。
【００５１】
Ｓ３３０において、第１メモリからオリジナルネットワークにおける各計算ノードに対応するネットワークの重み及び命令を獲得し、オリジナルネットワークにおける各計算ノードに対応するネットワークの重み及び命令を第２メモリに保存し、オフラインモデルを生成する。ここで、第２メモリは、外部メモリなどの不揮発性メモリであることができる。当該オフラインモデルの生成過程は、具体的に図８を参照することができ、図８における右半部の保存空間に保存されたのは、オリジナルネットワークの対応するオフラインモデルである。
【００５２】
図７及び図８に示したように、以下、図面に合わせて、上記オフラインモデルの生成過程を説明する。
【００５３】
まず、図７に示したように、プロセッサは、当該オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び入力データを獲得することができるため、当該オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って当該オリジナルネットワークのネットワーク構造図を獲得することができる。
【００５４】
次に、プロセッサは、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワーク各計算ノードの接続関係を獲得することができ、各計算ノードの接続関係に従ってオリジナルネットワークにおける各計算ノードの実行順序、及びオリジナルネットワークの実行過程中のメモリ割り当て方法を獲得するため、オリジナルネットワークの実行過程中の関連データの保存位置を獲得することができる。図８の左半部の保存空間に示したように、オリジナルネットワークの実行過程中の関連データは、各計算ノード実行順序に応じて一つのスタックに保存されることができる。
【００５５】
最後に、プロセッサは、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を不揮発性の第２メモリに保存し、オフラインモデルを生成することができ、当該オフラインモデルの保存方法は、図８における右半部の保存空間を参照することができる。また、当該オフラインモデルは、当該オリジナルネットワークを実行するに必要なネットワークの重み及び命令などのデータのみを含み、オリジナルネットワークの実行過程中の入力データ、出力データまたは中間計算結果などを保存する必要がないため、第２メモリにおける保存空間の消費を減少することができる。
【００５６】
さらなる改善として、オフラインモデルには、ノードインターフェースデータがさらに含まれ、ノードインターフェースデータは、オリジナルネットワークの各計算ノードの接続関係を表すために使用される。具体的に、ノードインターフェースデータは、各計算ノードの入力データソース及び出力データソースを含むことができる。例えば、図７に示したように、ノードインターフェースデータは、計算ノードＦ１、Ｆ２及びＦ３を開始計算ノードとして含むことができ、それぞれ予め設定された入力データを入力し、計算ノードＦ１の出力データは、計算ノードＦ４及び計算ノードＦ５の入力データなどである。このようにして、当該オリジナルネットワークを再び実行する場合、オリジナルネットワークの開始計算ノードと入力データのみを獲得し、その後、当該オリジナルネットワークに対応するオフラインモデルに従って当該オリジナルネットワークを実行することができる。
【００５７】
一つの実施例において、オフラインモデルを生成した直後にオフラインモデルを使用して演算を実行し、オフラインモデルを保存することもでき、計算が必要なときにオフラインモデルを使用する。図５に示したように、前記方法は以下のステップをさらに含む。
【００５８】
Ｓ４００において、新しいオリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得する。具体的に、プロセッサの獲得モジュールを介して新しいオリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得し、当該新しいオリジナルネットワークのモデルデータセット及びモデル構造パラメータを介して当該新しいオリジナルネットワークのネットワーク構造図を獲得することができる。
【００５９】
Ｓ５００において、新しいオリジナルネットワークに対応するオフラインモデルが存在するかどうかを判断する。具体的に、新しいオリジナルネットワークのモデルデータセットがオリジナルネットワークのモデルデータセットと同じであるかどうか、新しいオリジナルネットワークのモデル構造パラメータがオリジナルネットワークのモデル構造パラメータと同じであるかどうかを判断し、両者が全部同じである場合、当該新しいオリジナルネットワークとオリジナルネットワークが同じネットワークであると判断することができ、この時、当該新しいオリジナルネットワークに対応するオフラインモデルが存在すると判定することができる。
【００６０】
新しいオリジナルネットワークにオフラインモデルが存在しない場合、新しいオリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って、新しいオリジナルネットワークを実行し、新しいオリジナルネットワークに対応するオフラインモデルを生成し、新しいオリジナルネットワークに対応するオフラインモデルを不揮発性メモリに保存する。具体的に、新しいオリジナルネットワークのモデルデータセットがオリジナルネットワークのモデルデータセットと異なる場合、及び／または新しいオリジナルネットワークのモデル構造パラメータがオリジナルネットワークのモデル構造パラメータと異なる場合、当該オリジナルネットワークが新しいオリジナルネットワークと異なるネットワークに属し、当該新しいオリジナルネットワークにオフラインモデルが存在しないと判断することができる。当該新しいオリジナルネットワークにオフラインモデルが存在しない場合、上記ステップＳ１００〜ステップＳ３００を実行することができ、具体的な実行過程は上記説明を参照することができ、ここでは繰り返して説明しない。
【００６１】
さらに、複数のオフラインモデルを含む複数のデータセットを走査するか複数のオフラインモデルレコードを含む複数のデータセットを走査することにより、当該新しいオリジナルネットワークに対応するオフラインモデルが存在するかどうかを判断することができる。
【００６２】
新しいオリジナルネットワークにオフラインモデルが存在する場合、不揮発性メモリから新しいオリジナルネットワークに対応するオフラインモデルを獲得することができ、新しいオリジナルネットワークに対応するオフラインモデルに従って新しいオリジナルネットワークを実行する。具体的に、新しいオリジナルネットワークにオフラインモデルが存在する場合、以下のステップを実行することができる。
【００６３】
Ｓ５１０において、新しいオリジナルネットワークに対応するオフラインモデルを獲得する。具体的に、プロセッサの獲得モジュールは、第２メモリから当該新しいオリジナルネットワークに対応するオフラインモデルを読み取ることができ、即ち、プロセッサの獲得モジュールは、第２メモリから当該新しいオリジナルネットワークにおける各計算ノードに対応するネットワークの重み及び命令を読み取ることができる。
【００６４】
Ｓ５２０において、新しいオリジナルネットワークのモデル構造パラメータに従って、新しいオリジナルネットワークにおける各計算ノードの実行順序を獲得する。具体的に、プロセッサの演算モジュールは、新しいオリジナルネットワークにおける各計算ノードの接続関係に従って、当該新しいオリジナルネットワークにおける各計算ノードの実行順序を獲得する。具体的な実行過程は上記ステップＳ２１０を参照することができる。
【００６５】
Ｓ５３０において、新しいオリジナルネットワークにおける各計算ノードの実行順序に従って、オフラインモデルから新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得する。具体的に、プロセッサの獲得モジュールは、新しいオリジナルネットワークにおける各計算ノードの実行順序に従って、オフラインモデルから新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得することができる。
【００６６】
Ｓ５４０において、新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、新しいオリジナルネットワークを実行する。具体的に、プロセッサの演算モジュールは、新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、当該新しいオリジナルネットワークを直接に実行し、各計算ノードを繰り返してコンパイルする必要がない。
【００６７】
例えば、図７に示したニューラルネットワークにおける各計算ノードの実行順序は、Ｆ１−Ｆ２−Ｆ３−Ｆ４−Ｆ５−Ｆ６であることができ、当該ニューラルネットワークにオフラインモデルが存在する場合、まずオフラインモデルから計算ノードＦ１に対応するネットワークの重み及び命令を獲得することができ、その後、計算命令Ｆ２〜Ｆ６のネットワークの重み及び命令を順次に獲得するため、当該新しいオリジナルネットワークの各計算ノードを順次に実行することができ、当該新しいオリジナルネットワークにおける各ノードを再びコンパイルする必要なく、プロセッサの実行速度及び効率を向上させる。
【００６８】
一つの実施例において、オフラインモデルには、ノードインターフェースデータがさらに含まれ、当該ノードインターフェースデータは、オリジナルネットワークの各計算ノードの接続関係を表すために使用され、例えば、当該ノードインターフェースデータは、各計算ノードの入力データソース及び出力データソースを含むことができる。このとき、オリジナルネットワークに対応するオフラインモデルに従って、新しいオリジナルネットワークを実行するステップは、以下のステップを含む。
【００６９】
新しいオリジナルネットワークに対応するオフラインモデルを獲得するステップを含む。具体的に、プロセッサの獲得モジュールは、第２メモリから当該新しいオリジナルネットワークに対応するオフラインモデルを読み取ることができ、オフラインモデルは、ノードインターフェースデータを含む。
【００７０】
新しいオリジナルネットワークのモデル構造パラメータに従って、新しいオリジナルネットワークの開始計算ノードを獲得する。具体的に、プロセッサの演算モジュールは、新しいオリジナルネットワークのモデル構造パラメータ新しいオリジナルネットワークの開始計算ノードを獲得することができる。ここで、当該開始計算ノードの入力データは、計算ノードＦ１、Ｆ２及びＦ３のようなネットワーク入力データであり、開始計算ノードの前には、他の計算ノードが存在しない。
【００７１】
新しいオリジナルネットワークの開始計算ノードとオフラインモデルにおけるノードインターフェースデータに従って、オフラインモデルから新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を獲得する。具体的に、プロセッサの獲得モジュールは、新しいオリジナルネットワークの開始計算ノードとオフラインモデルにおけるノードインターフェースデータに従って、オフラインモデルから新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得することができる。
【００７２】
新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、新しいオリジナルネットワークを実行する。具体的に、プロセッサの演算モジュールは、新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、新しいオリジナルネットワークを実行することができる。
【００７３】
例えば、図７に示したニューラルネットワークにおける開始計算ノードは、計算ノードＦ１、Ｆ２及びＦ３であり、当該ニューラルネットワークにオフラインモデルが存在する場合、まずオフラインモデルから各開始計算ノードＦ１、Ｆ２及びＦ３の命令及びネットワークの重みを獲得することができ、その後、オフラインモデルにおけるノードインターフェースデータに従って、当該開始計算ノードＦ１、Ｆ２及びＦ３に接続された計算ノードＦ４及びＦ５を獲得するため、計算ノードＦ４及びＦ５の命令及びネットワークの重みを獲得することができる。その後、オフラインモデルにおけるノードインターフェースデータに従って、計算ノードＦ４及びＦ５に接続された計算ノードＦ６を獲得し、計算ノードＦ６の命令及びネットワークの重みを獲得することができる。このようにして、当該新しいオリジナルネットワークの各計算ノードを順次に実行することができ、当該新しいオリジナルネットワークにおける各ノードを再びコンパイルする必要がなく、プロセッサの実行速度及び効率を向上させる。
【００７４】
さらに、オフラインモデルにノードインターフェースデータが含まれる場合、当該インターフェイスデータには、オリジナルネットワークにおける各計算ノードの間の接続関係だけでなく、当該オリジナルネットワークの開始計算ノードなどの情報も含まれる。このとき、オリジナルネットワークに対応するオフラインモデルに従って、新しいオリジナルネットワークを実行するステップは、以下のステップを含む。
【００７５】
新しいオリジナルネットワークに対応するオフラインモデルを獲得する。具体的に、プロセッサの獲得モジュールは、第２メモリから当該新しいオリジナルネットワークに対応するオフラインモデルを読み取ることができ、オフラインモデルは、ノードインターフェースデータを含み、当該ノードインターフェースデータを介して、当該新しいオリジナルネットワークの開始計算ノードと他の各計算ノードとの間の接続関係など情報を獲得することができる。
【００７６】
新しいオリジナルネットワークの開始計算ノードとオフラインモデルにおけるノードインターフェースデータに従って、オフラインモデルから新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得する。具体的に、プロセッサの獲得モジュールは、新しいオリジナルネットワークの開始計算ノードとオフラインモデルにおけるノードインターフェースデータに従って、オフラインモデルから新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得することができる。
【００７７】
新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、新しいオリジナルネットワークを実行する。具体的に、プロセッサの演算モジュールは、新しいオリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、新しいオリジナルネットワークを実行することができる。
【００７８】
一つの実施例において、図６に示したように、本発明の一実施例は、ニューラルネットワークの処理方法をさらに提供し、上記方法は、以下のステップを含む。
【００７９】
Ｓ６１０において、オリジナルネットワークのモデル構造パラメータを獲得する。ここで、モデル構造パラメータは、オリジナルネットワークにおける複数の計算ノードの接続関係を含む。具体的に、計算ノードの間の接続関係は、計算ノードの間にデータ伝達があるかどうかを表すために使用され、例えば、複数の計算ノードの間にデータフローの伝達がある場合、複数の計算ノードの間に接続関係があることを説明することができる。さらに、計算ノードの接続関係は、入力関係と出力関係などを含むことができる。
【００８０】
Ｓ６２０において、不揮発性メモリからオリジナルネットワークに対応するオフラインモデルを獲得する。ここで、オリジナルネットワークに対応するオフラインモデルには、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令が含まれ、オリジナルネットワークの各計算ノードについて、当該計算ノードのネットワークの重み及び命令は、１対１に対応するように保存される。プロセッサは、各計算ノードに対応する命令を介して、当該計算ノードがどのようなコンピューティング機能を実現するために使用されるかを獲得することができ、当該計算ノードの計算タイプ及び計算パラメータなどの計算属性を獲得することができる。
【００８１】
Ｓ６３０において、オリジナルネットワークに対応するオフラインモデル及びオリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークを実行する。具体的に、本実施例において、当該オリジナルネットワークに対応するオフラインモデルを直接に実行するとは、オフラインモデルを使用して当該オリジナルネットワークに対応する機械ラーニングアルゴリズム（例えば、ニューラルネットワークアルゴリズム）実行し、フォワード演算を実行することによりアルゴリズムのターゲットアプリケーション（例えば、音声認識などの人工知能アプリケーション）を実現することを指す。
【００８２】
一つの実施例において、上記ステップＳ６３０は、具体的に図５におけるステップＳ５１０〜ステップＳ５４０を介して実現されることができる。具体的に、上記ステップＳ６３０は以下のステップを含むことができる。
【００８３】
オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得する。具体的に、プロセッサの演算モジュールは、オリジナルネットワークにおける各計算ノードの接続関係に従って、当該オリジナルネットワークにおける各計算ノードの実行順序を獲得することができる。その具体的な実行過程は上記ステップＳ２１０を参照することができる。
【００８４】
オリジナルネットワークにおける各計算ノードの実行順序に従って、オフラインモデルから当該オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得する。具体的に、プロセッサの獲得モジュールは、オリジナルネットワークにおける各計算ノードの実行順序に従って、オフラインモデルから当該オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得する。
【００８５】
オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、オリジナルネットワークを実行する。具体的に、プロセッサの演算モジュールは、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、当該オリジナルネットワークを直接に実行し、各計算ノードを繰り返してコンパイルする必要がない。
【００８６】
一つの実施例において、オフラインモデルには、ノードインターフェースデータがさらに含まれ、当該ノードインターフェースデータは、オリジナルネットワークの各計算ノードの接続関係を表すために使用され、例えば、当該ノードインターフェースデータは、各計算ノードの入力データソースと出力データソースを含むことができる。このとき、オリジナルネットワークに対応するオフラインモデル及びオリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークを実行するステップは、以下のステップを含む。
【００８７】
オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークの開始計算ノードを獲得する。具体的に、プロセッサの演算モジュールは、オリジナルネットワークのモデル構造パラメータに従って、当該オリジナルネットワークの開始計算ノードを獲得することができる。ここで、当該開始計算ノードの入力データは、計算ノードＦ１、Ｆ２及びＦ３のようなネットワーク入力データであり、開始計算ノードの前には、他の計算ノードが存在しない。
【００８８】
当該オリジナルネットワークの開始計算ノードとオフラインモデルにおけるノードインターフェースデータに従って、オフラインモデルから当該オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得する。具体的に、プロセッサの獲得モジュールは、当該オリジナルネットワークの開始計算ノードとオフラインモデルにおけるノードインターフェースデータに従って、オフラインモデルから当該オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得することができる。
【００８９】
当該オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、当該オリジナルネットワークを実行する。
【００９０】
さらに、オフラインモデルにノードインターフェースデータが含まれる場合、このとき、オリジナルネットワークに対応するオフラインモデル及びオリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークを実行するステップは、以下のステップを含むことができる。
【００９１】
当該オリジナルネットワークの開始計算ノードとオフラインモデルにおけるノードインターフェースデータに従って、オフラインモデルから当該オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得する。具体的に、プロセッサの獲得モジュールは、当該オリジナルネットワークの開始計算ノードとオフラインモデルにおけるノードインターフェースデータに従って、オフラインモデルから当該オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を順次に獲得することができる。
【００９２】
当該オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、当該オリジナルネットワークを実行する。
【００９３】
当業者は、上記実施例方法における全部または一部のプロセスの実現は、コンピュータプログラムに介して関連するハードウェアを命令して完了し、前記プログラムはコンピュータ可読記憶媒体に保存されることができ、当該プログラムは実行時に、上記各方法の実施例のプロセスを含むことができることを理解できる。ここで、本出願で提供される各実施例に使用されるメモリ、ストレージ、データベースまたは他の媒体への参照は、すべて不揮発性及び／または揮発性メモリを含むことができる。不揮発性メモリは、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的にプログラム可能なＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能なＲＯＭ（ＥＥＰＲＯＭ）またはフラッシュメモリを含むことができる。揮発性メモリは、ランダムアクセスメモリ（ＲＡＭ）または外部高速キャッシュメモリを含むことができる。制限ではない説明として、ＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、同期リンク（Ｓｙｎｃｈｌｉｎｋ）、ＤＲＡＭ（ＳＬＤＲＡＭ）、ラムバス（Ｒａｍｂｕｓ）ダイレクトＲＡＭ（ＲＤＲＡＭ）、ダイレクトラムバスダイナミックＲＡＭ（ＤＲＤＲＡＭ）、ラムバスダイナミックＲＡＭ（ＲＤＲＡＭ）などのようなさまざまな形式で獲得することができる。
【００９４】
同時に、本発明の一実施例は、プロセッサ、第１メモリ及び第２メモリを含み、第１メモリまたは前記第２メモリにはコンピュータプログラムが保存され、プロセッサがコンピュータプログラムを実行するとき、上記いずれかの一つの実施例の方法を実行するコンピュータシステムをさらに提供する。具体的に、当プロセッサがコンピュータプログラムを実行するとき、具体的に以下のステップを実行する。
【００９５】
オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得する。具体的に、プロセッサの獲得モジュールを介して、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得することができ、当該オリジナルネットワークのモデルデータセット及びモデル構造パラメータを介して、当該オリジナルネットワークのネットワーク構造図を獲得することができる。ここで、モデルデータセットは、オリジナルネットワークにおける各計算ノードに対応するネットワークの重みなどのデータを含み、モデル構造パラメータは、オリジナルネットワークにおける複数の計算ノードの接続関係及び各計算ノードの計算属性を含み、ここで、計算ノードの間の接続関係は、計算ノードの間にデータ伝達があるかどうかを表すために使用され、各計算ノードの計算属性は、対応する計算ノードの計算タイプ及び計算パラメータを含むことができ、ここで、計算ノードの計算タイプとは、当該計算ノードがある計算を完了することに使用されることを指し、例えば、計算ノードの計算タイプは、加算、減算、及び畳み込み算など含むことができ、対応的に、当該計算ノードは、加算を実現するための計算ノード、減算を実現するための計算ノードまたは畳み込み算を実現するための計算ノードなどであることができる。計算ノードの計算パラメータは、当該計算ノードに対応する計算タイプを完了する必要なパラメータであることができる。
【００９６】
オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って、オリジナルネットワークを実行し、オリジナルネットワークにおける各計算ノードに対応する命令を獲得する。具体的に、プロセッサの演算モジュールは、オリジナルネットワークのモデルデータセットとモデル構造パラメータに従って、当該オリジナルネットワークを実行し、オリジナルネットワークにおける各計算ノードに対応する命令を獲得する。さらに、プロセッサの獲得モジュールは、当該オリジナルネットワークの入力データをさらに獲得することができ、プロセッサの演算モジュールは、オリジナルネットワークの入力データ、ネットワークモデルデータセットとモデル構造パラメータに従って、オリジナルネットワークを実行し、当該オリジナルネットワークにおける各計算ノードに対応する命令を獲得する。さらに、上記当該オリジナルネットワークを実行して各計算ノードの命令を獲得する過程は、実際にコンパイルの過程であり、当該コンパイル過程は、仮想デバイスまたはコンピュータシステムのプロセッサを介して実現することができる。即ち、仮想デバイスまたはコンピュータシステムのプロセッサは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従ってオリジナルネットワークを実行する。ここで、仮想デバイスとは、メモリのメモリ空間でプロセッサ実行空間のセクションを仮想することを指す。
【００９７】
オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、オリジナルネットワークに対応するオフラインモデルを生成し、オリジナルネットワークに対応するオフラインモデルを不揮発性メモリに保存する。具体的に、当該プロセッサの制御モジュールは、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、当該オリジナルネットワークに対応するオフラインモデルを生成し、例えば、当該プロセッサの制御モジュールは、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を第２メモリなどの不揮発性メモリに保存して、オフラインモデルの生成及び保存を実現することができる。このようにして、当該オリジナルネットワークを再び実行する場合、それに対応するオフラインモデルに従って、オリジナルネットワークを直接に実行することができ、当該オリジナルネットワークの各計算ノードに対してオンラインでコンパイルして命令を獲得することなく、システムの実行速度及び効率を向上させる。
【００９８】
さらに、上記コンピュータシステムは、図１または図２に示したコンピュータシステムであることができ、当該コンピュータシステムのプロセッサは、中央プロセッサ、画像プロセッサ、デジタル信号プロセッサ、フィールド編集可能なゲートアレイまたはインテリジェントプロセッサのうちの一つまたは複数の組合せであることができる。明らかに、本実施例におけるコンピュータシステムの動作原理は、基本的に上記方法における各ステップの実行過程と一致し、具体的に上記の説明を参照することができ、ここでは繰り返して説明しない。
【００９９】
なお、本発明の一実施例は、コンピュータ記憶媒体をさらに提供し、当該コンピュータ記憶媒体にはコンピュータプログラムが保存され、コンピュータプログラムが一つまたは複数のプロセッサに実行される場合、上記いずれかの一つの実施例の方法を実行する。ここで、当該コンピュータ記憶媒体は、不揮発性及び／または揮発性メモリを含むことができる。不揮発性メモリは、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的にプログラム可能なＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能なＲＯＭ（ＥＥＰＲＯＭ）またはフラッシュメモリを含むことができる。揮発性メモリは、ランダムアクセスメモリ（ＲＡＭ）または外部高速キャッシュメモリを含むことができる。制限ではない説明として、ＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、同期リンク（Ｓｙｎｃｈｌｉｎｋ）、ＤＲＡＭ（ＳＬＤＲＡＭ）、ラムバス（Ｒａｍｂｕｓ）ダイレクトＲＡＭ（ＲＤＲＡＭ）、ダイレクトラムバスダイナミックＲＡＭ（ＤＲＤＲＡＭ）、ラムバスダイナミックＲＡＭ（ＲＤＲＡＭ）などのようなさまざまな形式で獲得することができる。
【０１００】
上記ニューラルネットワーク処理方法、コンピュータシステム及び記憶媒体は、オリジナルネットワーク実行過程に生成された各計算ノードに対応する命令、及びオリジナルネットワークの各計算ノードに対応するネットワークの重みを保存することにより、オリジナルネットワークに対応するオフラインモデルを獲得し、このようにして、当該オリジナルネットワークを再び実行する場合、当該オリジナルネットワークのモデルデータセット及びモデル構造パラメータなどの関連データに対して再びコンパイルする必要がなく、当該オリジナルネットワークに対応するオフラインモデルを直接に実行することができるため、同じネットワークを実行するプロセッサの実行時間を短縮し、さらにプロセッサの処理速度及び効率を向上させる。
【０１０１】
本出願の他の実施例において、コンピュータシステムは、複数のプロセッサによって形成されるマルチラインシステムであることができ、ここで、プロセッサは、メインプロセッサ及び一つまたは複数のコプロセッサを含むことができ、各プロセッサは、一つのメモリが対応して設置されることができる。具体的に、図９に示したように、当該コンピュータシステム３００は、第１プロセッサ３１０と、当該第１プロセッサ３１０に接続される第１メモリ３２０及び第２メモリ３３０と、当該第１プロセッサ３１０に接続される一つまたは複数の第２プロセッサ３４０と、及び各第２プロセッサ３４０に対応して設置される第３メモリ３５０とを含むことができる。ここで、当該第１プロセッサ３１０は、計算及び制御能力を提供するために使用され、第１獲得モジュール３１１、第１演算モジュール３１３及び第１制御モジュール３１２などを含むことができ、ここで、当該第１獲得モジュール３１１は、ＩＯ（Ｉｎｐｕｔ入力／Ｏｕｔｐｕｔ出力）インターフェースなどのハードウェアモジュールであることができ、第１演算モジュール３１３及び第１制御モジュール３１２はすべてハードウェアモジュールである。例えば、第１演算モジュール３１３及び第１制御モジュール３１２は、デジタル回路またはアナログ回路などであることができる。上記ハードウェア回路の物理的実現は、物理デバイスを含むがこれに限定されず、物理デバイスは、トランジスタ及びメモリスタなどを含むがこれらに限定されない。
【０１０２】
選択的に、第１プロセッサ３１０は、メインプロセッサであってもよく、当該第１プロセッサ３１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央プロセッサ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ，グラフィックプロセッサ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、フィールド編集可能なゲートアレイ）またはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、デジタル信号処理）などのような汎用プロセッサであることができる。一つまたは複数の第２プロセッサは、コプロセッサであってもよく、当該第２プロセッサ３４０は、ＩＰＵ（Ｉｎｔｅｌｌｉｇｅｎｃｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、インテリジェントプロセッサ）などの専用ニューラルネットワークプロセッサであることができ、当該第２プロセッサ３４０は、汎用プロセッサであることもできる。さらに、当該第２プロセッサ３４０は、第２獲得モジュール、第２演算モジュール及び第２制御モジュールなどを含むことができ、ここで、当該第２獲得モジュールは、ＩＯ（Ｉｎｐｕｔ入力／Ｏｕｔｐｕｔ出力）インターフェースなどのハードウェアモジュールであることができ、第２演算モジュール及び第２制御モジュールはすべてハードウェアモジュールであり、例えば、第２演算モジュール及び第２制御モジュールは、デジタル回路またはアナログ回路などであることができる。上記ハードウェア回路の物理的実現は、物理デバイスを含むがこれに限定されず、物理デバイスは、トランジスタ及びメモリスタなどを含むがこれらに限定されない。第２獲得モジュール、第２演算モジュールと第２制御モジュールとの間の接続関係は、第１プロセッサにおける各モジュールの接続関係と類似し、第１プロセッサにおける各モジュールの接続関係を参照することができる。
【０１０３】
当該第１メモリ３２０または第２メモリ３３０にはコンピュータプログラムがさらに保存されることができ、当該コンピュータプログラムは、本出願の実施例で提供されるニューラルネットワーク処理方法を実現するために使用される。具体的に、当該ニューラルネットワーク処理方法は、当該第１プロセッサが受信したオリジナルネットワークに対応するオフラインモデルを生成し、当該オフラインモデルは、第１オフラインモデルを含むことができ、第１オフラインモデルには、オリジナルネットワークに第１運用属性を備えるすべての計算ノードに対応するネットワークの重み及び命令が含まれるため、プロセッサが当該オリジナルネットワークを再び実行する場合、当該第１オフラインモデルから第１運用属性を備えるすべての計算ノードに対応するネットワークのすべての重み及び命令を直接に獲得することができ、同じオリジナルネットワークにおける第１運用属性を有する計算ノードに対してコンパイルなどの動作を再び行う必要なく、当該ネットワークを実行するプロセッサの実行時間を短縮し、さらにプロセッサの処理速度及び効率を向上させる。さらに、当該オリジナルネットワークに対応するオフラインモデルは、第２オフラインモデルをさらに含むことができ、第２オフラインモデルには、オリジナルネットワークに第２運用属性を備えるすべての計算ノードに対応するネットワークの重み及び命令が含まれる。
【０１０４】
さらに、第１メモリ３２０は、ネットワーク入力データ、ネットワーク出力データ、ネットワークの重み及び命令などのようなニューラルネットワークの実行過程中の関連データを保存するために使用されるキャッシュなどの揮発性メモリのような内部メモリであることができる。第２メモリ３３０と第３メモリ３５０は、外部メモリなどの不揮発性メモリであることができる。従って、コンピュータシステムが同じオリジナルネットワークに対して再びコンパイルして、当該オリジナルネットワークを実行する必要がある場合、第１オフラインモデル及び第２オフラインモデルから当該オリジナルネットワークにおける各計算ノードに対応するネットワークの重み及び命令を直接に獲得することができるため、プロセッサの処理速度及び効率を向上させる。
【０１０５】
一つの実施例において、図９に示されたコンピュータシステムにおいて、本発明の一実施例のニューラルネットワークの処理方法は、当該第１プロセッサが受信したオリジナルネットワークに対応するオフラインモデルを生成して、当該コンピュータシステムの処理効率及び速度を向上させる。具体的に、図１０に示したように、上記方法は、以下のステップを含む。
【０１０６】
Ｓ７００において、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得する。ここで、モデルデータセットは、オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、モデル構造パラメータは、オリジナルネットワークにおける複数の計算ノードの接続関係を含む。具体的に、第１プロセッサの第１獲得モジュールを介して、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得することができ、当該オリジナルネットワークのモデルデータセット及びモデル構造パラメータを介して、当該オリジナルネットワークのネットワーク構造図を獲得することができる。ここで、モデルデータセットは、オリジナルネットワークにおける各計算ノードに対応するネットワークの重みなどのデータを含み、図１４に示したニューラルネットワークにおけるＷ１〜Ｗ６は、計算ノードのネットワークの重みを表すために使用される。モデル構造パラメータは、オリジナルネットワークにおける複数の計算ノードの接続関係及び各計算ノードの計算属性を含み、ここで、計算ノードの間の接続関係は、計算ノードの間にデータ伝達があるかどうかを表すために使用され、例えば、複数の計算ノードの間にデータフローの伝達がある場合、複数の計算ノードの間に接続関係があると説明することができる。さらに、計算ノードの接続関係は、入力関係及び出力関係などを含むことができる。図１４に示したように、計算ノードＣ１が計算ノードＩ１及びＩ２の入力として出力する場合、計算ノードＣ１と計算ノードＩ１との間に接続関係があり、計算ノードＣ１と計算ノードＩ２との間に接続関係があると説明できる。別の例として、計算ノードＣ１と計算ノードＣ２との間にデータ伝達がない場合、計算ノードＣ１と計算ノードＣ２との間に接続関係が存在しないと説明できる。
【０１０７】
各計算ノードの計算属性は、対応する計算ノードの計算タイプ及び計算パラメータを含むことができ、ここで、計算ノードの計算タイプとは、当該計算ノードがある計算を完了することに使用されることを指し、例えば、計算ノードの計算タイプは、加算、減算、及び畳み込み算など含むことができ、対応的に、当該計算ノードは、加算を実現するための計算ノード、減算を実現するための計算ノードまたは畳み込み算を実現するための計算ノードなどであることができる。計算ノードの計算パラメータは、当該計算ノードに対応する計算タイプを完了する必要なパラメータであることができる。例えば、計算ノードの計算タイプは、加算を実現するための計算ノードであることができ、対応的に、当該計算ノードの計算パラメータは、加算における加数であることができ、当該加算における被加数は、入力データとして獲得モジュールを介して獲得することができ、または、当該加算における被加数は、当該計算ノードの前の計算ノードの出力データなどであることができる。
【０１０８】
Ｓ７１０において、オリジナルネットワークにおける各計算ノードの運用属性を獲得し、計算ノードの運用属性は、第１運用属性と第２運用属性を含む。具体的に、第１プロセッサの第１獲得モジュールまたは第１演算モジュールは、当該オリジナルネットワークにおける各計算ノードの運用属性を獲得することができる。ここで、計算ノードの運用属性は、当該計算ノードに対応する計算命令がどのプロセッサで実行されるかを表示するために使用される。本実施例において、第１運用属性は、当該計算ノードに対応する計算命令は、ＩＰＵなどの専用ニューラルネットワークプロセッサで実行されることができ、第２運用属性は、当該計算ノードに対応する計算命令がＣＰＵ、ＧＰＵ、ＤＳＰなどの汎用プロセッサで実行することができることを表すために使用される。
【０１０９】
さらに、列挙方法を介して、各計算ノードの運用属性を表現及び保存することができる。例えば、一つの列挙変量ｄｅｖｉｃｅを定義することができ、当該列挙変量は、二つ以上の列挙値を含むことができる。現在の計算ノードの運用属性が第１運用属性である場合、当該列挙変量の列挙値は、１であることができ、現在の計算ノードの運用属性が第２運用属性である場合、当該列挙変量の列挙値は、０であることができる。
【０１１０】
Ｓ７２０において、オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び各計算ノードの運用属性に従ってオリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得する。具体的に、第１プロセッサの第１演算モジュールは、オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び各計算ノードの運用属性に従って、当該オリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得することができる。さらに、第１プロセッサの第１獲得モジュールは、当該オリジナルネットワークの入力データをさらに獲得することができ、第１プロセッサの第１演算モジュールは、オリジナルネットワークの入力データ、ネットワークモデルデータセット、モデル構造パラメータ及び各計算ノードの運用属性に従って、オリジナルネットワークを実行して、当該オリジナルネットワークにおける各計算ノードに対応する命令を獲得することができる。さらに、上記当該オリジナルネットワークを実行して各計算ノードの命令を獲得する過程は、実際にコンパイルの過程であり、当該コンパイル過程は、コンピュータシステムのプロセッサまたは仮想デバイスを介して実現することができる。即ち、コンピュータシステムのプロセッサまたは仮想デバイスは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従ってオリジナルネットワークを実行する。ここで、仮想デバイスとは、メモリのメモリ空間でプロセッサ実行空間のセクションを仮想することを指す。
【０１１１】
明らかに、本実施例におけるオリジナルネットワークの実行とは、プロセッサが人工ニューラルネットワークモデルデータを使用してある機械ラーニングアルゴリズム（例えば、ニューラルネットワークアルゴリズム）を実行し、フォワード演算を実行することにより、アルゴリズムのターゲットアプリケーション（例えば、音声認識などの人工知能アプリケーション）を実現することを指す。
【０１１２】
Ｓ７３０において、現在の計算ノードの運用属性が第１運用属性である場合、現在の計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存して、オリジナルネットワークに対応する第１オフラインモデルを獲得する。具体的に、現在の計算ノードの運用属性が第１運用属性である場合、当該第１プロセッサの第１制御モジュールは、現在の計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存して、オリジナルネットワークに対応する第１オフラインモデルを獲得することができる。ここで、当該第１不揮発性メモリは、ＩＰＵなどの専用ニューラルネットワークプロセッサに対応する第３メモリであることができる。さらに、オリジナルネットワークの各計算ノードについて、当該計算ノードのネットワークの重み及び命令は、１対１に対応するように保存される。このようにして、当該オリジナルネットワークを再び実行する場合、第１不揮発性メモリから当該オリジナルネットワークに対応する第１オフラインモデルを直接に獲得することができ、当該第１オフラインモデルに従って、オリジナルネットワークにおけるすべての第１運用属性を有する計算ノードを実行し、当該オリジナルネットワークにおける第１運用属性を有する計算ノードに対してオンラインでコンパイルして命令を獲得することなく、システムの実行速度及び効率を向上させる。
【０１１３】
明らかに、本実施例において、当該オリジナルネットワークに対応する第１オフラインモデルを直接に実行するとは、第１オフラインモデルを使用して当該オリジナルネットワークに対応する機械ラーニングアルゴリズム（例えば、ニューラルネットワークアルゴリズム）実行し、フォワード演算を実行することによりアルゴリズムのターゲットアプリケーション（例えば、音声認識などの人工知能アプリケーション）を実現することを指す。
【０１１４】
選択的に、各計算ノードの運用属性は、当該オリジナルネットワークのネットワーク構造パラメータまたはモデルデータセットに事前に保存されることができ、このとき、当該オリジナルネットワークを読み取る過程において、当該オリジナルネットワークにおける各計算ノードの運用属性を直接に獲得することができる。即ち、上記ステップＳ７１０は、具体的に、以下のステップを含むことができる。
【０１１５】
オリジナルネットワークのモデルデータセットまたはモデル構造パラメータからオリジナルネットワークにおける各計算ノードの運用属性を獲得する。具体的に、各計算ノードの運用属性は、当該オリジナルネットワークのネットワーク構造パラメータまたはモデルデータセットに事前に保存されることができる。第１プロセッサの第１獲得モジュールは、オリジナルネットワークのモデルデータセットまたはモデル構造パラメータを獲得する過程において、当該オリジナルネットワークにおける各計算ノードの運用属性を獲得することができる。
【０１１６】
選択的に、当該オリジナルネットワークにおける各計算ノードの運用属性は、第１プロセッサの第１獲得モジュールのオリジナルネットワークを獲得する過程においてリアルタイムで獲得されることができる。上記ステップＳ７１０は、具体的に以下のステップを含む。
【０１１７】
各計算ノードか専用ニューラルネットワークプロセッサで実行することができるかどうかをそれぞれ判断し、具体的に、第１プロセッサの第１演算モジュールは、各計算ノードが専用ニューラルネットワークプロセッサで実行することができるかどうかをそれぞれ判断することができる。
【０１１８】
現在の計算ノードが専用ニューラルネットワークプロセッサで実行することができる場合、現在の計算ノードを第１運用属性として表記し、現在の計算ノードが汎用プロセッサのみで実行できる場合、現在の計算ノードを第２運用属性として表記する。従って、第１プロセッサがオリジナルネットワークを読み取る過程において、オリジナルネットワークにおける各計算ノードの運用属性をリアルタイムで判断することができる。例えば、現在の計算ノードの運用属性が第１運用属性である場合、現在の計算ノードに対応する列挙変量を、１として表記し、そうでない場合、現在の計算ノードに対応する列挙変量を、０として表記する。
【０１１９】
さらに、第１プロセッサの第１演算モジュールは、予め設定された関数テーブルを介して、現在の計算ノードに第１運用属性を備える等価計算ノードが存在するかどうかを照会することができ、現在の計算ノードが第１運用属性の等価計算ノードを備える場合、現在の計算ノードの運用属性を第１運用属性として表記することができる。予め設定された関数テーブルを介して、現在の計算ノードと一致する第１運用属性を備える等価計算ノードが照会されない場合、当該現在の計算ノードの運用属性が第２運用属性である。図１２に示したように、上記ステップＳ７１０は、以下のようなステップをさらに含む。
【０１２０】
Ｓ７１１において、予め設定された関数テーブルを介して現在の計算ノードに等価計算ノードが存在するかどうかを照会し、ここで、等価計算ノードは、専用ニューラルネットワークプロセッサで実行することができる計算ノードである。
【０１２１】
現在の計算ノードに等価計算ノードが存在する場合、ステップＳ７１２を実行し、現在の計算ノードが専用ニューラルネットワークプロセッサで実行することができると判定する。このとき、ステップＳ７１３を実行することができ、現在の計算ノードの運用属性を第１運用属性として表記する。具体的に、現在の計算ノードに対応する計算命令が専用ニューラルネットワークプロセッサに対応する計算命令に変換できる場合、現在の計算ノードに第１運用属性を備える等価計算ノードが存在するとみなされ、当該計算ノードの運用属性を第１運用属性として表記することができる。
【０１２２】
現在の計算ノードに等価計算ノードが存在しない場合、ステップＳ７１４を実行することができ、現在の計算ノードがＣＰＵなどの汎用プロセッサのみで実行することができると判定する。このとき、ステップＳ７１５を実行することができ、現在の計算ノードの運用属性を第２運用属性として表記する。具体的に、現在の計算ノードに対応する計算命令が専用ニューラルネットワークプロセッサに対応する計算命令に変換できない場合、現在の計算ノードに第１運用属性を備える等価計算ノードが存在しないとみなされ、現在の計算ノードの運用属性を第２運用属性として表記することができる。
【０１２３】
一つの実施例において、図１１に示したように、上記ステップＳ７２０は、さらに以下のステップを含む。
【０１２４】
Ｓ７２１において、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得する。具体的に、第１プロセッサの第１演算モジュールは、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得することができ、さらに、第１プロセッサの第１演算モジュールは、オリジナルネットワークにおける各計算ノードの接続関係に従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得することができる。例えば、図１４に示したように、計算ノードＩ１の入力データは、計算ノードＣ１の出力データ及び計算ノードＣ２の出力データであり、計算ノードＩ３の入力データは、計算ノードＩ１の出力データ及び計算ノードＩ２の出力データである。従って、図１４に示したニューラルネットワークにおける各計算ノードの実行順序は、Ｃ１−Ｃ２−Ｃ３−Ｉ１−Ｉ２−Ｉ３−Ｃ４−Ｃ５−Ｉ４などであることができる。もちろん、計算ノードＣ１、Ｃ２及びＣ３は、並列に実行することができ、計算ノードＩ１及びＩ２も並列に実行することができ、ここでは単なる例示であり、その実行順序は、具体的に限定されない。
【０１２５】
Ｓ７２２において、各計算ノードの運用属性に従って、各計算ノードに対応するターゲットプロセッサをそれぞれ獲得する。具体的に、第１プロセッサの第１演算モジュールは、オリジナルネットワークにおける各計算ノードの運用属性に従って、各計算ノードに対応するターゲットプロセッサを獲得することができる。例えば、計算ノードＣ１〜Ｃ５の運用属性が第２運用属性（例えば、ＣＰＵ運用属性）である場合、計算ノードＣ１〜Ｃ５に対応するターゲットプロセッサは、ＣＰＵであり、それは第１プロセッサであることができ、コプロセッサの第２プロセッサであることもできる。計算ノードＩ１〜Ｉ４の運用属性が第１運用属性である場合、計算ノードＩ１〜Ｉ４に対応する動作ターゲットプロセッサは、ＩＰＵなどのニューラルネットワーク専用プロセッサである。
【０１２６】
Ｓ７２３において、オリジナルネットワークにおける各計算ノードの実行順序に応じて、各計算ノードに対応するターゲットプロセッサを介して、各計算ノードをそれぞれ実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得する。具体的に、第１プロセッサの第１制御モジュールは、オリジナルネットワークにおける各計算ノードの実行順序に応じて、現在の計算ノードに対応するターゲットプロセッサがＩＰＵなどのニューラルネットワーク専用プロセッサである場合、コプロセッサとしてのニューラルネットワーク専用プロセッサを制御し、現在の計算ノードを実行して、現在の計算ノードに対応する命令を獲得することができる。現在の計算ノードに対応するターゲットプロセッサがＣＰＵである場合、ＣＰＵを制御し、現在の計算ノードを実行して、現在の計算ノードに対応する命令を獲得することができる。現在の計算ノードに対応するターゲットプロセッサがＧＰＵである場合、ＧＰＵを制御し、現在の計算ノードを実行するか、ＣＰＵなどの汎用プロセッサを制御し、現在の計算ノードを実行することができる。
【０１２７】
さらに、図１１に示したように、上記ステップＳ７３０は、以下のステップをさらに含む。
【０１２８】
Ｓ７３１において、オリジナルネットワークのモデルデータセットとモデル構造パラメータに従って、オリジナルネットワークのメモリ割り当て方法を獲得する。具体的に、第１プロセッサの第１演算モジュールは、オリジナルネットワークのモデルデータセットとモデル構造パラメータに従って、オリジナルネットワークのメモリ割り当て方法を獲得することができる。さらに、第１プロセッサは、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得することができ、オリジナルネットワークにおける各計算ノードの実行順序に従って、現在のネットワークのメモリ割り当て方法を決定する。例えば、各計算ノードの実行順序に従って、各計算ノードを実行過程における関連データを、一つのスタックに保存する。ここで、メモリ割り当て方法とは、オリジナルネットワークにおける各計算ノードに関連するデータ（入力データ、出力データ、ネットワークの重みデータ及び中間結果データなどを含む）がメモリ空間（例えば、第１メモリ）での保存位置を決定することを指す。例えば、データテーブルを使用して各計算ノードに関連するデータ（入力データ、出力データ、ネットワークの重みデータ及び中間結果データなど）とメモリ空間のマッピング関係を保存することができる。
【０１２９】
Ｓ７３２において、オリジナルネットワークのメモリ割り当て方法に従って、オリジナルネットワークの実行過程中の関連データを第１メモリに保存する。ここで、オリジナルネットワークの実行過程中の関連データは、オリジナルネットワークの各計算ノードに対応するネットワークの重み、命令、入力データ及び出力データを含む。例えば、図１４に示したように、Ｘ１とＸ２は、当該ニューラルネットワークの入力データを表し、Ｗ１〜Ｗ６は、計算ノードＣ１、Ｃ２及びＣ３に対応するネットワークの重みを表すために使用され、計算ノードＩ１〜Ｉ３の出力データ及び計算ノードＣ４とＣ５の出力データは、中間計算結果として使用できる。第１プロセッサは、決定されたメモリ割り当て方法に従って、オリジナルネットワークの実行過程中の関連データを内部メモリまたはキャッシュなどの揮発性メモリのような第１メモリに保存することができ、具体的な保存方法は、図１５における左半部の保存空間を参照することができる。
【０１３０】
Ｓ７３３において、第１メモリからオリジナルネットワークにおける各第１運用属性を有する計算ノードに対応するネットワークの重み及び命令を獲得し、オリジナルネットワークにおける各第１運用属性を有する計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存し、第１オフラインモデルを生成する。ここで、第１不揮発性メモリは、専用ニューラルネットワークプロセッサに対応する第３メモリであることができる。当該第１オフラインモデルの生成過程は、具体的に図１５を参照することができ、図１５における右半部の保存空間に保存されたのは、オリジナルネットワークの対応する第１オフラインモデルである。
【０１３１】
図１４及び図１５に示したように、以下、図面に合わせて、上記オフラインモデルの生成過程を説明する。
【０１３２】
まず、第１プロセッサは、当該オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び入力データを獲得することができる。また、当該第１プロセッサは、オリジナルネットワークにおける各計算ノードの運用属性をさらに獲得することができる。
【０１３３】
次に、第１プロセッサは、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワーク各計算ノードの接続関係を獲得することができ、各計算ノードの接続関係に従ってオリジナルネットワークにおける各計算ノードの実行順序、及びオリジナルネットワークの実行過程中のメモリ割り当て方法を獲得するため、オリジナルネットワークの実行過程中の関連データの保存位置を獲得することができる。図１５の左半部の保存空間に示したように、オリジナルネットワークの実行過程中の関連データは、各計算ノード実行順序に応じて一つのスタックに保存されることができる。
【０１３４】
最後に、第１プロセッサは、オリジナルネットワークにおける第１運用属性を有する計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存し、第１オフラインモデルを生成することができ、当該第１オフラインモデルの保存方法は、図１５における右半部の保存空間を参照することができる。また、当該第１オフラインモデルは、当該オリジナルネットワークにおける第１運用属性を有する計算ノードを実行するに必要なネットワークの重み及び命令などのデータのみを含み、オリジナルネットワークの実行過程中の入力データ、出力データまたは中間計算結果などを保存する必要がないため、保存空間の消費を減少することができる。
【０１３５】
選択的に、上記方法は、以下のステップをさらに含むことができる。
【０１３６】
オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第２計算ノードの間のすべての第１計算ノードを一つの第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）に等価にするため、当該オリジナルネットワークに対応する等価ネットワーク構造を獲得することができ、図１４に示した通りである。ここで、第１計算ノードは、第１運用属性を有する計算ノードであり、第２計算ノードは、第２運用属性を有する計算ノードであり、第１オフラインモデルには、第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）と第２計算ノードとの間のインターフェイスデータがさらに含まれ、インターフェイスデータは、当該オリジナルネットワークの等価ネットワーク構造における第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）と他の第２計算ノードとの間の接続関係を表示するために使用され、ここで、インターフェイスデータは、各第１オフラインノードの入力データソースと出力データソースを含むことができる。
【０１３７】
さらに具体的に、図１４に示したように、オリジナルネットワークの各計算ノードの間の接続関係に従って、隣接する二つのＣＰＵ運用属性の計算ノードの間のすべての第１運用属性の計算ノードを一つの第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）に等価にするため、当該オリジナルネットワークの等価ネットワークを獲得する。選択的に、当該第１オフラインノードは、複数の第１運用属性を有する計算ノードの等価ノードであるので、当該第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）の運用属性は、第１運用属性である。さらに、当該第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）とオリジナルネットワークにおける第２運用属性を有する第２計算ノードとの間の具体的な接続関係は、入力または出力データに従って決定することができる。例えば、図１４に示したように、当該第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）と第２計算ノードＣ１、Ｃ２及びＣ３との間の具体的な接続関係及びネットワークの重みは、オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）の入力データに従って決定されることができ、当該第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）と第２オフラインノード（Ｓｅｃｏｎｄ  Ｏｆｆｌｉｎｅ１）との間の具体的な接続関係及びネットワークの重みは、第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）の出力データに従って、決定されることができる。さらに、インターフェイスデータは、当該第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）の入力データを第２計算ノードＣ１、Ｃ２及びＣ３の出力データとし、第１オフラインノードの出力データを第２計算ノードＣ４及びＣ５の入力データとして含むことができる。
【０１３８】
さらなる改善として、当該オリジナルネットワークのオフラインモデルは、オリジナルネットワークにおける他の第２運用属性を備える計算ノードに対応するネットワークの重み及び命令をさらに含むことができる。図１１に示したように、上記方法は、以下のステップをさらに含む。
【０１３９】
現在の計算ノードの運用属性が第２運用属性である場合、現在の計算ノードに対応するネットワークの重み及び命令を第２不揮発性メモリに保存して、オリジナルネットワークに対応する第２オフラインモデルを獲得する。即ち、当該オリジナルネットワークを実行する過程において、各第２運用属性を備える計算ノードのネットワークの重み及び命令を第２不揮発性メモリ（例えば、第２メモリ）に保存する。当該複数の第２運用属性を備える計算ノードのネットワークの重み及び命令は、当該オリジナルネットワークの第２オフラインモデルユニットを形成する。このようにして、当該オリジナルネットワークを再び実行する必要がある場合、第２不揮発性メモリから当該オリジナルネットワークにおける各第２運用属性を備える計算ノードの計算属性などの命令及び対応するネットワークの重みを直接に獲得することができる。具体的に、上記ステップＳ７３０は、以下のステップをさらに含むことができる。
【０１４０】
Ｓ７３４において、第１メモリからオリジナルネットワークにおける各第２運用属性を備える計算ノードに対応するネットワークの重み及び命令を獲得し、オリジナルネットワークにおける各第２運用属性を備える計算ノードに対応するネットワークの重みを第２不揮発性メモリに保存し、第２オフラインモデルを生成する。当該第２オフラインモデルの生成過程は、図１６を参照することができ、図１６における左側の保存空間内に保存されたのは、第２オフラインモデルである。
【０１４１】
上記第１不揮発性メモリに保存された第１オフラインモデルと上記第２不揮発性メモリに保存された第２オフラインモデルは、当該オリジナルネットワークのオフラインモデルを形成する。このようにして、当該オフラインモデルを再び実行する必要がある場合、第１不揮発性メモリから第１運用属性を有する計算ノードのネットワークの重み及び命令を直接に獲得し、第２不揮発性メモリから第２運用属性を備える計算ノードのネットワークの重み及び命令を直接に獲得することができるため、当該オリジナルネットワークに対して再びコンパイルする必要なく、当該オリジナルネットワークを直接に実行することができる。
【０１４２】
さらに、第１プロセッサは、オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第１計算ノードの間のすべての第２計算ノードを一つの第２オフラインノードに等価することができ、ここで、第１計算ノードは、第１運用属性を有する計算ノードであり、第２計算ノードは、第２運用属性を有する計算ノードである。第２オフラインモデルには、前記第２オフラインノードと前記第１計算ノードとの間のインターフェイスデータがさらに含まれる。
【０１４３】
図１４及び図１６に示したように、以下、図面に合わせて上記オフラインモデルの生成過程を説明する。
【０１４４】
まず、第１プロセッサは、当該オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び入力データを獲得することができるため、当該オリジナルネットワークのモデルデータセットとモデル構造パラメータに従って、当該オリジナルネットワークのネットワーク構造図を獲得することができ、図１４に示した通りである。また、当該第１プロセッサは、オリジナルネットワークにおける各計算ノードの運用属性をさらに獲得することができる。
【０１４５】
次に、第１プロセッサは、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワーク各計算ノードの接続関係を獲得することができ、各計算ノードの接続関係に従って、オリジナルネットワークにおける各計算ノードの実行順序、及びオリジナルネットワークの実行過程におけるメモリ割り当て方法を獲得するため、オリジナルネットワークの実行過程における関連データの保存位置を獲得することができる。図１６の中間部分の保存空間に示したように、オリジナルネットワークの実行過程における関連データは、各計算ノード実行順序に応じて一つのスタックに保存されることができる。
【０１４６】
最後に、第１プロセッサは、オリジナルネットワークにおける第１運用属性を有する計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存し、第１オフラインモデルを生成し、当該第１オフラインモデルの保存方法は、図１６の右半部の保存空間を参照することができる。同時に、第１プロセッサは、オリジナルネットワークにおける第２運用属性を備える計算ノードに対応するネットワークの重み及び命令を第２不揮発性メモリに保存することができ、第２オフラインモデルを生成し、当該第２オフラインモデルの保存方法は、図１６における左半部の保存空間を参照することができる。また、当該第１オフラインモデルと第２オフラインモデルは、当該オリジナルネットワークにおける各計算ノードを実行するに必要なネットワークの重み及び命令などのデータのみを含み、オリジナルネットワークの実行過程中の入力データ、出力データまたは中間計算結果などを保存する必要がないため、保存空間の消費を減少することができる。
【０１４７】
さらに、汎用プロセッサは、中央プロセッサ、画像プロセッサ、デジタル信号プロセッサ及びフィールド編集可能なゲートアレイにおける一つまたは複数を含む。対応的に、第２運用属性は、ＣＰＵ運用属性、ＧＰＵ運用属性、ＤＳＰ運用属性及びＦＰＧＡ運用属性の一つまたは複数を含むことができる。例えば、当該コンピュータシステムが第１プロセッサ（例えば、ＣＰＵ）と一つの第２プロセッサ（例えば、ＩＰＵ）を含む場合、当該計算ノードの運用属性は、ＣＰＵ運用属性、第１運用属性または両方の組合せであることができる。当該計算ノードの運用属性がＣＰＵ運用属性である場合、当該計算ノードに対応する計算命令が第１プロセッサ（例えば、ＣＰＵ）で実行する必要があることを示す。当該計算ノードの運用属性が第１運用属性である場合、当該計算ノードに対応する計算命令が第２プロセッサで実行する必要があることを示す。当該計算ノードの運用属性がＣＰＵ運用属性と第１運用属性との結合である場合、当該計算ノードに対応する運用属性が第１プロセッサで実行することもでき、第２プロセッサで実行することもできることを示し、このとき、当該計算ノードの運用属性を第１運用属性として表記することができる。さらに、列挙方法を介して、各計算ノードの運用属性を表記及び保存することができる。例えば、当該列挙変量は、二つ以上の列挙値を含むことができる。現在の計算ノードの運用属性が第１運用属性である場合、当該列挙変量の列挙値は、１であることができ、現在の計算ノードの運用属性がＣＰＵ運用属性である場合、当該列挙変量の列挙値は、０であることができる。
【０１４８】
別の例として、当該コンピュータシステムが第１プロセッサ（例えば、ＣＰＵ）、第２プロセッサ（例えば、ＧＰＵ）及び第２プロセッサ（例えば、ＩＰＵ）を含む場合、計算ノードの運用属性は、ＣＰＵ運用属性、ＧＰＵ運用属性または第１運用属性における一つまたは複数の組合せであることができる。当該計算ノードの運用属性がＣＰＵ運用属性である場合、当該計算ノードに対応する計算命令が第１プロセッサ（例えば、ＣＰＵ）で実行する必要があることを示す。当該計算ノードの運用属性がＧＰＵ運用属性である場合、当該計算ノードに対応する計算命令が第２プロセッサ（例えば、ＧＰＵ）で実行する必要があることを示す。当該計算ノードの運用属性が第１運用属性である場合、当該計算ノードに対応する計算命令が第２プロセッサ（例えば、ＩＰＵ）で実行する必要があることを示す。当該計算ノードの運用属性がＣＰＵ運用属性と第１運用属性の組合せである場合、当該計算ノードに対応する計算命令が第１プロセッサで実行することもでき、第２プロセッサ（例えば、ＩＰＵ）で実行することもできることをしめし、このとき、計算ノードの運用属性を第１運用属性として表記することができる。さらに、当該列挙変量の列挙値は、三つであることもでき、例えば、現在の計算ノードの運用属性が第１運用属性である場合、当該列挙変量の列挙値は、１であることができ、現在の計算ノードの運用属性がＣＰＵ運用属性である場合、当該列挙変量の列挙値は、０であることができ、現在の計算ノードの運用属性がＧＰＵ運用属性である場合、当該列挙変量の列挙値は、２であることができる。従って、当該列挙変量の値によって、現在の計算ノードの運用属性を知ることができる。
【０１４９】
さらに、当該第２オフラインモデルは、複数の第２オフラインサブモデルを含むことができ、例えば、第２オフラインサブモデルの一つは、すべてのＣＰＵ運用属性の計算ノードに対応する命令及びネットワークの重みを含むことができ、第２オフラインサブモデルの一つは、すべてのＧＰＵ運用属性の計算ノードに対応する命令及びネットワークの重みを含むことができ、第２オフラインサブモデルの一つは、すべてのＤＳＰ運用属性の計算ノードに対応する命令及びネットワークの重みなどを含むことができる。
【０１５０】
一つの実施例において、オフラインモデルが生成れた直後、オフラインモデルを使用して演算を実行することができ、オフラインモデルを保存することもでき、計算が必要な時にオフラインモデルを使用する。図１３に示したように、本発明の一実施例は、ニューラルネットワーク処理方法をさらに提供し、上記方法は、以下のステップを含む。
【０１５１】
Ｓ８００において、オリジナルネットワークのモデルデータセットとモデル構造パラメータを獲得する。ここで、モデルデータセットは、オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、モデル構造パラメータは、オリジナルネットワークにおける複数の計算ノードの接続関係を含む。具体的な実行過程は、上記ステップＳ７００を参照することができ、ここでは繰り返して説明しない。
【０１５２】
Ｓ８１０において、オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第２計算ノードの間のすべての第１計算ノードを一つの第１オフラインノードに等価にし、オリジナルネットワークに対応する等価ネットワークを獲得する。ここで、第１計算ノードは、第１運用属性を有する計算ノードであり、第２計算ノードは、第２運用属性を有する計算ノードである。さらに、当該オリジナルネットワークの等価ネットワーク構造における各計算ノードの実行順序を獲得することができる。
【０１５３】
例えば、図１４に示したように、オリジナルネットワークの各計算ノード間の接続関係に従って、隣接する二つのＣＰＵ運用属性の計算ノードの間のすべての第１運用属性の計算ノードを一つの第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）に等価にするため、当該オリジナルネットワークの等価ネットワークを獲得する。選択的に、当該第１オフラインノードが複数の第１運用属性を有する計算ノードの等価ノードであるので、当該第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）の運用属性は、第１運用属性である。さらに、当該第１オフラインノード（Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１）とオリジナルネットワークにおける第２運用属性を備える第２計算ノードとの間の具体的な接続関係は、入力データまたは出力データに従って決定されることができる。当該オリジナルネットワークに対応する等価ネットワークにおける各計算ノードの実行順序は、Ｃ１−Ｃ２−Ｃ３−Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ１−Ｃ４−Ｃ５−Ｆｉｒｓｔ  Ｏｆｆｌｉｎｅ２であることができ、ここで、第２計算ノードＣ１、Ｃ２及びＣ３は、同時に実行されることができ、計算ノードＣ４とＣ５も同時に実行されることができ、コンピュータシステムの処理効率を向上させる。
【０１５４】
Ｓ８２０において、等価ネットワーク構造における現在の計算ノードが第１オフラインノードである場合、第１不揮発性メモリから第１オフラインモデルを獲得し、第１オフラインモデルに従って第１オフラインノードを実行する。ここで、第１オフラインモデルには、オリジナルネットワークにおける第１運用属性を備えるすべての第１計算ノードに対応するネットワークの重み及び命令が含まれる。具体的に、第１プロセッサの第１獲得モジュールは、オリジナルネットワークの等価ネットワークにおける各計算ノードの実行順序に従って、現在の計算ノードが第１オフラインノードである場合、第１オフラインモデルから第１運用属性を有する計算ノードに対応するネットワークの重み及び命令を獲得することができる。
【０１５５】
図１４に示したように、当該オリジナルネットワークを再び実行する場合、オリジナルネットワークの等価ネットワークに従って、現在の計算ノードが第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１である場合、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対して命令コンパイルする必要なく、第１プロセッサの処理効率を向上させる。当該第１オフラインノードの実行動作が完了すると、第１プロセッサは、オリジナルネットワークに対応する等価ネットワーク構造に従って、第２計算ノードＣ４とＣ５を実行し続けることができる。その後、当該第１プロセッサは、オリジナルネットワークに対応する等価ネットワーク構造に従って、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対して命令コンパイルする必要がない。
【０１５６】
さらに、第１オフラインモデルには、第１オフラインノードと第２計算ノードとの間のインターフェイスデータがさらに含まれる。具体的に、当該第１オフラインモデルには、各第１オフラインノードとそれと接続された第２計算ノードとの間のインターフェイスデータがさらに含まれ、例えば、当該インターフェイスデータは、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１の入力データが第２計算ノードＣ１〜Ｃ３である出力データを含むことができ、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１の出力データは、第２計算ノードＣ４とＣ５として機能することができる。
【０１５７】
このとき、当該オリジナルネットワークを再び実行する場合、オリジナルネットワークの等価ネットワークに従って、現在の計算ノードが第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１である場合、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対して命令コンパイルする必要なく、第１プロセッサの処理効率を向上させる。同時に、第１プロセッサは、第１オフラインモデルにおける第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１とそれの接続された第２計算ノードのインターフェイスデータに従って、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１が実行完了した後、第２計算ノードＣ４とＣ５を実行し続けるべきであることを獲得することができる。第２計算ノードＣ４とＣ５の実行動作を完了した後、当該第１プロセッサは、オリジナルネットワークに対応する等価ネットワーク構造に従って、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対して命令コンパイルする必要がない。
【０１５８】
第１オフラインモデルには、複数の第１オフラインノードに対応する命令及び重みが含まれることができ、オリジナルネットワークに対応する等価ネットワークに従って複数の第１オフラインノードの実行順序を決定することができ、その実行順序に応じて各第１オフラインノードに対してラベリングすることが理解できる。第１オフラインモデルからある第１オフラインノードに対応するネットワークの重み及び命令を獲得する場合、当該第１オフラインノードのラベルに従って検索することで済む。もちろん、さらに直接に各第１オフラインノードの保存アドレスに従って、当該第１オフラインノードに対応するネットワークの重み及び命令を直接に読み取り、正確な検索を実現することができる。
【０１５９】
さらに、当該オリジナルネットワークのオフラインモデルは、オリジナルネットワークにおける他の第２運用属性を備える計算ノードに対応するネットワークの重み及び命令をさらに含むことができる。上記方法は、以下のステップをさらに含むことができる。
【０１６０】
等価ネットワーク構造における現在の計算ノードが第１オフラインノードではない場合、第２不揮発性メモリから第２オフラインモデルを獲得し、第２オフラインモデルに従って等価ネットワークにおける現在の計算ノードを実行する。具体的に、第１プロセッサは、さらにオリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第１計算ノードの間のすべての第２計算ノードを一つの第２オフラインノードに等価することができる。ここで、第１計算ノードは、第１運用属性を有する計算ノードであり、第２計算ノードは、第２運用属性を有する計算ノードであり、第２オフラインモデルには、前記第２オフラインノードと前記第１計算ノードとの間のインターフェイスデータがさらに含まれる。
【０１６１】
このとき、当該オリジナルネットワークを再び実行する場合、オリジナルネットワークの等価ネットワークに従って、現在の計算ノードが第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１である場合、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対して命令コンパイルする必要なく、第１プロセッサの処理効率を向上させる。同時に、第１プロセッサは、第１オフラインモデルにおける第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１とそれと接続された第２計算ノードのインターフェイスデータに従って、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１が実行完了した後、第２計算ノードＣ４とＣ５を実行し続けるべきであることを獲得することができる。その後、第１プロセッサは、第２オフラインモデルから第２計算ノードＣ４に対応するネットワークの重み及び命令、及び第２計算ノードＣ５に対応するネットワークの重み及び命令をそれぞれ獲得することができ、上記第２オフラインノードＳｅｃｏｎｄ  Ｏｆｆｌｉｎｅ１に対応する第２オフラインモデルに従って、上記計算ノードＣ４とＣ５を実行する。同時に、第１プロセッサは、第２オフラインモデルにおける第２オフラインノードＳｅｃｏｎｄ  Ｏｆｆｌｉｎｅ１とそれに接続された第１計算ノードのインターフェイスデータに従って、第２オフラインノードＳｅｃｏｎｄ  Ｏｆｆｌｉｎｅ１が実行完了した後、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２を実行し続けるべきであることを獲得することができる。第２オフラインノードＳｅｃｏｎｄ  Ｏｆｆｌｉｎｅ１の実行動作を完了した後、当該第１プロセッサは、オリジナルネットワークに対応する等価ネットワーク構造に従って、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対して命令コンパイルする必要がない。
【０１６２】
第２オフラインモデルには、複数の第２オフラインノードに対応する命令及び重みが含まれることができ、オリジナルネットワークに対応する等価ネットワークに従って複数の第２オフラインノードの実行順序を決定することができ、その実行順序に応じて各第２オフラインノードに対してラベリングすることが理解できる。第２オフラインモデルからある第２オフラインノードに対応するネットワークの重み及び命令を獲得する場合、当該第２オフラインノードのラベルに従って検索することで済む。もちろん、さらに直接に各第２オフラインノードの保存アドレスに従って、当該第２オフラインノードに対応するネットワークの重み及び命令を直接に読み取り、正確な検索を実現することができる。
【０１６３】
さらなる改善として、当該第２オフラインモデルは、複数の第２オフラインサブモデルを含むことができ、例えば、第２オフラインサブモデルの一つは、すべてのＣＰＵ運用属性の計算ノードに対応する命令及びネットワークの重みを含むことができ、第２オフラインサブモデルの一つは、すべてのＧＰＵ運用属性の計算ノードに対応する命令及びネットワークの重みを含むことができ、第２オフラインサブモデルの一つは、すべてのＤＳＰ運用属性の計算ノードに対応する命令及びネットワークの重みなどを含むことができる。このとき、当該オリジナルネットワークを再び実行する場合、根据オリジナルネットワークの等価ネットワークに従って、現在の計算ノードが第１運用属性を備える第１オフラインノードである場合、第１プロセッサは、第１不揮発性メモリから当該第１オフラインノードにおける各第１計算ノードに対応するネットワークの重み及び命令を獲得し、当該第１オフラインノードを直接に実行することができる。現在の計算ノードがＣＰＵ運用属性を備える計算ノードである場合、当該現在の計算ノードに対応する第２オフラインサブモデルから現在の計算ノードのネットワークの重み及び命令を獲得し、現在の計算ノードを直接に実行することができる。現在の計算ノードがＧＰＵ運用属性を備える計算ノードである場合、当該現在の計算ノードに対応する第２オフラインサブモデルから現在の計算ノードのネットワークの重み及び命令を獲得することができ、現在の計算ノードを直接に実行することができる。現在の計算ノードがＤＳＰ運用属性を備える計算ノードである場合、当該現在の計算ノードに対応する第２オフラインサブモデルから現在の計算ノードのネットワークの重み及び命令を獲得し、現在の計算ノードを直接に実行することができる。
【０１６４】
当業者は、上記実施例方法における全部または一部のプロセスの実現は、コンピュータプログラムに介して関連するハードウェアを命令して完了し、前記プログラムはコンピュータ可読記憶媒体に保存されることができ、当該プログラムは実行時に、上記各方法の実施例のプロセスを含むことができることを理解できる。ここで、本出願で提供される各実施例に使用されるメモリ、ストレージ、データベースまたは他の媒体への参照は、すべて不揮発性及び／または揮発性メモリを含むことができる。不揮発性メモリは、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的にプログラム可能なＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能なＲＯＭ（ＥＥＰＲＯＭ）またはフラッシュメモリを含むことができる。揮発性メモリは、ランダムアクセスメモリ（ＲＡＭ）または外部高速キャッシュメモリを含むことができる。制限ではない説明として、ＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、同期リンク（Ｓｙｎｃｈｌｉｎｋ）  ＤＲＡＭ（ＳＬＤＲＡＭ）、ラムバス（Ｒａｍｂｕｓ）ダイレクトＲＡＭ（ＲＤＲＡＭ）、ダイレクトラムバスダイナミックＲＡＭ（ＤＲＤＲＡＭ）、ラムバスダイナミックＲＡＭ（ＲＤＲＡＭ）などのようなさまざまな形式で獲得することができる。
【０１６５】
同時に、本発明は、第１プロセッサ３１０及び第１プロセッサ３１０に対応するように設置される第１メモリ３２０及び第２メモリ３３０と、及びそれぞれがすべて第１プロセッサ３１０に接続される一つまたは複数の第２プロセッサ３４０及び第２プロセッサ３４０に対応するように設置される一つまたは複数の第３メモリ３５０とを含み、第１メモリ３２０または第２メモリ３３０にはコンピュータプログラムが保存され、第１プロセッサ３１０は、コンピュータプログラムを実行する場合、上記いずれかの一つの実施例の方法を実行するコンピュータシステム３００をさらに提供する。具体的に、第１プロセッサ３１０が上記コンピュータプログラムを実行する場合、具体的に以下のステップを含む。
【０１６６】
オリジナルネットワークのモデルデータセットとモデル構造パラメータを獲得し、ここで、モデルデータセットは、オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、モデル構造パラメータは、オリジナルネットワークにおける複数の計算ノードの接続関係を含む。
【０１６７】
オリジナルネットワークにおける各計算ノードの運用属性を獲得し、計算ノードの運用属性は、第１運用属性及び第２運用属性を含む。具体的に、第１プロセッサの第１獲得モジュールまたは第１演算モジュールは、当該オリジナルネットワークにおける各計算ノードの運用属性を獲得することができる。ここで、計算ノードの運用属性は、当該計算ノードに対応する計算命令がどのプロセッサで実行されるかを表示するために使用される。本実施例において、第１運用属性は、当該計算ノードに対応する計算命令は、ＩＰＵなどの専用ニューラルネットワークプロセッサで実行されることができ、第２運用属性は、当該計算ノードに対応する計算命令がＣＰＵ、ＧＰＵ、ＤＳＰなどの汎用プロセッサで実行することができることを表すために使用される。
【０１６８】
さらに、列挙方法を介して、各計算ノードの運用属性を表現及び保存することができる。例えば、一つの列挙変量ｄｅｖｉｃｅを定義することができ、当該列挙変量は、二つ以上の列挙値を含むことができる。現在の計算ノードの運用属性が第１運用属性である場合、当該列挙変量の列挙値は、１であることができ、現在の計算ノードの運用属性が第２運用属性である場合、当該列挙変量の列挙値は、０であることができる。
【０１６９】
オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び各計算ノードの運用属性に従ってオリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得する。さらに、第１プロセッサの第１獲得モジュールは、当該オリジナルネットワークの入力データをさらに獲得することができ、第１プロセッサの第１演算モジュールは、オリジナルネットワークの入力データ、ネットワークモデルデータセット、モデル構造パラメータ及び各計算ノードの運用属性に従って、オリジナルネットワークを実行して、当該オリジナルネットワークにおける各計算ノードに対応する命令を獲得することができる。さらに、上記当該オリジナルネットワークを実行して各計算ノードの命令を獲得する過程は、実際にコンパイルの過程であり、当該コンパイル過程は、コンピュータシステムのプロセッサまたは仮想デバイスを介して実現することができる。即ち、コンピュータシステムのプロセッサまたは仮想デバイスは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従ってオリジナルネットワークを実行する。ここで、仮想デバイスとは、メモリのメモリ空間でプロセッサ実行空間のセクションを仮想することを指す。
【０１７０】
明らかに、本実施例におけるオリジナルネットワークの実行とは、プロセッサが人工ニューラルネットワークモデルデータを使用してある機械ラーニングアルゴリズム（例えば、ニューラルネットワークアルゴリズム）を実行し、フォワード演算を実行することにより、アルゴリズムのターゲットアプリケーション（例えば、音声認識などの人工知能アプリケーション）を実現することを指す。
【０１７１】
現在の計算ノードの運用属性が第１運用属性である場合、現在の計算ノードに対応するネットワークの重み及び命令を第１不揮発性メモリに保存して、オリジナルネットワークに対応する第１オフラインモデルを獲得する。ここで、当該第１不揮発性メモリは、ＩＰＵなどの専用ニューラルネットワークプロセッサに対応する第３メモリであることができる。さらに、オリジナルネットワークの各計算ノードについて、当該計算ノードのネットワークの重み及び命令は、１対１に対応するように保存される。このようにして、当該オリジナルネットワークを再び実行する場合、第１不揮発性メモリから当該オリジナルネットワークに対応する第１オフラインモデルを直接に獲得することができ、当該第１オフラインモデルに従って、オリジナルネットワークにおけるすべての第１運用属性を有する計算ノードを実行し、当該オリジナルネットワークにおける第１運用属性を有する計算ノードに対してオンラインでコンパイルして命令を獲得することなく、システムの実行速度及び効率を向上させる。
【０１７２】
明らかに、本実施例において、当該オリジナルネットワークに対応する第１オフラインモデルを直接に実行するとは、第１オフラインモデルを使用して当該オリジナルネットワークに対応する機械ラーニングアルゴリズム（例えば、ニューラルネットワークアルゴリズム）実行し、フォワード演算を実行することによりアルゴリズムのターゲットアプリケーション（例えば、音声認識などの人工知能アプリケーション）を実現することを指す。
【０１７３】
さらに、上記コンピュータシステムは、図９に示されたコンピュータシステムであることができ、当該コンピュータシステムの第１プロセッサは、中央プロセッサ、画像プロセッサ、デジタル信号プロセッサまたはフィールド編集可能なゲートアレイであることができ、第２プロセッサは、専用ニューラルネットワークプロセッサ、中央プロセッサ、画像プロセッサ、デジタル信号プロセッサまたはフィールド編集可能なゲートアレイなどであることができる。明らかに、本実施例におけるコンピュータシステムの動作原理は、図１０〜図１３に示したニューラルネットワークの処理方法における各ステップの実行過程と一致し、具体的に上記の説明を参照することができ、ここでは繰り返して説明しない。
【０１７４】
なお、本発明の一実施例は、コンピュータ記憶媒体をさらに提供し、当該コンピュータ記憶媒体にはコンピュータプログラムが保存され、コンピュータプログラムが一つまたは複数のプロセッサに実行される場合、上記いずれかの一つの実施例の方法を実行する。ここで、当該コンピュータ記憶媒体は、不揮発性及び／または揮発性メモリを含むことができる。不揮発性メモリは、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的にプログラム可能なＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能なＲＯＭ（ＥＥＰＲＯＭ）またはフラッシュメモリを含むことができる。揮発性メモリは、ランダムアクセスメモリ（ＲＡＭ）または外部高速キャッシュメモリを含むことができる。制限ではない説明として、ＲＡＭは、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、同期リンク（Ｓｙｎｃｈｌｉｎｋ）、ＤＲＡＭ（ＳＬＤＲＡＭ）、ラムバス（Ｒａｍｂｕｓ）ダイレクトＲＡＭ（ＲＤＲＡＭ）、ダイレクトラムバスダイナミックＲＡＭ（ＤＲＤＲＡＭ）、ラムバスダイナミックＲＡＭ（ＲＤＲＡＭ）などのようなさまざまな形式で獲得することができる。
【０１７５】
本発明のニューラルネットワーク処理方法、コンピュータシステム及び記憶媒体は、オリジナルネットワーク実行過程における第１運用属性を有する計算ノードに対応する命令及びネットワークの重みを保存することにより、オリジナルネットワークに対応する第１オフラインモデルを獲得し、このようにして、当該オリジナルネットワークを再び実行する場合、当該オリジナルネットワークにおける第１運用属性を有する計算ノードに対応するモデルデータセット及びモデル構造パラメータなどの関連データに対して再びコンパイルする必要がなく、当該オリジナルネットワークに対応する第１オフラインモデルから第１運用属性を有する計算ノードに対応する命令及びネットワークの重みを獲得することができるため、同じネットワークを実行するプロセッサの実行時間を短縮し、さらにプロセッサの処理速度及び効率を向上させる。
【０１７６】
説明の簡略化のために、上記実施例の各技術的特徴は任意に組み合わせることができ、上記実施例における各技術的特徴の可能な組み合わせはすべて記載されていないが、これらの技術的特徴の組み合わせに矛盾がない限り、すべてをこの明細書の範囲と見なす必要がある。
【０１７７】
上記実施例は、本発明のいくつかの実施形態の単なる例示であり、その説明はより具体的かつ詳細であるが、本発明の範囲を限定するものとして解釈されるべきではない。本発明の構想から逸脱することなく、いくつかの変形及び修正を当業者によってなされ得、これらのすべて本発明の請求範囲に属することに留意すべきである。従って、本発明の請求範囲は添付の請求項によって決定されるべきである。
【図１】
2021508861.tif 000003
【図２】
2021508861.tif 000004
【図３】
2021508861.tif 000005
【図４】
2021508861.tif 000006
【図５】
2021508861.tif 000007
【図６】
2021508861.tif 000008
【図７】
2021508861.tif 000009
【図８】
2021508861.tif 000010
【図９】
2021508861.tif 000011
【図１０】
2021508861.tif 000012
【図１１】
2021508861.tif 000013
【図１２】
2021508861.tif 000014
【図１３】
2021508861.tif 000015
【図１４】
2021508861.tif 000016
【図１５】
2021508861.tif 000017
【図１６】
2021508861.tif 000018
【手続補正書】
【提出日】令和2年8月4日(2020.8.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
ニューラルネットワーク処理方法であって、前記方法は、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得し、ここで、前記モデルデータセットは、前記オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、前記モデル構造パラメータは、前記オリジナルネットワークにおける複数の計算ノードの接続関係を含むステップと、前記オリジナルネットワークにおける複数の計算ノードの接続関係に従って、二つ以上の順序に実行される第２計算ノードの間のすべての第１計算ノードを一つの第１オフラインノードに等価にし、前記オリジナルネットワークに対応する等価ネットワークを獲得し、ここで、前記第１計算ノードは、第１運用属性を有する計算ノードであり、前記第２計算ノードは、第２運用属性を有する計算ノードであるステップと、及び前記等価ネットワーク構造における現在の計算ノードが第１オフラインノードである場合、第１不揮発性メモリから第１オフラインモデルを獲得し、前記第１オフラインモデルに従って前記第１オフラインノード実行し、ここで、前記第１オフラインモデルは、前記オリジナルネットワークにおけるすべての第１計算ノードに対応するネットワークの重み及び命令を含むステップとを含む。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
コンピュータシステムであって、第１プロセッサ及び前記第１プロセッサに対応するように設置される第１メモリ及び第２メモリと、及びそれぞれがすべて前記第１プロセッサに接続される一つまたは複数の第２プロセッサ及び前記第２プロセッサに対応するように設置される一つまたは複数の第３メモリとを含み、前記第１メモリまたは前記第２メモリにはコンピュータプログラムが保存され、前記第１プロセッサが前記コンピュータプログラムを実行する場合、上記実施例のいずれかに記載の方法を実行する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
コンピュータ記憶媒体であって、前記コンピュータ記憶媒体には、コンピュータプログラムが保存され、前記コンピュータプログラムが一つまたは複数の第１プロセッサによって実行される場合、上記実施例のいずれかに記載の方法を実行する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
選択的に、プロセッサは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央プロセッサ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、グラフィックプロセッサ）またはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、デジタル信号処理）のような汎用プロセッサであることができ、当該プロセッサは、ＩＰＵ（Ｉｎｔｅｌｌｉｇｅｎｃｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、インテリジェントプロセッサ）などの専用ニューラルネットワークプロセッサであることもできる。もちろん、当該プロセッサは、命令セットプロセッサ、関連チップセット、専用マイクロプロセッサ（例えば、専用集積回路（ＡＳＩＣ））またはキャッシュ（ｃａｃｈｅ）用途に使用されるオンボードメモリなどであることもある。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
当該第１メモリまたは第２メモリには、コンピュータプログラムがさらに保存されることができ、当該コンピュータプログラムは、本出願の実施例で提供されるニューラルネットワーク処理方法を実現するために使用される。具体的に、当該ニューラルネットワーク処理方法は、当該プロセッサが受信したオリジナルネットワークに対応するオフラインモデルを生成し、当該オリジナルネットワークに対応するオフラインモデルは、当該オリジナルネットワークにおける各計算ノードのネットワークの重み及び命令などの必要なネットワーク構造情報を含むことができ、ここで、命令は、当該計算ノードがどのようなコンピューティング機能を実行するかを示すために使用され、オフラインモデルは、具体的に当該オリジナルネットワークにおける各計算ノードの計算属性及び各計算ノードの間の接続関係などの情報を含むことができるため、プロセッサが当該オリジナルネットワークを再び実行する場合、同じオリジナルネットワークを再びコンパイルする必要がなく、当該オリジナルネットワークに対応するオフラインモデルを直接に実行することができるため、当該ネットワークを実行するプロセッサの実行時間を短縮し、さらにプロセッサの処理速度及び効率を向上させる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
Ｓ１００において、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得する。具体的に、プロセッサの獲得モジュールを介してオリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得し、当該オリジナルネットワークのモデルデータセット及びモデル構造パラメータを介して当該オリジナルネットワークのネットワーク構造図を獲得することができる。ここで、モデルデータセットは、オリジナルネットワークにおける各計算ノードに対応するネットワークの重みなどのデータを含み、図７に示したニューラルネットワークにおけるＷ１〜Ｗ６は、計算ノードのネットワークの重みを表すために使用される。モデル構造パラメータは、オリジナルネットワークにおける複数の計算ノードの接続関係及び各計算ノードの計算属性を含み、ここで、計算ノードの間の接続関係は、計算ノードの間にデータ伝達があるかどうかを表すために使用され、例えば、複数の計算ノードの間にデータフローの伝達がある場合、複数の計算ノードの間に接続関係があると説明することができる。さらに、計算ノードの接続関係は、入力関係及び出力関係などを含むことができる。図７に示したように、計算ノードＦ１が計算ノードＦ４及びＦ５の入力として出力する場合、計算ノードＦ１と計算ノードＦ４との間に接続関係があり、計算ノードＦ１と計算ノードＦ５との間に接続関係があると説明できる。別の例として、計算ノードＦ１と計算ノードＦ２との間にデータ伝達がない場合、計算ノードＦ１と計算ノードＦ２との間に接続関係が存在しないと説明できる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
選択的に、当該オリジナルネットワークは、ＴｅｎｓｏｒＦｌｏｗ、ＭＸＮｅｔ、Ｃａｆｆｅ及びＰｙＴｏｒｃｈなどのディープラーニングシステムに基づいて、ＣＰＵ、ＧＰＵまたはＤＳＰなどの汎用プロセッサに対して構築した人工ニューラルネットワークであることができる。当該オリジナルネットワークは、ＩＰＵなどのインテリジェントプロセッサに対して構築した人工ニューラルネットワークであることもできる。例えば、当該オリジナルネットワークがＣａｆｆｅに基づいて構築したニューラルネットワークである場合、当該Ｃａｆｆｅネットワークのモデルデータセット（ｃａｆｆｅｍｏｄｅｌ）及びモデル構造パラメータ（ｐｒｏｔｏｔｘｔ）を獲得することができる。ここで、モデルデータセット（ｃａｆｆｅｍｏｄｅｌ）は、当該Ｃａｆｆｅネットワークの重みなどのデータを含み、モデル構造パラメータ（ｐｒｏｔｏｔｘｔ）は、当該Ｃａｆｆｅネットワークの各計算ノードの計算属性及び複数の計算ノードの間の接続関係などを含む。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６０
【補正方法】変更
【補正の内容】
【００６０】
新しいオリジナルネットワークにオフラインモデルが存在しない場合、Ｓ５５０を実行する。Ｓ５５０において、新しいオリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って、新しいオリジナルネットワークを実行し、新しいオリジナルネットワークに対応するオフラインモデルを生成し、新しいオリジナルネットワークに対応するオフラインモデルを不揮発性メモリに保存する。具体的に、新しいオリジナルネットワークのモデルデータセットがオリジナルネットワークのモデルデータセットと異なる場合、及び／または新しいオリジナルネットワークのモデル構造パラメータがオリジナルネットワークのモデル構造パラメータと異なる場合、当該オリジナルネットワークが新しいオリジナルネットワークと異なるネットワークに属し、当該新しいオリジナルネットワークにオフラインモデルが存在しないと判断することができる。当該新しいオリジナルネットワークにオフラインモデルが存在しない場合、上記ステップＳ１００〜ステップＳ３００を実行することができ、具体的な実行過程は上記説明を参照することができ、ここでは繰り返して説明しない。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
例えば、図７に示したニューラルネットワークにおける各計算ノードの実行順序は、Ｆ１−Ｆ２−Ｆ３−Ｆ４−Ｆ５−Ｆ６であることができ、当該ニューラルネットワークにオフラインモデルが存在する場合、まずオフラインモデルから計算ノードＦ１に対応するネットワークの重み及び命令を獲得することができ、その後、計算ノードＦ２〜Ｆ６のネットワークの重み及び命令を順次に獲得するため、当該新しいオリジナルネットワークの各計算ノードを順次に実行することができ、当該新しいオリジナルネットワークにおける各ノードを再びコンパイルする必要なく、プロセッサの実行速度及び効率を向上させる。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
新しいオリジナルネットワークのモデル構造パラメータに従って、新しいオリジナルネットワークの開始計算ノードを獲得する。具体的に、プロセッサの演算モジュールは、新しいオリジナルネットワークのモデル構造パラメータ新しいオリジナルネットワークの開始計算ノードを獲得することができる。ここで、当該開始計算ノードの入力データは、計算ノードＦ１、Ｆ２及びＦ３の入力データのようなネットワーク入力データであり、開始計算ノードの前には、他の計算ノードが存在しない。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークの開始計算ノードを獲得する。具体的に、プロセッサの演算モジュールは、オリジナルネットワークのモデル構造パラメータに従って、当該オリジナルネットワークの開始計算ノードを獲得することができる。ここで、当該開始計算ノードの入力データは、計算ノードＦ１、Ｆ２及びＦ３の入力データのようなネットワーク入力データであり、開始計算ノードの前には、他の計算ノードが存在しない。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１０１
【補正方法】変更
【補正の内容】
【０１０１】
本出願の他の実施例において、コンピュータシステムは、複数のプロセッサによって形成されるマルチラインシステムであることができ、ここで、プロセッサは、メインプロセッサ及び一つまたは複数のコプロセッサを含むことができ、メインプロセッサ及び各コプロセッサは、少なくとも一つのメモリが対応して設置されることができる。具体的に、図９に示したように、当該コンピュータシステム３００は、第１プロセッサ３１０と、当該第１プロセッサ３１０に接続される第１メモリ３２０及び第２メモリ３３０と、当該第１プロセッサ３１０に接続される一つまたは複数の第２プロセッサ３４０と、及び各第２プロセッサ３４０に対応して設置される第３メモリ３５０とを含むことができる。ここで、当該第１プロセッサ３１０は、計算及び制御能力を提供するために使用され、第１獲得モジュール３１１、第１演算モジュール３１３及び第１制御モジュール３１２などを含むことができ、ここで、当該第１獲得モジュール３１１は、ＩＯ（Ｉｎｐｕｔ入力／Ｏｕｔｐｕｔ出力）インターフェースなどのハードウェアモジュールであることができ、第１演算モジュール３１３及び第１制御モジュール３１２はすべてハードウェアモジュールである。例えば、第１演算モジュール３１３及び第１制御モジュール３１２は、デジタル回路またはアナログ回路などであることができる。上記ハードウェア回路の物理的実現は、物理デバイスを含むがこれに限定されず、物理デバイスは、トランジスタ及びメモリスタなどを含むがこれらに限定されない。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１４８
【補正方法】変更
【補正の内容】
【０１４８】
別の例として、当該コンピュータシステムが第１プロセッサ（例えば、ＣＰＵ）並びに第２プロセッサ１（例えば、ＧＰＵ）及び第２プロセッサ２（例えば、ＩＰＵ）を含む二つの第２プロセッサを含む場合、計算ノードの運用属性は、ＣＰＵ運用属性、ＧＰＵ運用属性または第１運用属性における一つまたは複数の組合せであることができる。当該計算ノードの運用属性がＣＰＵ運用属性である場合、当該計算ノードに対応する計算命令が第１プロセッサ（例えば、ＣＰＵ）で実行する必要があることを示す。当該計算ノードの運用属性がＧＰＵ運用属性である場合、当該計算ノードに対応する計算命令が第２プロセッサ１（例えば、ＧＰＵ）で実行する必要があることを示す。当該計算ノードの運用属性が第１運用属性である場合、当該計算ノードに対応する計算命令が第２プロセッサ２（例えば、ＩＰＵ）で実行する必要があることを示す。当該計算ノードの運用属性がＣＰＵ運用属性と第１運用属性の組合せである場合、当該計算ノードに対応する計算命令が第１プロセッサで実行することもでき、第２プロセッサ２（例えば、ＩＰＵ）で実行することもできることをしめし、このとき、計算ノードの運用属性を第１運用属性として表記することができる。さらに、当該列挙変量の列挙値は、三つであることもでき、例えば、現在の計算ノードの運用属性が第１運用属性である場合、当該列挙変量の列挙値は、１であることができ、現在の計算ノードの運用属性がＣＰＵ運用属性である場合、当該列挙変量の列挙値は、０であることができ、現在の計算ノードの運用属性がＧＰＵ運用属性である場合、当該列挙変量の列挙値は、２であることができる。従って、当該列挙変量の値によって、現在の計算ノードの運用属性を知ることができる。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０１５６
【補正方法】変更
【補正の内容】
【０１５６】
さらに、第１オフラインモデルには、第１オフラインノードと第２計算ノードとの間のインターフェイスデータがさらに含まれる。具体的に、当該第１オフラインモデルには、各第１オフラインノードとそれと接続された第２計算ノードとの間のインターフェイスデータがさらに含まれ、例えば、当該インターフェイスデータは、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１の入力データが第２計算ノードＣ１〜Ｃ３である出力データを含むことができ、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１の出力データは、第２計算ノードＣ４とＣ５の入力データとして機能することができる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】０１５７
【補正方法】変更
【補正の内容】
【０１５７】
このとき、当該オリジナルネットワークを再び実行する場合、オリジナルネットワークの等価ネットワークに従って、現在の計算ノードが第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１である場合、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対して命令コンパイルする必要なく、第１プロセッサの処理効率を向上させる。同時に、第１プロセッサは、第１オフラインモデルにおける第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１とそれの接続された第２計算ノードのインターフェイスデータに従って、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１が実行完了した後、第２計算ノードＣ４とＣ５を実行し続けるべきであることを判定することができる。第２計算ノードＣ４とＣ５の実行動作を完了した後、当該第１プロセッサは、オリジナルネットワークに対応する等価ネットワーク構造に従って、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対して命令コンパイルする必要がない。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０１６１
【補正方法】変更
【補正の内容】
【０１６１】
このとき、当該オリジナルネットワークを再び実行する場合、オリジナルネットワークの等価ネットワークに従って、現在の計算ノードが第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１である場合、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１における各第１計算ノードに対して命令コンパイルする必要なく、第１プロセッサの処理効率を向上させる。同時に、第１プロセッサは、第１オフラインモデルにおける第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１とそれと接続された第２計算ノードのインターフェイスデータに従って、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ１が実行完了した後、第２計算ノードＣ４とＣ５を実行し続けるべきであることを獲得することができる。その後、第１プロセッサは、第２オフラインモデルから第２計算ノードＣ４に対応するネットワークの重み及び命令、及び第２計算ノードＣ５に対応するネットワークの重み及び命令をそれぞれ獲得することができ、上記第２オフラインノードＳｅｃｏｎｄ  Ｏｆｆｌｉｎｅ１に対応する第２オフラインモデルに従って、上記計算ノードＣ４とＣ５を実行する。同時に、第１プロセッサは、第２オフラインモデルにおける第２オフラインノードＳｅｃｏｎｄ  Ｏｆｆｌｉｎｅ１とそれに接続された第１計算ノードのインターフェイスデータに従って、第２オフラインノードＳｅｃｏｎｄ  Ｏｆｆｌｉｎｅ１が実行完了した後、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２を実行し続けるべきであることを判定することができる。第２オフラインノードＳｅｃｏｎｄ  Ｏｆｆｌｉｎｅ１の実行動作を完了した後、当該第１プロセッサは、オリジナルネットワークに対応する等価ネットワーク構造に従って、第１不揮発性メモリから当該第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対応するネットワークの重み及び命令を獲得することができるため、第１オフラインノードＦｉｒｓｔ  Ｏｆｆｌｉｎｅ２における各第１計算ノードに対して命令コンパイルする必要がない。
【手続補正１７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ニューラルネットワークの処理方法であって、
オリジナルネットワークのモデルデータセットとモデル構造パラメータを獲得し、ここで、前記モデルデータセットは、前記オリジナルネットワークにおける各計算ノードに対応するネットワークの重みを含み、前記モデル構造パラメータは、前記オリジナルネットワークにおける複数の計算ノードの接続関係及び各計算ノードの計算属性を含むステップと、
前記オリジナルネットワークのモデルデータセットとモデル構造パラメータに基づいて、前記オリジナルネットワークをコンパイルし実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令を獲得するステップと、及び
前記オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に基づいて、前記オリジナルネットワークに対応するオフラインモデルを生成し、前記オリジナルネットワークに対応するオフラインモデルをメモリに保存し、ここで、前記オフラインモデルは、前記オリジナルネットワークにおける各計算ノードに対応するネットワークの重み及び命令を含むステップとを含む、
前記ニューラルネットワークの処理方法。
【請求項２】
前記オリジナルネットワークのモデルデータセットとモデル構造パラメータに基づいて前記オリジナルネットワークを実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令を獲得するステップは、
前記オリジナルネットワークのモデル構造パラメータに基づいて、前記オリジナルネットワークにおける各計算ノードの実行順序を獲得するステップと、及び
前記オリジナルネットワークにおける各計算ノードの実行順序に従って前記オリジナルネットワークを実行して、前記オリジナルネットワークにおける各計算ノードに対応する命令をそれぞれ獲得するステップとを含むことを特徴とする、
請求項１に記載のニューラルネットワークの処理方法。
【請求項３】
前記オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に基づいて、前記オリジナルネットワークに対応するオフラインモデルを生成するステップは、
前記オリジナルネットワークのモデルデータセットとモデル構造パラメータに基づいて、前記オリジナルネットワークのメモリ割り当て方法を獲得するステップと、
前記オリジナルネットワークのメモリ割り当て方法に応じて、前記オリジナルネットワークの実行過程中の関連データを第１メモリに保存し、ここで、前記オリジナルネットワークの実行過程中の関連データは、前記オリジナルネットワークの各計算ノードに対応するネットワークの重み、命令、入力データ及び出力データを含むステップと、及び
前記第１メモリから前記オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を獲得し、前記オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を第２メモリに保存し、前記オフラインモデルを生成し、ここで、前記第２メモリは不揮発性メモリであるステップとを含むことを特徴とする、
請求項１に記載のニューラルネットワークの処理方法。
【請求項４】
前記オフラインモデルには、ノードインターフェースデータがさらに含まれ、前記ノードインターフェースデータは、前記オリジナルネットワークの各計算ノードの接続関係を表すために使用されることを特徴とする、
請求項３に記載のニューラルネットワークの処理方法。
【請求項５】
前記オリジナルネットワークのモデルデータセットとモデル構造パラメータに基づいて前記オリジナルネットワークをコンパイルし実行するステップは、
コンピュータシステムのプロセッサまたは仮想デバイスが前記オリジナルネットワークのモデルデータセットとモデル構造パラメータに基づいて前記オリジナルネットワークを実行するステップを含むことを特徴とする、
請求項１に記載のニューラルネットワークの処理方法。
【請求項６】
前記ニューラルネットワークの処理方法は、ニューラルネットワークプロセッサを含むコンピュータシステムにおいて応用され、
前記オフラインモデルは、前記ニューラルネットワークプロセッサで直接に実行されることができる第１オフラインモデルであって、前記オリジナルネットワークにおける第１運用属性を備える計算ノードに対応するネットワークの重み及び命令が含まれる第１オフラインモデルを含むことを特徴とする、
請求項１〜５のいずれか一項に記載のニューラルネットワークの処理方法。
【請求項７】
前記オフラインモデルは、前記コンピュータシステムの汎用プロセッサで直接に実行されることができる第２オフラインモデルであって、前記オリジナルネットワークにおける第２運用属性を備える計算ノードに対応するネットワークの重み及び命令が含まれる第２オフラインモデルを更に含むことを特徴とする、
請求項６に記載のニューラルネットワークの処理方法。
【請求項８】
新しいオリジナルネットワークのモデルデータセットとモデル構造パラメータを獲得するステップと、
前記新しいオリジナルネットワークに対応するオフラインモデルが存在する場合、前記メモリから前記新しいオリジナルネットワークに対応するオフラインモデルを獲得し、前記新しいオリジナルネットワークに対応するオフラインモデルに基づいて前記新しいオリジナルネットワークを実行するステップと、及び
前記新しいオリジナルネットワークに対応するオフラインモデルが存在しない場合、前記新しいオリジナルネットワークのモデルデータセットとモデル構造パラメータに基づいて前記新しいオリジナルネットワークを実行し、前記新しいオリジナルネットワークに対応するオフラインモデルを生成し、前記新しいオリジナルネットワークに対応するオフラインモデルを前記メモリに保存するステップとをさらに含むことを特徴とする、
請求項１〜５のいずれか一項に記載のニューラルネットワークの処理方法。
【請求項９】
ニューラルネットワークの処理方法であって、
オリジナルネットワークのモデル構造パラメータを獲得し、ここで、前記モデル構造パラメータは、前記オリジナルネットワークにおける複数の計算ノードの接続関係を含むステップと、
メモリから前記オリジナルネットワークに対応するオフラインモデルを獲得し、ここで、前記オリジナルネットワークに対応するオフラインモデルは、前記オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を含むステップと、及び
前記オリジナルネットワークに対応するオフラインモデル及び前記オリジナルネットワークのモデル構造パラメータに基づいて前記オリジナルネットワークを実行するステップとを含む、前記ニューラルネットワークの処理方法。
【請求項１０】
前記オフラインモデルは、コンピュータシステムのニューラルネットワークプロセッサで直接に実行されることができる第１オフラインモデルであって、前記オリジナルネットワークにおける第１運用属性を備える計算ノードに対応するネットワークの重み及び命令が含まれる第１オフラインモデルを含み、
前記オリジナルネットワークに対応するオフラインモデル及び前記オリジナルネットワークのモデル構造パラメータに基づいて前記オリジナルネットワークを実行するステップは、前記メモリから獲得された第１オフラインモデル及び前記オリジナルネットワークのモデル構造パラメータに基づいて、前記オリジナルネットワークにおける、前記ニューラルネットワークプロセッサで実行されることができることを表す第１運用属性を備える計算ノードを実行することを含むことを特徴とする、
請求項９に記載のニューラルネットワークの処理方法。
【請求項１１】
前記オフラインモデルは、前記コンピュータシステムの汎用プロセッサで直接に実行されることができる第２オフラインモデルであって、前記オリジナルネットワークにおける、前記汎用プロセッサで実行されることができることを表す第２運用属性を備える計算ノードに対応するネットワークの重み及び命令が含まれる第２オフラインモデルを含み、
前記オリジナルネットワークに対応するオフラインモデル及び前記オリジナルネットワークのモデル構造パラメータに基づいて前記オリジナルネットワークを実行するステップは、前記オリジナルネットワークに対応する第１オフラインモデル、第２オフラインモデル及び前記オリジナルネットワークのモデル構造パラメータに基づいて、前記オリジナルネットワークを実行することを含むことを特徴とする、
請求項１０に記載のニューラルネットワークの処理方法。
【請求項１２】
前記オフラインモデルには、ノードインターフェースデータがさらに含まれ、前記ノードインターフェースデータは、前記オリジナルネットワークの各計算ノードの接続関係を表すために使用されることを特徴とする、
請求項９〜１１のいずれか一項に記載のニューラルネットワークの処理方法。
【請求項１３】
コンピュータシステムであって、
プロセッサ、第１メモリ及び第２メモリを含み、前記第１メモリまたは前記第２メモリにはコンピュータプログラムが保存され、前記プロセッサが前記コンピュータプログラムを実行する場合、請求項１〜１２のいずれか一項に記載のニューラルネットワークの処理方法を実行する、前記コンピュータシステム。
【請求項１４】
前記プロセッサは、中央プロセッサ、画像プロセッサ、デジタル信号プロセッサ、フィールド編集可能なゲートアレイまたはニューラルネットワークプロセッサのうちの一つまたは複数の組み合わせであることを特徴とする、
請求項１３に記載のコンピュータシステム。
【請求項１５】
コンピュータ記憶媒体であって、
前記コンピュータ記憶媒体には、コンピュータプログラムが保存され、前記コンピュータプログラムが一つまたは複数のプロセッサによって実行される場合、請求項１〜１２のいずれか一項に記載のニューラルネットワークの処理方法を実行する、前記コンピュータ記憶媒体。
【請求項１６】
コンピュータプログラムであって、
前記コンピュータプログラムが一つまたは複数のプロセッサによって実行される場合、請求項１〜１２のいずれか一項に記載のニューラルネットワークの処理方法を実行する、前記コンピュータプログラム。
【手続補正１８】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2021508861.tif 000019
【手続補正１９】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2021508861.tif 000020
【手続補正２０】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2021508861.tif 000021
【国際調査報告】
2021508861.tif 000022
2021508861.tif 000023
2021508861.tif 000024
2021508861.tif 000025