(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-02
(54)【発明の名称】ニューラルネットワークモデルの構成を確定する方法、装置、機器及び記憶媒体
(51)【国際特許分類】
G06N 3/0985 20230101AFI20240625BHJP
G06T 1/40 20060101ALI20240625BHJP
【FI】
G06N3/0985
G06T1/40
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023574364
(86)(22)【出願日】2022-05-31
(85)【翻訳文提出日】2023-12-15
(86)【国際出願番号】 CN2022096253
(87)【国際公開番号】W WO2022253226
(87)【国際公開日】2022-12-08
(31)【優先権主張番号】202110614422.8
(32)【優先日】2021-06-02
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】519061479
【氏名又は名称】杭州海康威視数字技術股▲ふん▼有限公司
【氏名又は名称原語表記】Hangzhou Hikvision Digital Technology Co.,Ltd.
【住所又は居所原語表記】No.555 Qianmo Road,Binjiang District,Hangzhou,Zhejiang 310051,China
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】屠 震元
(72)【発明者】
【氏名】王 沁語
(72)【発明者】
【氏名】兪 忠偉
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CH20
5B057DC40
(57)【要約】
ニューラルネットワークモデルの構成を確定する方法、装置、機器及び記憶媒体であって、目標ネットワーク層の次元情報及び目標ハードウェアのハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び共通的な汎用情報を照会し、各目標ネットワーク層のクロックサイクル数が最短になるプリセット構成、即ち、目標ニューラルネットワークモデルを実行してクロックサイクル数が最小になる際の各目標ネットワーク層の構成を取得できることで、目標ニューラルネットワークモデルの目標ハードウェアでの最適構成を取得し、続いて最適構成により、ニューラルネットワークモデルの目標ハードウェアへの迅速な導入を実現できる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ニューラルネットワークモデルの構成を確定する方法であって、
構成しようとする目標ニューラルネットワークモデルにおける各目標ネットワーク層の次元情報及び前記目標ニューラルネットワークモデルを実行するための目標ハードウェアの各目標ハードウェアコマンドを取得することと、
前記各目標ネットワーク層の次元情報及び前記各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、前記目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、前記目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得することと、を含み、
前記事前情報は、予め取得した異なるプリセットテストモードでの各プリセットネットワーク層の最適構成を含み、前記プリセットテストモードは各プリセットハードウェアコマンドにより各プリセットネットワーク層の機能を実現することを表し、各プリセットネットワーク層はいずれも相応の次元情報に対応し、前記最適構成はクロックサイクル数が最短になる際に対応する構成であり、前記汎用情報は異なるプリセット構成で各プリセットハードウェアコマンドを実行するために必要なクロックサイクル数を含む、方法。
【請求項2】
前記各目標ネットワーク層の次元情報及び前記各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、前記目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、前記目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得することは、
各目標ネットワーク層に対して、当該目標ネットワーク層の次元情報によってプリセットモデルコスト評価テーブルの事前情報を照会し、当該目標ネットワーク層に対応するプリセットネットワーク層を見つけた場合、見つけられたプリセットネットワーク層の最適構成を当該目標ネットワーク層の最適構成とすることと、
各目標ネットワーク層に対して、プリセットモデルコスト評価テーブルの事前情報には、当該目標ネットワーク層に対応するプリセットネットワーク層が存在しない場合、当該目標ネットワーク層の機能を実現するために必要な各目標ハードウェアコマンドを確定してハードウェアコマンド群とし、プリセットモデルコスト評価テーブルの汎用情報を照会し、各プリセット構成でハードウェアコマンド群を実行するために必要なクロックサイクル数をそれぞれ確定し、クロックサイクル数が最短になるプリセット構成を選択して、当該目標ネットワーク層の最適構成とすることと、を含む請求項1に記載の方法。
【請求項3】
プリセットモデルコスト評価テーブルを予め構築するステップは、
予め設定された基準ニューラルネットワークモデルを取得することと、
前記基準ニューラルネットワークモデルの各基準ネットワーク層に対して、異なるハードウェアで当該基準ネットワーク層の機能を実現するために必要なプリセットハードウェアコマンドを確定し、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行して、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行するために必要なクロックサイクル数を取得して、汎用情報としてモデルコスト評価テーブルに記録することと、
予め設定された専用ニューラルネットワークモデルを取得することと、
前記専用ニューラルネットワークモデルの各専用ネットワーク層に対して、異なるプリセット構成で、各プリセットハードウェアコマンドにより当該専用ネットワーク層の機能をそれぞれ実現し、異なるプリセットテストモードで当該専用ネットワーク層の機能を実現するために必要なクロックサイクル数を取得し、最短のクロックサイクル数に対応するプリセット構成を当該専用ネットワーク層の最適構成として、異なるプリセットテストモードでの当該専用ネットワーク層の最適構成を取得し、事前情報としてモデルコスト評価テーブルに記録することと、を含む請求項2に記載の方法。
【請求項4】
前記目標ニューラルネットワークモデルにおける各ネットワーク層の最適構成によって、前記目標ニューラルネットワークモデルの構成ファイルを生成することと、
前記目標ハードウェアが前記構成ファイルに従って前記目標ニューラルネットワークモデルを構成し、構成された目標ニューラルネットワークモデルを実行するように、前記構成ファイル及び前記目標ニューラルネットワークモデルを前記目標ハードウェアに送信することと、をさらに含む請求項1に記載の方法。
【請求項5】
ニューラルネットワークモデルの構成を確定する装置であって、
構成しようとする目標ニューラルネットワークモデルにおける各目標ネットワーク層の次元情報及び前記目標ニューラルネットワークモデルを実行するための目標ハードウェアの各目標ハードウェアコマンドを取得することに用いられる、次元情報取得モジュールと、
前記各目標ネットワーク層の次元情報及び前記各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、前記目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、前記目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得することに用いられる、最適構成確定モジュールと、を含み、
前記事前情報は予め取得した異なるプリセットテストモードでの各プリセットネットワーク層の最適構成を含み、前記プリセットテストモードは各プリセットハードウェアコマンドにより各プリセットネットワーク層の機能を実現することを表し、各プリセットネットワーク層はいずれも相応の次元情報に対応し、前記最適構成はクロックサイクル数が最短になる際に対応する構成であり、前記汎用情報は異なるプリセット構成で各プリセットハードウェアコマンドを実行するために必要なクロックサイクル数を含む、装置。
【請求項6】
前記最適構成確定モジュールは、具体的に、各目標ネットワーク層に対して、当該目標ネットワーク層の次元情報によってプリセットモデルコスト評価テーブルの事前情報を照会し、当該目標ネットワーク層に対応するプリセットネットワーク層を見つけた場合、見つけられたプリセットネットワーク層の最適構成を当該目標ネットワーク層の最適構成とすることと、
各目標ネットワーク層に対して、プリセットモデルコスト評価テーブルの事前情報には、当該目標ネットワーク層に対応するプリセットネットワーク層が存在しない場合、当該目標ネットワーク層の機能を実現するために必要な各目標ハードウェアコマンドを確定してハードウェアコマンド群とし、プリセットモデルコスト評価テーブルの汎用情報を照会し、各プリセット構成でハードウェアコマンド群を実行するために必要なクロックサイクル数をそれぞれ確定し、クロックサイクル数が最短になるプリセット構成を選択して、当該目標ネットワーク層の最適構成とすることと、に用いられる請求項5に記載の装置。
【請求項7】
予め設定された基準ニューラルネットワークモデルを取得することと、前記基準ニューラルネットワークモデルの各基準ネットワーク層に対して、異なるハードウェアで当該基準ネットワーク層の機能を実現するために必要なプリセットハードウェアコマンドを確定し、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行して、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行するために必要なクロックサイクル数を取得して、汎用情報としてモデルコスト評価テーブルに記録することと、予め設定された専用ニューラルネットワークモデルを取得することと、前記専用ニューラルネットワークモデルの各専用ネットワーク層に対して、異なるプリセット構成で、各プリセットハードウェアコマンドにより当該専用ネットワーク層の機能をそれぞれ実現し、異なるプリセットテストモードで当該専用ネットワーク層の機能を実現するために必要なクロックサイクル数を取得し、最短のクロックサイクル数に対応するプリセット構成を当該専用ネットワーク層の最適構成として、異なるプリセットテストモードでの当該専用ネットワーク層の最適構成を取得し、事前情報としてモデルコスト評価テーブルに記録することと、に用いられる、コスト評価テーブル構築モジュールをさらに含む、請求項6に記載の装置。
【請求項8】
前記目標ニューラルネットワークモデルにおける各ネットワーク層の最適構成によって、前記目標ニューラルネットワークモデルの構成ファイルを生成することに用いられる、構成ファイル生成モジュールと、
前記目標ハードウェアが前記構成ファイルに従って前記目標ニューラルネットワークモデルを構成し、構成された目標ニューラルネットワークモデルを実行するように、前記構成ファイル及び前記目標ニューラルネットワークモデルを前記目標ハードウェアに送信することに用いられる、構成ファイル送信モジュールと、
をさらに含む、請求項5に記載の装置。
【請求項9】
プロセッサ及びメモリを含む電子機器であって、
前記メモリは、コンピュータプログラムを記録することに用いられ、
前記プロセッサは、前記メモリに記録されるプログラムを実行すると、請求項1~4のいずれかに記載の方法を実現することに用いられる、電子機器。
【請求項10】
コンピュータプログラムが記録されるコンピュータ可読記憶媒体であって、前記コンピュータプログラムはプロセッサによって実行されると、請求項1~4のいずれかに記載の方法を実現する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年6月2日に中国国家知的財産権局により出願された、出願番号が202110614422.8であり、発明名称が「ニューラルネットワークモデルの構成を確定する方法、装置、機器及び記憶媒体」である中国特許出願に基づき優先権を主張する。ここで、その全ての内容は、援用により本出願に組み込まれる。
【0002】
本願はコンピュータ技術分野に関し、特にニューラルネットワークモデルの構成を確定する方法、装置、機器及び記憶媒体に関する。
【背景技術】
【0003】
コンピュータ技術のますますの発展に伴い、人工知能技術は急速な発展の段階に入り、各種の人工知能技術において、ニューラルネットワークモデルに関する研究および応用は最も広がり、徐々に最も代表的な人工知能技術となっている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ニューラルネットワークモデルの性能の評価では、高スループット、低応答時間、低リソース消費及び簡単なデプロイプロセス等の面に注目する。ニューラルネットワークモデルの複雑化に伴い、計算量も大きくなり、ニューラルネットワークモデルに適合されるハードウェアもますます更新及びバージョンアップされ、例えば、以前の単一のハードウェアAI(Artificial Intelligence、人工知能)加速ユニットからメニーコア加速に変換される。しかし、新たなハードウェアが導入される際に、同じモデルは以前のハードウェアで長い時間をかけて性能が最適化された後、以前のハードウェアでモデルの性能が最適状態になったが、他の種類のハードウェアに実装された後、以前に最適化された性能が表現できなくなり、さらに長い時間をかけて性能を最適化する必要がある、という問題がよく発生する。これは、ニューラルネットワークモデルの迅速な導入に不利である。
【0005】
本願の実施形態の目的は、ニューラルネットワークモデルの構成を確定する方法、装置、機器及び記憶媒体を提供し、これにより、ニューラルネットワークモデルが異なるハードウェアへの構成を確定することを実現して、当該構成によりニューラルネットワークモデルの所定ハードウェアへの迅速な導入を実現できる。具体的な技術案は以下の通りである。
【課題を解決するための手段】
【0006】
第1の形態において、本出願の実施形態は、ニューラルネットワークモデルの構成を確定する方法を提供する。前記方法は、
構成しようとする目標ニューラルネットワークモデルにおける各目標ネットワーク層の次元情報及び前記目標ニューラルネットワークモデルを実行するための目標ハードウェアの各目標ハードウェアコマンドを取得することと、
前記各目標ネットワーク層の次元情報及び前記各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、前記目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、前記目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得することと、を含み、
前記事前情報は予め取得した異なるプリセットテストモードでの各プリセットネットワーク層の最適構成を含み、前記プリセットテストモードは各プリセットハードウェアコマンドにより各プリセットネットワーク層の機能を実現することを表し、各プリセットネットワーク層はいずれも相応の次元情報に対応し、前記最適構成はクロックサイクル数が最短になる際に対応する構成であり、前記汎用情報は異なるプリセット構成で各プリセットハードウェアコマンドを実行するために必要なクロックサイクル数を含む。
【0007】
可能な一実施形態では、前記各目標ネットワーク層の次元情報及び前記各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、前記目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、前記目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得することは、
各目標ネットワーク層に対して、当該目標ネットワーク層の次元情報によってプリセットモデルコスト評価テーブルの事前情報を照会し、当該目標ネットワーク層に対応するプリセットネットワーク層を見つけた場合、見つけられたプリセットネットワーク層の最適構成を当該目標ネットワーク層の最適構成とすることと、
各目標ネットワーク層に対して、プリセットモデルコスト評価テーブルの事前情報には、当該目標ネットワーク層に対応するプリセットネットワーク層が存在しない場合、当該目標ネットワーク層の機能を実現するための必要な各目標ハードウェアコマンドを確定してハードウェアコマンド群とし、プリセットモデルコスト評価テーブルの汎用情報を照会し、各プリセット構成でハードウェアコマンド群を実行するために必要なクロックサイクル数をそれぞれ確定し、クロックサイクル数が最短になるプリセット構成を選択して、当該目標ネットワーク層の最適構成とすることと、を含む。
【0008】
可能な一実施形態では、プリセットモデルコスト評価テーブルを予め構築するステップは、
予め設定された基準ニューラルネットワークモデルを取得することと、
前記基準ニューラルネットワークモデルの各基準ネットワーク層に対して、異なるハードウェアで当該基準ネットワーク層の機能を実現するために必要なプリセットハードウェアコマンドを確定し、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行して、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行するために必要なクロックサイクル数を取得して、汎用情報としてモデルコスト評価テーブルに記録することと、
予め設定された専用ニューラルネットワークモデルを取得することと、
前記専用ニューラルネットワークモデルの各専用ネットワーク層に対して、異なるプリセット構成で、各プリセットハードウェアコマンドにより当該専用ネットワーク層の機能をそれぞれ実現し、異なるプリセットテストモードで当該専用ネットワーク層の機能を実現するために必要なクロックサイクル数を取得し、最短のクロックサイクル数に対応するプリセット構成を当該専用ネットワーク層の最適構成として、異なるプリセットテストモードでの当該専用ネットワーク層の最適構成を取得し、事前情報としてモデルコスト評価テーブルに記録することと、を含む。
【0009】
可能な一実施形態では、前記方法は、
前記目標ニューラルネットワークモデルにおける各ネットワーク層の最適構成によって、前記目標ニューラルネットワークモデルの構成ファイルを生成することと、
前記目標ハードウェアが前記構成ファイルに従って前記目標ニューラルネットワークモデルを構成し、構成された目標ニューラルネットワークモデルを実行するように、前記構成ファイル及び前記目標ニューラルネットワークモデルを前記目標ハードウェアに送信することと、をさらに含む。
【0010】
第2の形態において、本出願の実施形態は、ニューラルネットワークモデルの構成の確定装置を提供する。前記装置は、
構成しようとする目標ニューラルネットワークモデルにおける各目標ネットワーク層の次元情報及び前記目標ニューラルネットワークモデルを実行するための目標ハードウェアの各目標ハードウェアコマンドを取得することに用いられる、次元情報取得モジュールと、
前記各目標ネットワーク層の次元情報及び前記各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、前記目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、前記目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得することに用いられる、最適構成確定モジュールと、を含み、
前記事前情報は予め取得した異なるプリセットテストモードでの各プリセットネットワーク層の最適構成を含み、前記プリセットテストモードは各プリセットハードウェアコマンドにより各プリセットネットワーク層の機能を実現することを表し、各プリセットネットワーク層はいずれも相応の次元情報に対応し、前記最適構成はクロックサイクル数が最短になる際に対応する構成であり、前記汎用情報は異なるプリセット構成で各プリセットハードウェアコマンドを実行するために必要なクロックサイクル数を含む。
【0011】
可能な一実施形態では、前記最適構成確定モジュールは、具体的に、各目標ネットワーク層に対して、当該目標ネットワーク層の次元情報によってプリセットモデルコスト評価テーブルの事前情報を照会し、当該目標ネットワーク層に対応するプリセットネットワーク層を見つけた場合、見つけられたプリセットネットワーク層の最適構成を当該目標ネットワーク層の最適構成とすることと、
各目標ネットワーク層に対して、プリセットモデルコスト評価テーブルの事前情報には、当該目標ネットワーク層に対応するプリセットネットワーク層が存在しない場合、当該目標ネットワーク層の機能を実現するための必要な各目標ハードウェアコマンドを確定してハードウェアコマンド群とし、プリセットモデルコスト評価テーブルの汎用情報を照会し、各プリセット構成でハードウェアコマンド群を実行するために必要なクロックサイクル数をそれぞれ確定し、クロックサイクル数が最短になるプリセット構成を選択して、当該目標ネットワーク層の最適構成とすることと、に用いられる。
【0012】
可能な一実施形態では、前記装置は、予め設定された基準ニューラルネットワークモデルを取得することと、前記基準ニューラルネットワークモデルの各基準ネットワーク層に対して、異なるハードウェアで当該基準ネットワーク層の機能を実現するために必要なプリセットハードウェアコマンドを確定し、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行して、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行するために必要なクロックサイクル数を取得して、汎用情報としてモデルコスト評価テーブルに記録することと、予め設定された専用ニューラルネットワークモデルを取得することと、前記専用ニューラルネットワークモデルの各専用ネットワーク層に対して、異なるプリセット構成で、各プリセットハードウェアコマンドにより当該専用ネットワーク層の機能をそれぞれ実現し、異なるプリセットテストモードで当該専用ネットワーク層の機能を実現するために必要なクロックサイクル数を取得し、最短のクロックサイクル数に対応するプリセット構成を当該専用ネットワーク層の最適構成として、異なるプリセットテストモードでの当該専用ネットワーク層の最適構成を取得し、事前情報としてモデルコスト評価テーブルに記録することと、に用いられる、コスト評価テーブル構築モジュールをさらに含む。
【0013】
可能な一実施形態では、前記装置は、
前記目標ニューラルネットワークモデルにおける各ネットワーク層の最適構成によって、前記目標ニューラルネットワークモデルの構成ファイルを生成することに用いられる、構成ファイル生成モジュールと、
前記目標ハードウェアが前記構成ファイルに従って前記目標ニューラルネットワークモデルを構成し、構成された目標ニューラルネットワークモデルを実行するように、前記構成ファイル及び前記目標ニューラルネットワークモデルを前記目標ハードウェアに送信することに用いられる、構成ファイル送信モジュールと、をさらに含む。
【0014】
第3の形態において、本願の実施形態は、プロセッサ及びメモリを含む電子機器であって、
前記メモリは、コンピュータプログラムを記録することに用いられ、
前記プロセッサは、前記メモリに記録されるプログラムを実行すると、本願のいずれかに記載のニューラルネットワークモデルの構成を確定する方法を実現することに用いられる、電子機器を提供する。
【0015】
第4の形態において、本願の実施形態は、コンピュータプログラムが記録されるコンピュータ可読記憶媒体であって、前記コンピュータプログラムはプロセッサによって実行されると、本願のいずれかに記載のニューラルネットワークモデルの構成を確定する方法を実現する、ことを特徴とするコンピュータ可読記憶媒体を提供する。
【0016】
本願の実施形態の有利な効果は下記の通りである。
本願の実施形態提供的ニューラルネットワークモデルの構成を確定する方法、装置、機器及び記憶媒体は、構成しようとする目標ニューラルネットワークモデルにおける各目標ネットワーク層の次元情報及び目標ニューラルネットワークモデルを実行するための目標ハードウェアの各目標ハードウェアコマンドを取得し、各目標ネットワーク層の次元情報及び各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得する。目標ネットワーク層の次元情報及び目標ハードウェアのハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び共通的な汎用情報を照会し、各目標ネットワーク層のクロックサイクル数が最短になるプリセット構成、即ち、目標ニューラルネットワークモデルで実行されるクロックサイクル数が最小になる際の各目標ネットワーク層の構成を取得できることで、目標ニューラルネットワークモデルの目標ハードウェアにおける最適構成を取得し、続いて最適構成を利用して、ニューラルネットワークモデルの目標ハードウェアへの迅速な導入を実現できる。勿論、本願のいずれかの製品や方法を実施するにあって、上記のすべての利点を同時に達成する必要がない。
【図面の簡単な説明】
【0017】
本出願の実施形態及び従来技術の技術案をより明確に説明するために、以下の実施形態及び従来技術に必要な図面を簡単に説明するが、無論、以下に説明される図面は単に本出願の実施形態の一部であり、当業者であれば、創造的な働きをせずに、これらの図面に基づいて他の図面が得られることができる。
【
図1】
図1は、本願の実施形態のニューラルネットワークモデルの構成を確定する方法の第1模式図である。
【
図2】
図2は、本願の実施形態では構成ファイルをモデルのヘッドに追加する模式図である。
【
図3a】
図3aは、本願の実施形態のニューラルネットワークモデルの構成を確定する方法の第2模式図である。
【
図3b】
図3bは、本願の実施形態の事前情報によりネットワーク層の構成を確定する方法の模式図である。
【
図4】
図4は、本願の実施形態のプリセットモデルコスト評価テーブルの構築過程の模式図である。
【
図5】
図5は、本願の実施形態の連結リストの模式図である。
【
図6】
図6は、本願の実施形態のニューラルネットワークモデルの構成の確定装置の第3模式図である
【
図7】
図7は、本願の実施形態の電子機器の模式図である。
【発明を実施するための形態】
【0018】
以下、本願の実施形態の目標、技術案及び利点をより明確にするために、図面を参照しながら例を挙げて本願の実施形態をさらに詳しく説明する。無論、説明される実施形態は単に本願の実施形態の一部であり、全ての実施形態ではない。本願の実施形態に基づいて、当業者が創造的な作業を必要とせずに得られる全ての他の実施形態は何れも本願の保護範囲に該当する。
【0019】
まず、本出願の用語について説明する。
【0020】
深層学習ネットワークについて、現在、学界には、各種のニューラルネットワークモデルが提出され、例えば、パーセプトロン、フィードフォワードニューラルネットワーク、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、アルゴリズムハードウェアマッピング等である。これらの異なるニューラルネットワークモデルの違いは、主に、ニューロンの活性化ルール、ニューラルネットワークモデルのトポロジ構成及びパラメータの学習アルゴリズム等にある。一般的なネットワークの種類は、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、深層信念ネットワーク、敵対的生成ネットワーク、深層強化学習ネットワーク等を含む。
【0021】
CNN(Convolutional Neural Networks、畳み込みニューラルネットワーク)について、畳み込みニューラルネットワークは上記説明したフィードフォワードニューラルネットワークの1つに属し、図形画像の処理に対して独特の効果を有し、構造では少なくとも畳み込み層及びプーリング層を含む。畳み込みニューラルネットワークは近年ますます発展している深層学習ネットワークであり、学界で注目されており、企業で広く使用されている。代表的な畳み込みニューラルネットワークはLeNet-5、VGG(Visual Geometry Group Network、ビジュアルジオメトリグループネットワーク)、AlexNet等を含む。現在、畳み込みニューラルネットワークが、主に映像における物体の検出及び識別、ビデオ理解に適用される。
【0022】
LSTM(Long Short Term Memory、長短期記憶ネットワーク)について、LSTMはリカレントニューラルネットワークである。リカレントニューラルネットワークは、畳み込みニューラルネットワークに異なり、言語テキストに対する処理により適している。テキストに対する分析処理は、タイミングでの入力とコンテキストとのつながりをより注目する。リカレントニューラルネットワークの内部記憶構造は、まさにこのような需要シナリオに満たすため、テキスト処理に対して、リカレントニューラルネットワークがより優れる。現在、リカレントニューラルネットワークの主な導入シナリオは、機械翻訳、感情解析等のNLP(Neuro-Linguistic Programming、ニューラル言語プログラム学)分野である。特に、近年、マスコミがよく報道するニュース執筆ロボットも、リカレントニューラルネットワークに基づく1つの応用である。このほか、リカレントニューラルネットワークは、詩の自動生成、歌詞の自動生成、さらにはコードの自動生成も実現できる。
【0023】
同じモデルは、以前のハードウェアで長い時間をかけて性能が最適化された後、モデルの性能が最適状態になったが、他の種類のハードウェアに実装された後、以前に最適化された性能が表現できなくなり、さらに長い時間をかけて性能を最適化する必要がある。これはニューラルネットワークモデルの迅速な導入に非常に不利である。そのため、異なるハードウェアに対して、ニューラルネットワークモデルを最適化する必要がある。ハードウェアの性能を最適化する際に、コア数が多いほど、性能を最適化するために配慮すべく点が多くなる。畳み込みの実現方式はいくつがあり、例えば、一般的な直接的畳み込み及びWinograd畳み込み等である。Winograd畳み込みの実行効果が顕著であるが、Winogradの重み量が一般的な畳み込みの重み量に対する比は16:9であるため、移行にかかる時間が長くなる。計算の時間は少なくなったが、データの移行がネックであったため、構成を選択する際に、スループットとレイテンシとのバランスに係る問題に注目して配慮する必要がある。ある深層学習ネットワークが非常に大きい場合、例えば、数百層である場合、畳み込み層が非常に大きい割合を占める。各畳み込み層に対して、最適な畳み込みの実現方式を如何に選ぶのは、早急に解決すべき課題である。
【0024】
上記課題を解決するように、本願の実施形態は、ニューラルネットワークモデルの構成を確定する方法を提供する。
図1を参照して、当該方法は以下のステップを含む。
【0025】
S101において、構成しようとする目標ニューラルネットワークモデルにおける各目標ネットワーク層の次元情報及び前記目標ニューラルネットワークモデルを実行するための目標ハードウェアの各目標ハードウェアコマンドを取得する。
【0026】
本願の実施形態におけるニューラルネットワークモデルの構成を確定する方法は、電子機器によって実現されてよく、具体的に、当該電子機器は、サーバー、パソコン、スマートフォン、スマートカメラ又はハードディスクビデオレコーダ等であってよい。
【0027】
構成しようとする目標ニューラルネットワークモデルは、構成する必要がある任意のニューラルネットワークモデルであってよく、例えば、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、深層信念ネットワーク、敵対的生成ネットワーク、深層強化学習ネットワーク等であってもよい。本願は、目標ニューラルネットワークモデルの具体的な種類に対して限定しない。
【0028】
ニューラルネットワークモデルは複数のネットワーク層を含む。異なるニューラルネットワークモデルにおけるネットワーク層の種類及び数は異なってよく、ニューラルネットワークモデルの具体的な機能によって設定される必要がある。一般的なネットワーク層は畳み込み層、プーリング層及び全結合層等を含む。目標ニューラルネットワークモデルにおけるネットワーク層を目標ネットワーク層と称する。
【0029】
ネットワーク層の次元情報は、ネットワーク層が処理するデータの次元を表し、例えば、次元が5×5の畳み込み層は、5×5行列及び3×3行列の処理に用いることができ、次元が3×3の畳み込み層は、3×3行列の処理に用いることができる。本願の実施形態におけるハードウェアコマンドとは、ニューラルネットワークモデルがハードウェアで実行される際に、実行する必要があるコマンドである。ハードウェアコマンドがハードウェアのハードウェア構成に対応し、同じハードウェア構成のハードウェアのハードウェアコマンドは同じである。目標ニューラルネットワークモデルを実行するハードウェアを目標ハードウェアと称し、目標ハードウェアのハードウェアコマンドを目標ハードウェアコマンドと称する。
【0030】
S102において、前記各目標ネットワーク層の次元情報及び前記各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、前記目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、前記目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得する。ここで、前記事前情報は予め取得した異なるプリセットテストモードでの各プリセットネットワーク層の最適構成を含み、前記プリセットテストモードは各プリセットハードウェアコマンドにより各プリセットネットワーク層の機能を実現することを表し、各プリセットネットワーク層は、いずれも相応の次元情報に対応し、前記最適構成は、クロックサイクル数が最短になる際に対応する構成であり、前記汎用情報は、異なるプリセット構成で各プリセットハードウェアコマンドを実行するために必要なクロックサイクル数を含む。
【0031】
プリセット構成は、予め設置した各構成ポリシーであり、例えば、畳み込み層に対して、一般的な畳み込み、Winograd畳み込み等を含んでよい。
【0032】
プリセットモデルコスト評価テーブルには、主に2つの部分のデータが記録されている。第1部分は、汎用ニューラルネットワークモデルに基づいて得られる異なるプリセット構成で各プリセットハードウェアコマンドを実行するために必要なクロックサイクル数であり、ここで、クロックサイクル数は、継続時間を表し、必要なクロックサイクル数は、必要な継続時間である。プリセットハードウェアコマンドは、異なるハードウェアで各プリセットネットワーク層(予め規定された汎用ネットワーク層)の機能を実現するために必要なハードウェアコマンドである。当該部分のデータは、共通性を持ち、汎用情報と呼ばれる。第2部分は、専用ニューラルネットワークモデルに基づいて得られる、プリセットハードウェアコマンドによりプリセットネットワーク層(専用ネットワーク層、専用ネットワーク層の次元情報は既に確定されている)の機能を実現するために必要な最短のクロックサイクル数のプリセット構成であり、事前情報と呼ばれる。
【0033】
何れかの目標ネットワーク層に対して、まず、第2部分の事前情報には、目標ハードウェアの目標ハードウェアコマンドにより当該目標ネットワーク層に対して次元情報が同じ(種別も同じ)であるプリセットネットワーク層の機能を実現することに関する記録が存在するかを照会してよく、存在する場合、直接に対応するプリセットネットワーク層の最適構成を当該目標ネットワーク層の最適構成としてよく、存在しない場合、第1部分の汎用情報をトラバースする必要があり、異なるプリセット構成で、目標ハードウェアコマンドにより目標ネットワーク層の機能を実現するために必要なクロックサイクル数を得て、クロックサイクル数が最短になる際に対応するプリセット構成を選択して、当該目標ネットワーク層の最適構成とする。
【0034】
各目標ネットワーク層に対して、それぞれクロックサイクル数が最小であるプリセット構成を選択することで、目標ニューラルネットワークモデル全体の実行に必要なクロックサイクル数が最小になり、目標ニューラルネットワークモデルの実行速度が最も速くなる。
【0035】
本願の実施形態では、目標ネットワーク層の次元情報及び目標ハードウェアのハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び共通的な汎用情報を照会し、各目標ネットワーク層のクロックサイクル数が最短になるプリセット構成、即ち、目標ニューラルネットワークモデルを実行してクロックサイクル数が最小になる際の各目標ネットワーク層の構成を取得できることで、目標ニューラルネットワークモデルの目標ハードウェアでの最適構成を取得し、続いて最適構成により、ニューラルネットワークモデルの目標ハードウェアへの迅速な導入を実現できる。
【0036】
目標ニューラルネットワークモデルを実行するための電子機器は目標電子機器と称すると、本願の実施形態におけるニューラルネットワークモデルの構成を確定する方法は、目標電子機器と異なる他の電子機器(例えば、サーバ等)により実現されることができる。可能な一実施形態では、上記方法は以下のステップをさらに含む。
【0037】
ステップ1において、上記目標ニューラルネットワークモデルにおける各ネットワーク層の最適構成によって、上記目標ニューラルネットワークモデルの構成ファイルを生成する。
【0038】
ステップ2において、上記目標ハードウェアが上記構成ファイルに従って上記目標ニューラルネットワークモデルを構成し、構成された目標ニューラルネットワークモデルを実行するように、上記構成ファイル及び上記目標ニューラルネットワークモデルを上記目標ハードウェアに送信する。
【0039】
異なる業務シナリオのモデルは、前向き推論の前に、目標ニューラルネットワークモデルにおける各ネットワーク層の最適構成によって、所定電子機器ハードウェアでの最適な層アルゴリズム構成ファイルを生成する。
図2に示すように、最適構成ファイル及び目標ニューラルネットワークモデルをまとめて、新たなニューラルネットワークモデルを形成する。当該新たなニューラルネットワークモデルを電子機器に記録し、新たなニューラルネットワークモデルは、前向き推論の前に、そのヘッドの構成ファイルを解析し、各層のネットワーク層に最適構成を追加して、ニューラルネットワークモデルにより最適な層アルゴリズムを順次に実行する。
【0040】
例えば、ニューラルネットワークモデルは、前向き推論の前に、まずオフライン推論過程を実行する。オフライン推論過程の実行において、ネットワーク層の次元情報及びプリセットモデルコスト評価テーブルによって、各層の実行方式に対して最適構成を選択することで、オフライン構成ファイルを生成し、この構成ファイルを元モデルのヘッドに入れることで、新たな畳み込みニューラルネットワークモデルを生成する。畳み込みニューラルネットワークが実行する際に、まず各層の最適構成を解析し、各層は、最適構成に応じて実行することで、ネットワーク全体の性能が最適状態になる。
【0041】
本願の実施形態におけるニューラルネットワークモデルの構成を確定する方法は、目標ニューラルネットワークモデルを実行するための電子機器により実現されることができる。可能な一実施形態では、上記方法は、上記目標ニューラルネットワークモデルにおける各ネットワーク層の最適構成によって、目標ニューラルネットワークモデルの各ネットワーク層をそれぞれ構成する、ことをさらに含む。目標ニューラルネットワークモデルの各層のネットワーク層に最適構成をそれぞれ追加して、ニューラルネットワークモデルにより最適な層アルゴリズムを順次に実行する。
【0042】
可能な一実施形態では、
図3aに示すように、上記各目標ネットワーク層の次元情報及び上記各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、上記目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、上記目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得することは、以下のステップを含む。
【0043】
S1021において、各目標ネットワーク層に対して、当該目標ネットワーク層の次元情報によってプリセットモデルコスト評価テーブルの事前情報を照会し、当該目標ネットワーク層に対応するプリセットネットワーク層を見つけた場合、見つけられたプリセットネットワーク層の最適構成を当該目標ネットワーク層の最適構成とする。
【0044】
各目標ネットワーク層に対して、プリセットモデルコスト評価テーブルの事前情報には、当該目標ネットワーク層に対して次元情報及びネットワーク種別が同じであるプリセットネットワーク層が存在し、目標ハードウェアコマンドにより当該プリセットネットワーク層の機能を実現する最適構成が記録される場合、当該プリセットネットワーク層は当該目標ネットワーク層に対応するプリセットネットワーク層であることを判定する。一例として、各目標ネットワーク層に対して、まずプリセットモデルコスト評価テーブルの事前情報には当該目標ネットワーク層に対して次元情報が同じ(種別も同じ)であるプリセットネットワーク層(以下、第1プリセットネットワーク層と称される)が存在するかを判断し、第1プリセットネットワーク層が存在する場合、目標ハードウェアの目標ハードウェアコマンドにより第1プリセットネットワーク層の機能を実現する記録が存在するかを判断し、記録が存在する場合、直接に目標ハードウェアコマンドにより第1プリセットネットワーク層の機能を実現する最適構成を読み取って、当前目標ネットワーク層の最適構成とする。
【0045】
S1022において、各目標ネットワーク層に対して、プリセットモデルコスト評価テーブルの事前情報には、当該目標ネットワーク層に対応するプリセットネットワーク層が存在しない場合、当該目標ネットワーク層の機能を実現するための必要な各目標ハードウェアコマンドを確定してハードウェアコマンド群とし、プリセットモデルコスト評価テーブルの汎用情報を照会し、各プリセット構成でハードウェアコマンド群を実行するために必要なクロックサイクル数をそれぞれ確定し、クロックサイクル数が最短になるプリセット構成を選択して、当該目標ネットワーク層の最適構成とする。
【0046】
第1ネットワーク層のプリセットモデルコスト評価テーブルには、目標ハードウェアコマンドにより第1ネットワーク層の機能を実現する最適構成が存在しない場合、共通的な照会を行う必要があり、汎用情報を照会することで、目標ネットワーク層の最適構成を取得する。一例として、目標ネットワーク層の機能を実現するために、目標ハードウェアが第1ハードウェアコマンドと第2ハードウェアコマンドとの2つのハードウェアコマンドを実行する必要があることを例として、プリセットモデルコスト評価テーブルを照会し、何れかのプリセット構成に対して、当該プリセット構成で第1ハードウェアコマンドを実行するために必要なクロックサイクル数及び第2ハードウェアコマンドを実行するために必要なクロックサイクル数を取得することで、当該プリセット構成で当該目標ネットワーク層の機能を実行するために必要な合計のクロックサイクル数を取得し、その後、合計のクロックサイクル数が最短になる際のプリセット構成を選択し、当該目標ネットワーク層の最適構成とする。
【0047】
一例として、事前情報によりネットワーク層の構成を確定する方法は、
図3bに示すように、以下のステップを含む。
【0048】
ステップ1において、構成しようとする目標ニューラルネットワークモデルを取得する。
【0049】
ステップ2において、目標ニューラルネットワークモデルをトラバースし、各目標ネットワーク層の情報を取得する。目標ネットワーク層の情報を取得することは、畳み込み層情報及び非畳み込み層情報を統計することを含み、一例として、目標ネットワーク層の情報は具体的に畳み込み層情報の次元情報及び非畳み込み層の次元情報である。
【0050】
ステップ3において、順列組み合わせの方式に従って、探索空間を構築する。
【0051】
ステップ4において、探索空間を初期化する。
【0052】
探索空間は、目標ニューラルネットワークモデルにおける各目標ネットワーク層と計算ユニットとのマッピングテーブルを表す。探索空間には各目標ネットワーク層の次元情報、目標ハードウェアが目標ネットワーク層の機能を実現するために使用するハードウェアコマンド等のデータを含んでよい。
【0053】
ステップ5において、事前情報を登録し、探索空間を低減する。
【0054】
各目標ネットワーク層に対して、まずプリセットモデルコスト評価テーブルには、当該目標ネットワーク層に対して次元情報が同じであるプリセットネットワーク層(以下、第2プリセットネットワーク層と称される)が存在するかを判断してよく、第2プリセットネットワーク層が存在する場合、目標ハードウェアのハードウェアコマンドにより第2プリセットネットワーク層の機能を実現する記録が存在するかを判断し、記録が存在する場合、直接に目標ハードウェアのハードウェアコマンドにより第2プリセットネットワーク層の機能を実現するために必要な最短のクロックサイクル数に対応するプリセット構成を読み取って、当該目標ネットワーク層の最適構成とする。探索空間から、最適構成を既に確定した目標ネットワーク層を削除する。
【0055】
ステップ6において、最終探索空間を生成する。
【0056】
事前情報のマッチングにより、最終探索空間を取得する。最終探索空間における目標ネットワーク層は共通的な照会を行う必要があり、目標ネットワーク層の機能を実現するために、目標ハードウェアが第1ハードウェアコマンドと第2ハードウェアコマンドとの2つのハードウェアコマンドを実行する必要があることを例として、プリセットモデルコスト評価テーブルを照会し、各プリセット構成に対して、当該プリセット構成で第1ハードウェアコマンドを実行するために必要なクロックサイクル数及び第2ハードウェアコマンドを実行するために必要なクロックサイクル数を取得することで、当該プリセット構成で当該目標ネットワーク層の機能を実行するために必要な合計のクロックサイクル数を取得し、その後、合計のクロックサイクル数が最短になる際のプリセット構成を選択し、当該目標ネットワーク層の最適構成とする。
【0057】
可能な一実施形態では、
図4を参照して、プリセットモデルコスト評価テーブルを予め構築するステップは、以下のステップを含む。
【0058】
S201において、予め設定された基準ニューラルネットワークモデルを取得する。
【0059】
基準ニューラルネットワークモデルは、実際の状況に応じてカスタマイズで選択してよく、一般的に、基準ニューラルネットワークモデルは普遍性及び代表性を持つ必要があり、例えば、汎用の畳み込みニューラルネットワークモデルを選択して基準ニューラルネットワークモデルとすることができる。
【0060】
S202において、上記基準ニューラルネットワークモデルの各基準ネットワーク層に対して、異なるハードウェアで当該基準ネットワーク層の機能を実現するために必要なプリセットハードウェアコマンドを確定し、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行して、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行するために必要なクロックサイクル数を取得して、汎用情報としてモデルコスト評価テーブルに記録する。
【0061】
ハードウェアコマンドはハードウェアの構成に対応し、異なる構成の各サンプルハードウェアが基準ネットワーク層の機能を実現するために必要なハードウェアコマンドを取得して、各プリセットハードウェアコマンドを得る。各プリセットハードウェアコマンドに対して、異なるプリセット構成で当該プリセットハードウェアコマンドをそれぞれ実行することで、異なるプリセット構成で当該プリセットハードウェアコマンドを実行するために必要なクロックサイクル数を取得して、汎用情報としてモデルコスト評価テーブルに記録する。
【0062】
具体的に、基準ニューラルネットワークモデルに対して、このモデルにおける全てのネットワーク層の情報を統計し、例えば、1*1である畳み込み層がいくつあるか、3*3である畳み込み層がいくつあるか、max種別のプーリング層がいくつあるか、average種別のプーリング層がいくつあるか等ことである。そして、これらネットワーク層の情報によって、サンプルハードウェアでこれらのネットワーク層の機能を実現するために必要なハードウェアコマンドを探し、例えば、畳み込み層の機能の実現はmatmul 及びfixpipeという2つのコマンドが必要であり、Element-wise層の機能の実現はvadd、vsub、vcmp、vmin、reduce等の複数のコマンドが必要である。そして、サンプルハードウェアに基づいて、これらの基礎のハードウェアコマンドを実行するために必要なCycle(クロックサイクル数)数を探して、連結リストを構築する。例えば、
図5に示すように、Conv層は畳み込み層を表し、Eltwise層は要素操作層であり、要素の位置に応じて要素融合を行うことに用いられ、Max Eltwiseは最大値を取ることを表し、Sum Eltwiseは加減算を表し、Sub Eltwiseは置き換えを表し、ここで、Conv層は1*1conv層及び5*5conv層を含み、1*1conv層の機能の実現はmatmul 及びfixpipeという2つのコマンドが必要であり、5*5conv層の実現はconv2d及びfixpipeという2つのコマンドが必要であり、Max Eltwise機能の実現はvmax及びreduce_maxという2つのコマンドが必要であり、Sum Eltwise機能の実現はvadd及びreduce_sumという2つのコマンドが必要であり、Sub Eltwise機能の実現はvsub及びreduce_subという2つのコマンドが必要である。
【0063】
S203において、予め設定された専用ニューラルネットワークモデルを取得する。
【0064】
専用ニューラルネットワークモデルは具体的な知能アルゴリズムを実現するために用いられる専用のモデルである。異なる業務シナリオでの知能アルゴリズムの専用ニューラルネットワークモデルは異なることが理解できる。そのため、全部列挙できなく、実際の適用シナリオにおいて、実際の業務シナリオに使用されるニューラルネットワークモデルによって専用ニューラルネットワークモデルを選択してよい。
【0065】
S204において、上記専用ニューラルネットワークモデルの各専用ネットワーク層に対して、異なるプリセット構成で、各プリセットハードウェアコマンドにより当該専用ネットワーク層の機能をそれぞれ実現し、異なるプリセットテストモードで当該専用ネットワーク層の機能を実現するために必要なクロックサイクル数を取得し、最短のクロックサイクル数に対応するプリセット構成を当該専用ネットワーク層の最適構成として、異なるプリセットテストモードでの当該専用ネットワーク層の最適構成を取得し、事前情報としてモデルコスト評価テーブルに記録する。
【0066】
ステップS202に構築した連結リストは、実際のニューラルネットワークモデルのネットワーク層から逸脱し、単にハードウェアが基礎ハードウェアコマンドを実行することに基づいて得られるものであるため、ネットワークモデル全体が実行する場合、各層が最適アルゴリズムを呼び出す際に、中間データ転換の過程が存在し、例えば、最も一般的なゼロパディング操作であり、この過程に余分な消費時間をかかる。いくつかの場合において、この部分の消費時間によって、ネットワーク全体の消費時間が最適ではなくなる。ステップS202には、ハードウェアのクロックサイクルに基づいてカウントするが、また、例えば、次元ゼロパディング操作などの次元統一操作も係るが、この部分の消費時間はステップS202のカウントに存在しなく、この消費時間によって、ネットワーク全体の性能が最適状態ではなくなる。そのため、このような場合に対して、特に単独のカウントを行う必要がある。例えば、畳み込みを例として、ステップS202には、Winograd畳み込み時間が最短であることを確定したが、ネットワークモデルがハードウェアに全体的に適合する必要があると配慮するため、第1層の畳み込みの実現とき、チャンネル数に対して余分の統一を行い、ゼロパディング操作を行う必要があり、それで第1層または入力チャンネル数が3である畳み込みに対して、通常の畳み込みにより機能を実現することに特定する必要があり、当該ハードウェアで通常の畳み込み(構成)により入力チャンネル数が3である畳み込み層(第1層畳み込み)の機能を実現するために必要なクロックサイクル数が最短であり、これは事前情報であり、即ち、プリセットモデルコスト評価テーブルに記録すべきデータである。
【0067】
本願には、2次元からプリセットモデルコスト評価テーブルを構築し、基準ニューラルネットワークモデルによってハードウェアコマンドに対応するCycle(クロックサイクル)数の連結リストを生成し、一般的な畳み込みニューラルネットワークの次元情報をビッグデータによりまとめて、連結リストを補完し拡張することで、プリセットモデルコスト評価テーブルを取得する。異なるハードウェアに対して各ネットワーク層の構成を柔軟に確定することができ、そのため、ニューラルネットワークモデルが当該ハードウェアで実行すると高い性能を実現することができる。
【0068】
本願の実施形態は、ニューラルネットワークモデルの構成の確定装置をさらに提供する。
図6を参照して、当該装置は、
構成しようとする目標ニューラルネットワークモデルにおける各目標ネットワーク層の次元情報及び上記目標ニューラルネットワークモデルを実行するための目標ハードウェアの各目標ハードウェアコマンドを取得することに用いられる、次元情報取得モジュール11と、
上記各目標ネットワーク層の次元情報及び上記各目標ハードウェアコマンドによって、プリセットモデルコスト評価テーブルにおける事前情報及び汎用情報を照会し、上記目標ハードウェアで各目標ネットワーク層を実行してクロックサイクル数が最短になる際に対応するプリセット構成をそれぞれ確定することで、上記目標ニューラルネットワークモデルにおける各目標ネットワーク層の最適構成を取得することに用いられる、最適構成確定モジュール12と、を含み、
上記事前情報は予め取得した異なるプリセットテストモードでの各プリセットネットワーク層の最適構成を含み、上記プリセットテストモードは各プリセットハードウェアコマンドにより各プリセットネットワーク層の功能を実現することを表し、各プリセットネットワーク層はいずれも相応の次元情報に対応し、上記最適構成はクロックサイクル数が最短になる際に対応する構成であり、上記汎用情報は異なるプリセット構成で各プリセットハードウェアコマンドを実行するために必要なクロックサイクル数を含む。
【0069】
可能な一実施形態では、上記最適構成確定モジュールは、具体的に、各目標ネットワーク層に対して、当該目標ネットワーク層の次元情報によってプリセットモデルコスト評価テーブルの事前情報を照会し、当該目標ネットワーク層に対応するプリセットネットワーク層を見つけた場合、見つけられたプリセットネットワーク層の最適構成を当該目標ネットワーク層の最適構成とすることと、
各目標ネットワーク層に対して、プリセットモデルコスト評価テーブルの事前情報には、当該目標ネットワーク層に対応するプリセットネットワーク層が存在しない場合、当該目標ネットワーク層の機能を実現するための必要な各目標ハードウェアコマンドを確定してハードウェアコマンド群とし、プリセットモデルコスト評価テーブルの汎用情報を照会し、各プリセット構成でハードウェアコマンド群を実行するために必要なクロックサイクル数をそれぞれ確定し、クロックサイクル数が最短になるプリセット構成を選択して、当該目標ネットワーク層の最適構成とすることと、に用いられる。
【0070】
可能な一実施形態では、上記装置は、予め設定された基準ニューラルネットワークモデルを取得することと、上記基準ニューラルネットワークモデルの各基準ネットワーク層に対して、異なるハードウェアで当該基準ネットワーク層の機能を実現するために必要なプリセットハードウェアコマンドを確定し、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行して、異なるプリセット構成で各プリセットハードウェアコマンドをそれぞれ実行するために必要なクロックサイクル数を取得して、汎用情報としてモデルコスト評価テーブルに記録することと、予め設定された専用ニューラルネットワークモデルを取得することと、上記専用ニューラルネットワークモデルの各専用ネットワーク層に対して、異なるプリセット構成で、各プリセットハードウェアコマンドにより当該専用ネットワーク層の機能をそれぞれ実現し、異なるプリセットテストモードで当該専用ネットワーク層の機能を実現するために必要なクロックサイクル数を取得し、最短のクロックサイクル数に対応するプリセット構成を当該専用ネットワーク層の最適構成として、異なるプリセットテストモードでの当該専用ネットワーク層の最適構成を取得し、事前情報としてモデルコスト評価テーブルに記録することと、に用いられる、コスト評価テーブル構築モジュールをさらに含む。
【0071】
可能な一実施形態では、上記装置は、
上記目標ニューラルネットワークモデルにおける各ネットワーク層の最適構成によって、上記目標ニューラルネットワークモデルの構成ファイルを生成することに用いられる、構成ファイル生成モジュールと、
上記目標ハードウェアが上記構成ファイルに従って上記目標ニューラルネットワークモデルを構成し、構成された目標ニューラルネットワークモデルを実行するように、上記構成ファイル及び上記目標ニューラルネットワークモデルを上記目標ハードウェアに送信することに用いられる、構成ファイル送信モジュールと、をさらに含む。
【0072】
本願の実施形態は、プロセッサ及びメモリを含む電子機器であって、
上記メモリは、コンピュータプログラムを記憶することに用いられ、
上記プロセッサは、上記メモリに記録されるコンピュータプログラムを実行すると、上記いずれかのニューラルネットワークモデルの構成を確定する方法を実現することに用いられる、電子機器をさらに提供する。
【0073】
代替的に、
図7を参照して、上記プロセッサ21及びメモリ23のほか、本願の実施形態の電子機器は、通信インタフェース22及び通信バス24をさらに含み、プロセッサ21と通信インタフェース22とメモリ23とが通信バス24を介して互いに通信する。
【0074】
上記電子機器に言及した通信バスは、PCI(Peripheral Component Interconnect、外設部件コンポーネント接続標準)バスまたはEISA(Extended Industry Standard Architecture、拡張業界標準アーキテクチャ)バス等であってもよい。この通信バスは、アドレスバス、データバス、コントロールバス等に分けられる。図においては図示の都合上、1本の太線で図示するが、1本のバスまたは1種類のバスのみを有するという意味ではない。
【0075】
通信インタフェースは、上記電子デバイスと他のデバイスとの間の通信に用いられる。
【0076】
メモリは、RAM(Random Access Memory、ランダムアクセスメモリ)を含んでよく、NVM(Non-Volatile Memory、非揮発性メモリ)を含んでもよく、例えば、少なくとも1つの磁気ディスクメモリである。代替的に、メモリはさらに、少なくとも1つの前述のプロセッサから離れた記憶装置であってもよい。
【0077】
上記プロセッサは、CPU(Central Processing Unit、セントラルプロセッサ)、NP(Network Processor、ネットワークプロセッサ)等含む汎用なプロセッサであってもよく、DSP(Digital Signal Processing、デジタルシグナルプロセッサ)、ASIC(Application Specific Integrated Circuit、特定用途向け集積回路)、FPGA(Field-Programmable Gate Array、現場で書き換え可能な論理回路の多数配列)または他の書き換え可能な論理デバイス、ディスクリートゲート或いはトランジスタ倫理デバイス、ディスクリートハードウェアアセンブリを含む汎用プロセッサであってもよい。
【0078】
本願の実施形態は、コンピュータプログラムが記録されるコンピュータ可読記憶媒体であって、上記コンピュータプログラムはプロセッサによって実行されると、実施形態におけるいずれかのニューラルネットワークモデルの構成を確定する方法を実現する、コンピュータ可読記憶媒体をさらに提供する。
【0079】
本願に提供される他の実施形態では、コマンドを含むコンピュータプログラム製品であって、コンピュータプログラム製品がコンピュータで実行されると、コンピュータに上記実施形態におけるいずれかのニューラルネットワークモデルの構成を確定する方法を実現させる、コンピュータプログラム製品をさらに提供する。
【0080】
上記実施形態では、全部または一部がソフトウェア、ハードウェア、ファームウェア或いはそれらの内でいくつの組み合せによって実現できる。ソフトウェアを用いて実現する場合、全部または一部がコンピュータプログラム製品の形で実現できる。前記コンピュータプログラム製品は1つまたは複数のコンピュータコマンドを含む。コンピュータに前記コンピュータプログラムコマンドをロードして実行する場合、全部または一部が本願の実施形態に記載に従う流れまたは機能を実現する。前記コンピュータは汎用なコンピュータ、特定用途向けコンピュータ、コンピュータネットワーク、または他の書き換え可能な装置であってもよい。前記コンピュータコマンドはコンピュータ可読記憶媒体に記憶され、または、1つのコンピュータ可読記憶媒体から他のコンピュータ可読記憶媒体へ伝送され得る。例えば、前記コンピュータコマンドは1つのウェブサイト、コンピュータ、サーバーまたはデータセンターから、有線(例えば、同軸ケーブル、ファイバー、デジタル加入者線)または無線(例えば、赤外、無線、マイクロ波等)によって他のウェブサイト、コンピュータ、サーバー或データセンターに伝送され得る。前記コンピュータ可読記憶媒体は、コンピュータが読み書き可能な、任意の利用可能な媒体であってもよく、或いは1つまたは複数の利用可能な媒体が集積したサーバー、データセンター等を含むデータ記憶デバイスであってもよい。前記利用可能な媒体は磁気媒体、(例えば、フロッピーディスク、ハードディスク、テープ)、光媒体(例えば、DVD)、或いは半導体媒体(例えば、ソリッドステートドライブSolid State Disk (SSD))等であってもよい。
【0081】
なお、本明細書において、好適な技術案のそれぞれにおける技術的特徴は矛盾しない限り組み合わせて技術案を形成してよく、これらの技術案はいずれも本願に開示する範囲に含まれる。「第1」と「第2」等の関係用語は1つのエンティティまたは操作を他のエンティティまたは操作を区別するのみに用いられ、これらのエンティティまたは操作の間にこのような実際な関係または順序がいずれかあることを、要求または示唆するものではない。また、用語「含まれる」、「含む」または他のいずれかの変形は非排他的な「含む」を意味する。従って、一連の要素を含む流れ、方法、製品或いはデバイスは、それらの要素のみを含むものではなく、さらに明確に挙げていない他の要素も含み、または、さらにこのような流れ、方法、製品或いはデバイスに固有する要素も含む。これ以上の制限がない場合、「1つの...を含む」という記述によって限定した要素は、記載した要素を含む流れ、方法、製品、またはデバイスに、他の同一の要素があることを排除しない。
【0082】
本明細書中の各実施形態は、関連するように説明されており、各実施形態の間に同一または類似する部分については相互参照すればよく、各実施形態では重点的に説明したのは、他の実施形態と異なる箇所である。特に、装置、電子機器、コンピュータプログラム製品及び記憶媒体の実施形態にとって、基本的に方法に関する実施形態に類似するので、比較的に簡単に説明され、関連するところは方法に関する実施形態の部分に参照すればよい。
【0083】
以上の記載は本願の好適な実施形態に過ぎず、本願を制限することを意図するものではない。本願の主旨及び原則内で行われる如何なる修正、均等の代替、改良等は何れも本願の保護範囲内に含まれるべきである。
【国際調査報告】