Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6829327B2 - 変換方法、装置、コンピューターデバイス及び記憶媒体 - Google Patents
[go: Go Back, main page]

JP6829327B2 - 変換方法、装置、コンピューターデバイス及び記憶媒体 - Google Patents

変換方法、装置、コンピューターデバイス及び記憶媒体 Download PDF

Info

Publication number
JP6829327B2
JP6829327B2 JP2019564530A JP2019564530A JP6829327B2 JP 6829327 B2 JP6829327 B2 JP 6829327B2 JP 2019564530 A JP2019564530 A JP 2019564530A JP 2019564530 A JP2019564530 A JP 2019564530A JP 6829327 B2 JP6829327 B2 JP 6829327B2
Authority
JP
Japan
Prior art keywords
model
attribute information
computer device
offline model
initial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019564530A
Other languages
English (en)
Other versions
JP2020532778A (ja
Inventor
シャオリー リウ
シャオリー リウ
チュン リャン
チュン リャン
チー クオ
チー クオ
Original Assignee
カンブリコン テクノロジーズ コーポレイション リミティド
カンブリコン テクノロジーズ コーポレイション リミティド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by カンブリコン テクノロジーズ コーポレイション リミティド, カンブリコン テクノロジーズ コーポレイション リミティド filed Critical カンブリコン テクノロジーズ コーポレイション リミティド
Publication of JP2020532778A publication Critical patent/JP2020532778A/ja
Application granted granted Critical
Publication of JP6829327B2 publication Critical patent/JP6829327B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Molecular Biology (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Power Sources (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Description

関連出願
本願発明は、出願日が2018年08月10日であり、出願番号が201810913895.6であり、名前が「変換方法、装置、コンピューターデバイス及び記憶媒体」である中国特許出願に対して優先権を主張し、当該中国特許出願の全ての内容は参照により本明細書に組み込まれる。
本発明は、コンピュータ技術分野に関し、具体的に、変換方法、装置、コンピューターデバイス及び記憶媒体に関する。
人工知能技術の開発により、ディープラーニングはユビキタスで不可欠になり、例えば、TensorFlow、MXNet、Caffe及びPyTorchなどの多くのスケーラブルなディープラーニングシステムが生成され、上記ディープラーニングシステムは、CPUやGPUなどのプロセッサで実行することができるニューラルネットワークモデルまたは他の機械学習モデルを提供するために使用されることができる。ニューラルネットワークモデルなどの機械学習モデルが異なるプロセッサで実行される必要がある場合、多くの場合、ニューラルネットワークモデルなどの機械学習モデルを変換する必要がある。
従来の変換方法は次の通りである。開発者は、同じニューラルネットワークモデルに複数の異なる変換モデルを配置することができ、複数の変換モデルは、異なるプロセッサに適用されることができ、実際の使用において、コンピューターデバイスは、当該ニューラルネットワークモデル及びそれに対応する複数の変換モデルを同時に受信する必要があり、ユーザーは現在のコンピューターデバイスのタイプに従って、上記の複数のモデルから一つのモデルを選択して、当該ニューラルネットワークモデルが現在のコンピューターデバイスで実行できるようにする必要がある。しかし、上記変換方法のデータ入力量とデータ処理量はともに大きく、上記比較的に大きいデータ入力量及びデータ処理量は、コンピューターデバイスの記憶容量及び処理制限を容易に超えてしまい、コンピューターデバイスの処理速度が低下し、さらに正常に動作できないことがある。
関連技術に存在する問題を少なくともある程度克服するために、本出願は、変換方法、装置、コンピューターデバイス及び記憶媒体を提供する。
本出願は、初期オフラインモデルとコンピューターデバイスのハードウェア属性情報を獲得するステップと、前記初期オフラインモデルと前記コンピューターデバイスのハードウェア属性情報に従って、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致するかどうかを判断するステップと、及び前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致しない場合、前記コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、前記初期オフラインモデルを前記コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換するステップとを含むモデル変換方法を提供する。
一つの実施例において、前記コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、前記初期オフラインモデルを前記コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換するステップは、前記コンピューターデバイスのハードウェア属性情報に従って、前記ターゲットオフラインモデルのモデル属性情報を決定するステップと、前記初期オフラインモデルのモデル属性情報と前記ターゲットオフラインモデルのモデル属性情報に従って、複数の前記予め設定されたモデル変換ルールから一つの前記モデル変換ルールをターゲットモデル変換ルールとして選択するステップと、及び前記初期オフラインモデルのモデル属性情報と前記ターゲットモデル変換ルールに従って、前記初期オフラインモデルを前記ターゲットオフラインモデルに変換するステップとを含む。
一つの実施例において、前記初期オフラインモデルのモデル属性情報と前記ターゲットオフラインモデルのモデル属性情報に従って、複数の前記予め設定されたモデル変換ルールから一つの前記モデル変換ルールをターゲットモデル変換ルールとして選択するステップは、前記初期オフラインモデルのモデル属性情報と前記ターゲットオフラインモデルのモデル属性情報に従って、複数の前記予め設定されたモデル変換ルールから一つ以上の使用可能なモデル変換ルールを選択するステップと、及び前記一つ以上の使用可能なモデル変換ルールに優先順位を付け、優先順位の高い使用可能なモデル変換ルールを前記ターゲット変換ルールとして使用するステップとを含む。
一つの実施例において、前記一つ以上の使用可能なモデル変換ルールに優先順位を付けるステップは、各前記使用可能なモデル変換ルールを使用して、前記初期オフラインモデルを前記ターゲットオフラインモデルに変換するためのプロセスパラメーターをそれぞれ獲得し、ここで、前記プロセスパラメーターは、変換速度、消費電力、メモリ使用率及びディスクI/O占有率中の一つまたは複数を含むステップと、及び各前記使用可能なモデル変換ルールのプロセスパラメーターに従って、一つ以上の前記使用可能なモデル変換ルールに優先順位を付けるステップとを含む。
一つの実施例において、前記初期オフラインモデルのモデル属性情報、前記ターゲットオフラインモデルのモデル属性情報及び前記使用可能なモデル変換ルールの三つの間は1対1に対応するように保存される。
一つの実施例において、前記初期オフラインモデルと前記コンピューターデバイスのハードウェア属性情報に従って、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致するかどうかを判断するステップは、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報に従って、前記コンピューターデバイスが前記初期オフラインモデルの実行をサポートできること決定する場合、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致すると判定するステップと、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報に従って、前記コンピューターデバイスが前記初期オフラインモデルの実行をサポートしないと決定する場合、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致しないと判定するステップとを含む。
一つの実施例において、前記初期オフラインモデルを獲得するステップは、前記コンピューターデバイス上のアプリケーションソフトウェアを介して前記初期オフラインモデルと前記コンピューターデバイスのハードウェア属性情報を獲得するステップを含む。
一つの実施例において、前記ターゲットオフラインモデルを前記コンピューターデバイスの第1メモリまたは第2メモリに保存するステップをさらに含む。
一つの実施例において、前記方法は、前記ターゲットオフラインモデルを獲得し、前記ターゲットオフラインモデルを実行し、ここで、前記ターゲットオフラインモデルは、オリジナルネットワークにおける各オフラインノードに対応するネットワークの重み、命令及び各オフラインノードと前記オリジナルネットワーク中の他の計算ノードとの間のインターフェースデータを含むステップをさらに含む。
本出願は、初期オフラインモデルとコンピューターデバイスのハードウェア属性情報を獲得するために使用される獲得モジュールと、前記初期オフラインモデルと前記コンピューターデバイスのハードウェア属性情報に従って、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致するかどうかを判断するように使用される判断モジュールと、及び前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致しない場合、前記コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、前記初期オフラインモデルを前記コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換するように使用される変換モジュールとを含むモデル変換装置を提供する。
本出願は、コンピュータプログラムが保存されるメモリとプロセッサを含み、前記プロセッサが前記コンピュータプログラムを実行する場合、上記の変換方法を実現するコンピューターデバイスを提供する。
一つの実施例において、前記プロセッサは、演算ユニットとコントローラーユニットを含み、前記演算ユニットは、メイン処理回路と複数のスレーブ処理回路を含み、前記コントローラーユニットは、データ、機械学習モデル及び計算命令を獲得するために使用され、前記コントローラーユニットは、さらに前記計算命令を解析して複数の演算命令を獲得し、前記複数の演算命令及び前記データを前記メイン処理回路に送信するように使用され、前記メイン処理回路は、前記データ及び前記メイン処理回路と前記複数のスレーブ処理回路との間で伝送されるデータと演算命令に対して前処理を実行するように使用され、前記複数のスレーブ処理回路は、前記メイン処理回路から伝送されたデータ及び演算命令に従って、中間演算を実行して複数の中間結果を獲得し、複数の中間結果を前記メイン処理回路に伝送するように使用され、前記メイン処理回路は、さらに前記複数の中間結果に対して後続処理を実行して、前記計算命令の計算結果を獲得するように使用される。
本出願は、コンピュータプログラムが保存され、前記コンピュータプログラムは、プロセッサによって実行される場合、上記の変換方法のステップを実行するコンピュータ可読記憶媒体を提供する。
以上の一般的な説明及び以下の詳細な説明は単なる例示及び解釈であり、本発明を限定する意図ではないことを理解されたい。
一つの実施例におけるコンピューターデバイスの構造ブロック図である。 図1におけるプロセッサの一つの実施例の構造ブロック図である。 図1におけるプロセッサの一つの実施例の構造ブロック図である。 図1におけるプロセッサの一つの実施例の構造ブロック図である。 一つの実施例におけるモデル変換方法のフロー模式図である。 一つの実施例におけるモデル変換方法のフロー模式図である。 一つの実施例におけるオフラインモデル生成方法のフロー模式図である。 一つの実施例におけるオフラインモデル生成方法のフロー模式図である。 一実施例のネットワークモデルのネットワーク構造図である。 図9におけるネットワークモデルのオフラインモデル生成プロセス模式図である。
本明細書の図面は、本明細書に組み込まれ、その一部を構成し、本出願の実施例を例示し、明細書とともに本出願の原理を説明するために使用される。
ここで、例示的な実施例を詳細に説明し、その例を添付の図面に示す。以下の説明が図面に関する場合、特に明記しない限り、異なる図面の同じ数字は、同じまたは類似の要素を示す。以下の例示的な実施例で説明される実施形態は、本出願と一致するすべての実施形態を表すもためはない。代わりに、それらは、添付の特許請求の範囲に詳述されている、本出願のいくつかの態様と一致する装置及び方法の単なる例である。
図1は、一実施例におけるコンピューターデバイスのブロック図であり、当該コンピューターデバイスは、携帯電話またはタブレットコンピュータなどのモバイル端末、またはデスクトップコンピュータ、タブレットカード、またはクラウドサーバなどの端末であり得る。当該コンピューターデバイスは、ロボット、プリンター、スキャナー、運転レコーダー、ナビゲーター、カメラ、ビデオカメラ、プロジェクター、時計、モバイルストレージ、ウェアラブルデバイス、乗り物、家電製品、および/または医療機器に適用できる。ここで、乗り物は、飛行機、船、および/または車両を含むことができ、家電は、テレビ、エアコン、電子レンジ、冷蔵庫、炊飯器、加湿器、洗濯機、電灯、ガスコンロ、レンジフードを含むことができ、医療機器は、核磁気共鳴装置、B超音波および/または心電計などを含むことができる。
当該コンピューターデバイスは、プロセッサ100、当該プロセッサ100に接続される第1メモリ200及び第2メモリ300を含むことができる。選択的に、プロセッサ100は、CPU(Central Processing Unit、中央プロセッサ)、GPU(Graphics Processing Unit、グラフィックプロセッサ)またはDSP(Digital Signal Processing、デジタル信号処理)のような汎用プロセッサであることができ、当該プロセッサ100は、IPU(Intelligence Processing Unit、インテリジェントプロセッサ)などの専用ニューラルネットワークプロセッサであることもできる。もちろん、当該プロセッサは、命令セットプロセッサ、関連チップセット、専用マイクロプロセッサ(例えば、専用集積回路(ASIC))またはキャッシュ(cache)用途に使用されるオンボードメモリなどであることもである。
選択的に、図2に示したように、当該プロセッサ100は、コントローラーユニット110と演算ユニット120を含むことができ、ここで、コントローラーユニット110は、演算ユニット120に接続され、当該演算ユニット120は、一つのメイン処理回路121と複数のスレーブ処理回路122を含むことができる。コントローラーユニット110は、データ、機械学習モデル及び計算命令を獲得するために使用される。当該機械学習モデルは、具体的にネットワークモデルを含むことができ、当該ネットワークモデルは、ニューラルネットワークモデル及び/または非ニューラルネットワークモデルであることができる。コントローラーユニット110は、さらに獲得された計算命令を解析して演算命令を獲得し、複数の演算命令及びデータをメインプロセッサ回路に送信するために使用される。メイン処理回路は、データ及び当該メイン処理回路と複数のスレーブ処理回路との間で伝送されるデータ及び演算命令に対して前処理を実行するために使用される。複数のスレーブ処理回路は、メイン処理回路から伝送されたデータ及び演算命令に従って、中間演算を並列に実行して複数の中間結果を獲得し、複数の中間結果をメイン処理回路に伝送するために使用され、メイン処理回路は、さらに複数の中間結果に対して後続処理を実行して計算命令の計算結果を獲得するために使用される。
選択的に、当該コントローラーユニット110は、命令記憶ユニット111、命令処理ユニット112及び記憶キューユニット114を含むことができ、命令記憶ユニット111は、機械学習モデルに関連する計算命令を保存するために使用され、命令処理ユニット112は、計算命令に対して解析して複数の演算命令を獲得するために使用され、記憶キューユニット114は、命令キューを保存するために使用され、当該命令キューは、当該キューの前後順序によって実行される複数の演算命令または計算命令を含む。選択的に、当該コントローラーユニット110は、複数の演算命令を備える場合、第1演算命令と第1演算命令との間の第0演算命令に関連関係があるかどうかを決定するための依存関係処理ユニット113をさらに含み、例えば、第1演算命令と第0演算命令に関連関係が存在する場合、第1演算命令を命令記憶ユニット内にキャッシュし、第0演算命令が実行完了した後、命令記憶ユニットから第1演算命令を抽出して演算ユニットに伝送する。具体的に、依存関係処理ユニット113が第1演算命令に従って、第1演算命令における必要なデータ(例えば、マトリックス)の第1ストレージアドレス区間を抽出し、第0演算命令に従って、第0演算命令における必要なマトリックスの第0ストレージアドレス区間を抽出し、例えば、第1ストレージアドレス区間と第0ストレージアドレス区間に重なる領域がある場合、第1演算命令と第0演算命令に関連関係があると決定し、例えば、第1ストレージアドレス区間と第0ストレージアドレス区間に重なる領域がない場合、第1演算命令と第0演算命令に関連関係がないと決定する。
一つの実施例において、図3に示したように、演算ユニット120は、分岐処理回路123をさらに含むことができ、ここで、メイン処理回路121は分岐処理回路123に接続され、分岐処理回路123は複数のスレーブ処理回路122に接続され、分岐処理回路123は、メイン処理回路121とスレーブ処理回路122との間のデータまたは命令を転送するために使用される。この実施例において、メイン処理回路121は、具体的に一つの入力ニューロンを複数のデータブロックに割り当て、複数のデータブロックにおける少なくとも一つの少なくとも一つのデータブロック、重み及び複数の演算命令における少なくとも一つの演算命令を分岐処理回路に送信するために使用され、分岐処理回路123は、メイン処理回路121と複数のスレーブ処理回路122との間のデータブロック、重み及び演算命令を転送するために使用され、複数のスレーブ処理回路122は、当該演算命令に従って受信されたデータブロック及び重みに対して演算して中間結果を獲得し、中間結果を分岐処理回路123に伝送するために使用され、メイン処理回路121は、さらに分岐処理回路によって送信された中間結果を後続処理して当該計算命令の結果を獲得し、当該計算命令の結果を前記コントローラーユニットに送信するために使用される。
他の選択可能な実施例において、図4に示したように、演算ユニット120は、一つのメイン処理回路121と複数のスレーブ処理回路122を含むことができる。ここで、複数のスレーブ処理回路は、アレイ配置され、それぞれのスレーブ処理回路は隣接する他のスレーブ処理回路に接続され、メイン処理回路は、複数のスレーブ処理回路におけるk個のスレーブ処理回路に接続され、k個のスレーブ処理回路は、第1行のn個のスレーブ処理回路、第m行のn個のスレーブ処理回路及び第1列のm個のスレーブ処理回路であり、説明すべきのは、図1Cに示したK個のスレーブ処理回路は、第1行のn個のスレーブ処理回路、第m行のn個のスレーブ処理回路及び第1列のm個のスレーブ処理回路のみを含み、即ち、当該k個のスレーブ処理回路は、複数のスレーブ処理回路におけるメイン処理回路に直接に接続されるスレーブ処理回路である。K個のスレーブ処理回路は、メイン処理回路と複数のスレーブ処理回路との間でデータ及び命令を転送するために使用される。
選択的に、上記のメイン処理回路121は、変換処理回路、起動処理回路、加算処理回路中の一つまたは任意の組合せを含むことができ、変換処理回路は、メイン処理回路が受信したデータブロックまたは中間結果によって第1データ構造と第2データ構造との間の交換(例えば、連続データと離散データの変換)を実行するために使用され、またはメイン処理回路が受信したデータブロックまたは中間結果によって第1データタイプと第2データタイプとの間の交換(例えば、固定小数点タイプと浮動小数点タイプの変換)を実行するために使用され、起動処理回路は、メイン処理回路内のデータの起動演算を実行するために使用され、加算処理回路は、加算演算または累積演算を実行するために使用される。
当該第1メモリ200または第2メモリ300は本出願の実施例で提供されるモデル変換方法を実行するためのコンピュータプログラムを保存することができる。具体的に、当該モデル変換方法は、コンピューターデバイスが受信した初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致しない場合、当該コンピューターデバイスが当該初期オフラインモデルを実行することができるように、当該初期オフラインモデルを当該コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換する。上記のモデル変換方法において、コンピューターデバイスのデータ入力量が少なく、人間の介入なしで初期オフラインモデルからターゲットオフラインモデルへの変換を自動的に完了することができ、変換プロセスが簡単で、変換効率が高い。さらに、第1メモリ200または第2メモリ300に保存されたコンピュータプログラムは、さらに本出願の実施例で提供されるオフラインモデル生成方法を実現するために使用される。
選択的に、第1メモリ200は、ネットワーク入力データ、ネットワーク出力データ、ネットワークの重み及び命令などのネットワークモデルの実行プロセスにおける関連データを保存するために使用されることができる。当該第1メモリ200は、キャッシュなどの揮発性メモリのような内部メモリであることができる。当該第2メモリ300は、ネットワークモデルに対応するオフラインモデルを保存するために使用されることができ、例えば、第2メモリ300は、不揮発性メモリであることができる。
上記コンピューターデバイスの動作原理は、以下のモデル変換方法における各ステップの実行プロセスと一致し、当該コンピューターデバイスのプロセッサ100がメモリ200におけるコンピュータプログラムを実行すると、モデル変換方法における各ステップを実現し、具体的には、以下の説明を参照することができる。
もちろん、他の実施例において、当該コンピューターデバイスは、プロセッサと一つのメモリをさらに含み、当該コンピューターデバイスは、プロセッサが当該プロセッサに接続されたメモリを含むことができる。当該プロセッサは、図2〜4に示したプロセッサを使用することができ、その具体的な構造は、上記のプロセッサ100に関する説明を参照することができる。当該メモリは、複数の記憶ユニットを含むことができ、例えば、当該メモリは、第1記憶ユニット、第2記憶ユニット及び第3記憶ユニットを含むことができ、ここで、当該第1記憶ユニットは、コンピュータプログラムを保存するために使用されることができ、当該コンピュータプログラムは、本出願の実施例で提供されるモデル変換方法を実現するために使用される。当該第2記憶ユニットは、オリジナルネットワーク実行プロセスにおける関連データを保存するために使用されることができ、当該第3記憶ユニットは、オリジナルネットワークに対応するオフラインモデル及び当該オフラインモデルに対応するターゲットオフラインモデル及び予め設定されたモデル変換ルールなどを保存するために使用されることができる。さらに、当該メモリに含まれる記憶ユニットの数は、3より多いこともでき、ここでは具体的に限定しない。
図5に示したように、本出願の実施例は、上記のコンピューターデバイスに適用可能なモデル変換方法を提供する。当該モデル変換方法は、コンピューターデバイスが受信した初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致しない場合、当該コンピューターデバイスが当該初期オフラインモデルを実行することができるように、当該初期オフラインモデルを当該コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換する。具体的に、上記方法は、以下のステップを含むことができる。
S100において、初期オフラインモデル及びコンピューターデバイスのハードウェア属性情報を獲得する。
具体的に、上記の初期オフラインモデルとは、コンピューターデバイスが直接に獲得したオフラインモデルを指し、当該初期オフラインモデルは、第2メモリ300に保存されることができる。ここで、オフラインモデルは、オリジナルネットワークにおける計算ノードのネットワークの重み及び命令などの必要なネットワーク構造情報を含むことができ、命令は、当該計算ノードがどのような計算機能を実行するかを示すために使用され、具体的に当該オリジナルネットワークにおける各計算ノードの計算属性及び各計算ノードの間の接続関係などの情報を含むことができる。当該オリジナルネットワークは、ニューラルネットワークモデルなどのネットワークモデルであることができ、図9を参照することができる。従って、コンピューターデバイスは、当該オリジナルネットワークに対応するオフラインモデルを実行することによって、当該オリジナルネットワークの演算機能を実現することができ、同じオリジナルネットワークを再びコンパイルする必要がないため、当該ネットワークを実行するプロセッサの実行時間を短縮し、さらにプロセッサの処理速度及び効率を向上させる。選択的に、本出願の実施例における初期オフラインモデルは、オリジナルネットワークに従って直接に生成されたオフラインモデルであることができ、他のモデル属性情報を有するオフラインモデルの一回または複数回の変換後に獲得されたオフラインモデルであることもでき、ここでは具体的に限定しない。
S200において、初期オフラインモデルとコンピューターデバイスのハードウェア属性情報に従って、初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致するかどうかを判断する。
具体的に、当該初期オフラインモデルのモデル属性情報は、当該初期オフラインモデルのデータ構造及びデータタイプなどを含むことができる。例えば、初期オフラインモデルにおける各ネットワークの重み及び命令の配置方法、各ネットワークの重みのタイプ及び各命令のタイプなどである。上記のコンピューターデバイスのハードウェア属性情報は、当該コンピューターデバイスのモデル番号、当該コンピューターデバイスが処理できるデータタイプ(例えば、固定小数点と浮動小数点など)及びデータ構造などを含む。コンピューターデバイスは、上記初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報に従って、当該コンピューターデバイスが上記初期オフラインモデルの実行をサポートできるかどうかを判断して(即ち、当該コンピューターデバイスが上記の初期オフラインモデルを実行できるかどうか)、当該初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致するかどうかを決定する。
選択的に、当該コンピューターデバイスが上記初期オフラインモデルの実行をサポートできる場合、当該初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致すると判定する。当該コンピューターデバイスが上記初期オフラインモデルの実行をサポートしない場合、当該初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致しないと判定する。
例えば、当該コンピューターデバイスは、そのハードウェア属性情報に従って、当該コンピューターデバイスが処理できるデータタイプ及びデータ構造を決定することができ、当該初期オフラインモデルのモデル属性情報に従って、当該初期オフラインモデルのデータタイプ及びデータ構造を決定する。当該コンピューターデバイスが自身のハードウェア属性情報及び上記初期オフラインモデルのモデル属性情報に従って、当該コンピューターデバイスが上記初期オフラインモデルのデータタイプ及びデータ構造をサポートできると決定する場合、当該初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致すると判定することができる。当該コンピューターデバイスが自身のハードウェア属性情報及び上記の初期オフラインモデルのモデル属性情報に従って、当該コンピューターデバイスが上記初期オフラインモデルのデータタイプ及びデータ構造をサポートしないと決定する場合、当該初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致しないと判定することができる。
初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致しない場合、ステップS300を実行する:コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、初期オフラインモデルをコンピューターデバイスのハードウェア属性情報に一致するターゲットオフラインモデルに変換する。
具体的に、当該初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致しない場合、当該コンピューターデバイスが当該初期オフラインモデルを使用して対応する演算を実現するように、当該コンピューターデバイスが当該初期オフラインモデルの実行をサポートできないことを示し、このとき、当該初期オフラインモデルに変換処理を行う必要がある。即ち、当該初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致しない場合、コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、上記の初期オフラインモデルを当該コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換することができる。ここで、当該ターゲットオフラインモデルのモデル属性情報は当該コンピューターデバイスのハードウェア属性情報と一致し、当該コンピューターデバイスは、当該ターゲットオフラインモデルの実行をサポートすることができる。上記のように、当該ターゲットオフラインモデルは、オリジナルネットワークにおける各計算ノードのネットワークの重み及び命令などの必要なネットワーク構造情報も含む。
選択的に、上記の予め設定されたモデル変換ルールは、コンピューターデバイスの第1メモリまたは第2メモリに事前に保存されることができる。初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致しない場合、初期オフラインモデルをターゲットオフラインモデルに変換するために、コンピューターデバイスは、第1メモリまたは第2メモリから対応するモデル変換ルールを獲得することができる。選択的に、上記予め設定されたモデル変換ルールは、一つ以上であることができ、一つ以上のモデル変換ルールは、上記の初期オフラインモデル及びターゲットオフラインモデルと1対1に対応するように保存されることができる。例えば、上記の初期オフラインモデル、ターゲットオフラインモデル及び予め設定されたモデル変換ルールは、マッピングテーブルの方法によって、対応して保存されることができる。選択的に、初期オフラインモデルのモデル属性情報、ターゲットオフラインモデルのモデル属性情報及び使用可能なモデル変換ルールの三つの間は1対1に対応するように保存される。
初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致する場合、ステップS400を実行することができる:コンピューターデバイスは、受信した初期オフラインモデルを直接に実行することができ、即ち、コンピューターデバイスは、オリジナルネットワークの演算機能を実現するために、当該初期オフラインモデルに含まれるネットワークの重み及び命令に従って演算を実行することができる。具体的に、当該初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致する場合、当該コンピューターデバイスが当該初期オフラインモデルの実行をサポートできることを示し、このとき、当該初期オフラインモデルに変換処理を行う必要がなく、コンピューターデバイスは、当該初期オフラインモデルを実行することができる。本実施例において、当該初期オフラインモデルを直接に実行するとは、当該初期オフラインモデルを使用して当該オリジナルネットワークに対応する機械ラーニングアルゴリズム(例えば、ニューラルネットワークアルゴリズム)を実行し、フォワード演算を実行することによりアルゴリズムのターゲットアプリケーション(例えば、音声認識などの人工知能アプリケーション)を実現することを指す。
本出願の実施例におけるモデル変換方法では、コンピューターデバイスは一つの初期オフラインモデルを受信するだけでよく、予め設定されたモデル変換ルールと当該コンピューターデバイスのハードウェア属性情報に従って、当該初期オフラインモデルをターゲットオフラインモデルに変換することができ、複数の異なるモデルデータを獲得する必要なく、コンピューターデバイスのデータ入力量を大幅に削減し、過剰なデータ入力量に起因するコンピューターデバイスのストレージ容量を超えるなどの問題を回避し、コンピューターデバイスの正常実行を保証する。同時に、上記モデル変換方法は、当該コンピューターデバイスのデータ処理量を削減することができ、さらに処理効率を向上させることができ、消費電力を削減する。同時に、上記のモデル変換プロセスにおいて、人間の介入が必要なく、自動化の程度が高く、使用が便利である。
選択的に、図6に示したように、上記のステップS300は、以下のステップを含むことができる。
S310において、コンピューターデバイスのハードウェア属性情報に従って、ターゲットオフラインモデルのモデル属性情報を決定する。
具体的に、当該コンピューターデバイスは、自身のハードウェア属性情報に従って、当該コンピューターデバイスがサポートできるデータタイプ及びデータ構造などを決定することができるため、ターゲットオフラインモデルのデータタイプ及びデータ構造などのモデル属性情報を決定することができる。即ち、当該コンピューターデバイスは、そのハードウェア属性情報に従ってターゲットオフラインモデルのモデル属性情報を決定することができ、当該ターゲットオフラインモデルのモデル属性情報は、ターゲットオフラインモデルのデータ構造及びデータタイプなどの情報を含むことができる。
S320において、初期オフラインモデルのモデル属性情報とターゲットオフラインモデルのモデル属性情報に従って、複数の予め設定されたモデル変換ルールから一つのモデル変換ルールをターゲットモデル変換ルールとして選択する。
具体的に、初期オフラインモデル、ターゲットオフラインモデルと予め設定されたモデル変換ルールに1対1に対応するマッピング関係が存在するため、当該初期オフラインモデルのモデル属性情報とターゲットオフラインモデルのモデル属性情報に従って、ターゲットモデル変換ルールを決定することができる。ここで、当該モデル変換ルールは、データタイプの変換方法及びデータ構造の変換方法などを含むことができる。
S330において、初期オフラインモデルのモデル属性情報とターゲットモデル変換ルールに従って、初期オフラインモデルをターゲットオフラインモデルに変換する。
具体的に、コンピューターデバイスは、当該ターゲットモデル変換ルールによって提供される変換方法に従って、初期オフラインモデルをターゲットオフラインモデルに変換して、当該コンピューターデバイスが当該ターゲットオフラインモデルを実行して演算を実行できるようにする。
選択的に、初期オフラインモデルとターゲットオフラインモデルとの間に複数の使用可能なモデル変換ルールが存在する場合、コンピューターデバイスは、予めに設定されたアルゴリズムに従ってターゲットオフラインモデルを自動的に選択することができる。具体的に、上記のステップS320は、以下のステップをさらに含む。
初期オフラインモデルのモデル属性情報とターゲットオフラインモデルのモデル属性情報に従って、複数の予め設定されたモデル変換ルールから一つ以上の使用可能なモデル変換ルールを選択する。
一つ以上の使用可能なモデル変換ルールに優先順位を付け、優先順位の高い使用可能なモデル変換ルールを前記ターゲット変換ルールとして使用する。
具体的に、上記の使用可能なモデル変換ルールとは、初期オフラインモデルをターゲットオフラインモデルに変換する変換ルールを指す。一つ以上の使用可能なモデル変換ルールが存在する場合、初期オフラインモデルをターゲットオフラインモデルに変換する方法には、多数の異なる方法があることを示す。上記の優先順位を付ける方法は、予め設定されることができ、ユーザーによって定義されることもできる。
選択的に、コンピューターデバイスは、各使用可能なモデル変換ルールに対応するプロセスパラメーターを獲得することができ、各使用可能なモデル変換ルールに対応するプロセスパラメーターに従って、一つ以上の使用可能なモデル変換ルールに優先順位を付ける。ここで、当該プロセスパラメーターは、当該使用可能なモデル変換ルールを使用して、初期オフラインモデルをターゲットオフラインモデルに変換する場合に関与するコンピューターデバイスのパフォーマンスパラメータであることができる。選択的に、当該プロセスパラメーターは、変換速度、消費電力、メモリ使用率及びディスクI/O占有率中の一つまたは複数を含むことができる。
例えば、コンピューターデバイスは、初期オフラインモデルをターゲットオフラインモデルに変換するプロセスにおける変換速度、変換消費電力、メモリ使用率及びディスクI/O占有率などの一つまたは複数プロセスパラメーターの組合せに従って、上記の各使用可能なモデル変換ルールに対してスコアリングし(例えば、スコア値を取得するために、各参照要因に加重計算を行う)、最高スコアの使用可能なモデル変換ルールを最高優先順位の使用可能なモデル変換ルールとして使用することができる。即ち、最高スコアの使用可能なモデル変換ルールを当該ターゲット変換ルールとして使用することができる。その後、上記ステップS330を実行することができ、初期オフラインモデルのモデル属性情報とターゲットモデル変換ルールに従って、初期オフラインモデルをターゲットオフラインモデルに変換する。このようにして、コンピューターデバイスの処理速度及び効率を向上させるために、モデル変換プロセス中のデバイスのパフォーマンス要因を合わせて、より優れたモデル変換ルールを選択することができる。
選択的に、図3に示したように、上記方法は、以下のをステップをさらに含む。
S500において、ターゲットオフラインモデルをコンピューターデバイスの第1メモリまたは第2メモリに保存する。
具体的に、コンピューターデバイスは、獲得されたターゲットオフラインモデルを当該コンピューターデバイスのローカルメモリ(例えば、第1メモリ)に保存することができる。選択的に、コンピューターデバイスは、さらに獲得されたターゲットオフラインモデルを当該コンピューターデバイスに接続された外部メモリ(例えば、第2メモリ)に保存することができ、当該外部メモリは、クラウドストレージまたは他のメモリなどであることができる。このようにして、当該コンピューターデバイスが当該ターゲットオフラインモデルを繰り返して使用する必要がある場合、上記の変換操作を繰り返して実行する必要なく、当該ターゲットオフラインモデルを直接に読み取ることで、対応する演算を実現することができる。
選択的に、コンピューターデバイスが上記のターゲットオフラインモデルを実行するプロセスは、以下のステップを含むことができる。
オリジナルネットワークを実行するために、ターゲットオフラインモデルを獲得し、ターゲットオフラインモデルを実行する。ここで、ターゲットオフラインモデルは、オリジナルネットワークにおける各オフラインノードに対応するネットワークの重み、命令及び各オフラインノードとオリジナルネットワーク中の他の計算ノードとの間のインターフェースデータなどの必要なネットワーク構造情報を含む。
具体的に、コンピューターデバイスが当該ターゲットオフラインモデルを使用して演算を実現する必要がある場合、第1メモリまたは第2メモリから当該ターゲットオフラインモデルを直接に獲得することができ、ターゲットオフラインモデル中のネットワークの重み及び命令などに従って演算を行って、オリジナルネットワークの演算機能を実現する。このようにして、当該コンピューターデバイスが当該ターゲットオフラインモデルを繰り返して使用する必要がある場合、上記の変換操作を繰り返す必要なく、当該ターゲットオフラインモデルを直接に読み取るだけで、対応する演算を実現することができる。
本実施例において、当該ターゲットオフラインモデルを直接に実行するとは、当該初期ターゲットオフラインモデルを使用して当該オリジナルネットワークに対応する機械ラーニングアルゴリズム(例えば、ニューラルネットワークアルゴリズム)を実行し、フォワード演算を実行することによりアルゴリズムのターゲットアプリケーション(例えば、音声認識などの人工知能アプリケーション)を実現することを指す。
選択的に、当該コンピューターデバイスには、アプリケーションソフトウェア(Application)がインストールされ、コンピューターデバイス上のアプリケーションソフトウェアを介して、初期オフラインモデルを獲得することができ、当該アプリケーションソフトウェア(Application)は、メモリ200または外部メモリから初期オフラインモデルを読み取るためのインターフェイスを提供することができるため、当該アプリケーションソフトウェアを介して当該初期オフラインモデルを獲得することができる。選択的に、当該アプリケーションソフトウェアは、コンピューターデバイスのハードウェア属性情報を読み取るためのインターフェイスをさらに提供するため、当該アプリケーションソフトウェアを介して当該コンピューターデバイスのハードウェア属性情報を獲得することができる。選択的に、当該アプリケーションソフトウェアは、予め設定されたモデルルールを読み取るためのインターフェイスをさらに提供することができるため、当該アプリケーションソフトウェアを介して予め設定されたモデル変換ルールを獲得することができる。
もちろん、他の実施例において、当該コンピューターデバイスは、入力/出力インターフェイス(例えば、I/Oインターフェイス)などをさらに提供することができ、当該入力/出力インターフェイスは、初期オフラインモデルの獲得、またはターゲットオフラインモデルの出力のために使用される。当該コンピューターデバイスのハードウェア属性情報は、当該コンピューターデバイスに事前に保存されることができる。
一つの実施例において、図7に示したように、本出願の実施例は、オリジナルネットワークモデルに従って、オフラインモデルを生成する方法をさらに提供し、獲得されたオリジナルネットワークの関連データに従って、当該オリジナルネットワークのオフラインモデルを生成及び保存するために使用されるため、プロセッサが当該オリジナルネットワークを再び実行する場合、同じオリジナルネットワークを再びコンパイルする必要がなく、当該オリジナルネットワークに対応するオフラインモデルを直接に実行することができるため、当該ネットワークを実行するプロセッサの実行時間を短縮し、さらにプロセッサの処理速度及び効率を向上させる。ここで、オリジナルネットワークは、図9に示したようなネットワークのようなニューラルネットワークまたは非ニューラルネットワークなどのネットワークモデルであることができる。具体的に、上記方法は、以下のステップを含む。
S010において、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得する。
具体的に、コンピューターデバイスのプロセッサは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータを獲得することができ、当該オリジナルネットワークのモデルデータセット及びモデル構造パラメータを介して、当該オリジナルネットワークのネットワーク構造図を獲得することができる。ここで、モデルデータセットは、オリジナルネットワークにおける各計算ノードに対応するネットワークの重みなどのデータを含み、図9に示したニューラルネットワークにおけるW1〜W6は、計算ノードのネットワークの重みを表すために使用される。モデル構造パラメータは、オリジナルネットワークにおける複数の各計算ノードの接続関係及び各計算ノードの計算属性を含み、ここで、計算ノードの間の接続関係は、計算ノードの間にデータ伝達があるかどうかを表すために使用され、例えば、複数の各計算ノードの間にデータフローの伝達がある場合、複数の計算ノードの間に接続関係があると説明することができる。さらに、計算ノードの接続関係は、入力関係及び出力関係などを含むことができる。図9に示したように、計算ノードF1が計算ノードF4及びF5の入力として出力する場合、計算ノードF1と計算ノードF4との間に接続関係があり、計算ノードF1と計算ノードF4との間に接続関係があると説明できる。別の例として、計算ノードF1と計算ノードF2との間にデータ伝達がない場合、計算ノードF1と計算ノードF2との間に接続関係が存在しないと説明できる。
各計算ノードの計算属性は、対応する計算ノードの計算タイプ及び計算パラメータを含むことができ、ここで、計算ノードの計算タイプとは、当該計算ノードがある計算を完了することに使用されることを指し、例えば、各計算ノードの計算タイプは、加算、減算、及び畳み込み算など含むことができ、対応的に、当該計算ノードは、加算を実現するための計算ノード、減算を実現するための各計算ノードまたは畳み込み算を実現するための計算ノードなどであることができる。計算ノードの計算パラメータは、当該計算ノードに対応する計算タイプを完了する必要なパラメータであることができる。例えば、計算ノードの計算タイプは、加算を実現するための計算ノードであることができ、対応的に、当該計算ノードの計算パラメータは、加算における加数であることができ、当該加算における被加数は、入力データとして獲得モジュールを介して獲得することができ、または、当該加算における被加数は、当該計算ノードの前の各計算ノードの出力データなどであることができる。
S020において、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従ってオリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得する。
具体的に、コンピューターデバイスのプロセッサは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って当該オリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得することができる。さらに、プロセッサは、当該オリジナルネットワークの入力データをさらに獲得することができ、オリジナルネットワークの入力データ、ネットワークモデルデータセット及びモデル構造パラメータに従ってオリジナルネットワークを実行して、当該オリジナルネットワークにおける各計算ノードに対応する命令を獲得することができる。さらに、上記当該オリジナルネットワークを実行して各計算ノードの命令を獲得する過程は、実際にコンパイルの過程であり、当該コンパイル過程は、コンピュータシステムのプロセッサまたは仮想デバイスを介して実現することができる。即ち、コンピュータシステムのプロセッサまたは仮想デバイスは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従ってオリジナルネットワークを実行する。ここで、仮想デバイスとは、メモリのメモリ空間でプロセッサ実行空間のセクションを仮想することを指す。
明らかに、本実施例におけるオリジナルネットワークの実行とは、プロセッサが人工ニューラルネットワークモデルデータを使用して、ある機械ラーニングアルゴリズム(例えば、ニューラルネットワークアルゴリズム)を実行し、フォワード演算を実行することにより、アルゴリズムのターゲットアプリケーション(例えば、音声認識などの人工知能アプリケーション)を実現することを指す。
S030において、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、オリジナルネットワークに対応するオフラインモデルを生成し、オリジナルネットワークに対応するオフラインモデルを不揮発性メモリ(データベース)に保存する。
具体的に、当該プロセッサの制御モジュールは、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令に従って、当該オリジナルネットワークに対応するオフラインモデルを生成することができ、例えば、当該プロセッサの制御モジュールは、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を不揮発性第2メモリに保存して、オフラインモデルの生成及び保存を実現することができる。ここで、オリジナルネットワークの各計算ノードについて、当該計算ノードのネットワークの重みと命令は、1対1に対応するように保存される。このようにして、当該オリジナルネットワークを再び実行する場合、当該オリジナルネットワークの各計算ノードに対してオンラインでコンパイルして命令を獲得することなく、不揮発性メモリから当該オリジナルネットワークに対応するオフラインモデルを直接に獲得することができ、それに対応するオフラインモデルに従ってオリジナルネットワークを実行し、システムの実行速度及び効率を向上させる。
明らかに、本実施例において、当該オリジナルネットワークに対応するオフラインモデルを直接に実行するとは、オフラインモデルを使用して当該オリジナルネットワークに対応する機械ラーニングアルゴリズム(例えば、ニューラルネットワークアルゴリズム)実行し、フォワード演算を実行することによりアルゴリズムのターゲットアプリケーション(例えば、音声認識などの人工知能アプリケーション)を実現することを指す。
選択的に、図8に示したように、前記ステップS200は、以下のステップを含むことができる。
S021において、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得する。
具体的に、プロセッサは、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得することができ、さらに、プロセッサの演算モジュールは、オリジナルネットワークにおける各計算ノードの接続関係に従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得することができる。例えば、図9に示したように、計算ノードF4の入力データは、計算ノードF1の出力データ及び計算ノードF2の出力データであり、計算ノードF6の入力データは、計算ノードF4の出力データ及び計算ノードF5の出力データである。従って、図9に示したニューラルネットワークにおける各計算ノードの実行順序は、F1−F2−F3−F4−F5−F6またはF1−F3−F2−F5−F4−F6などであることができる。もちろん、計算ノードF1、F2及びF3は、並列に実行することができ、計算ノードF4及びF5も並列に実行することができ、ここでは単に例として説明し、実行順序は具体的に限定されない。
S022において、オリジナルネットワークにおける各計算ノードの実行順序に従ってオリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令をそれぞれ獲得する。
具体的に、プロセッサは、オリジナルネットワークにおける各計算ノードの実行順序に従って当該オリジナルネットワークを実行して、オリジナルネットワークにおける各計算ノードに対応する命令を獲得することができ、即ち、プロセッサは、オリジナルネットワークのモデルデータセットなどのデータをコンパイルして各計算ノードに対応する命令を獲得することができ、各計算ノードに対応する命令を介して当該各計算ノードがどのようなコンピューティング機能を実現するかを知ることができ、即ち、当該各計算ノードの計算タイプ及び計算パラメータなどの計算属性を獲得することができる。
さらに、図8に示したように、前記ステップS300はさらに以下のステップを含む。
S031において、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って、オリジナルネットワークのメモリ割り当て方法を獲得する。
具体的に、プロセッサは、オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って、オリジナルネットワークのメモリ割り当て方法を獲得することができ、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークにおける各計算ノードの実行順序を獲得することができ、オリジナルネットワークにおける各計算ノードの実行順序に従って、現在のネットワークのメモリ割り当て方法を決定する。例えば、各計算ノードの実行順序に従って、各計算ノードの実行過程中の関連データは、一つのスタックに保存される。ここで、メモリ割り当て方法とは、オリジナルネットワークにおける各計算ノードに関連するデータ(入力データ、出力データ、ネットワークの重みデータ及び中間結果データなどを含む)がメモリ空間(例えば、第1メモリ)での保存位置を決定することを指す。例えば、データテーブルを使用して各計算ノードに関連するデータ(入力データ、出力データ、ネットワークの重みデータ及び中間結果データなど)とメモリ空間のマッピング関係を保存することができる。
S032において、オリジナルネットワークのメモリ割り当て方法に従って、オリジナルネットワークの実行過程中の関連データを第1メモリに保存する。ここで、オリジナルネットワークの実行過程中の関連データは、オリジナルネットワークの各計算ノードに対応するネットワークの重み、命令、入力データ、中間計算結果及び出力データなどを含む。例えば、図9に示したように、X1とX2は、当該ニューラルネットワークの入力データを表し、Yは、当該ニューラルネットワークの出力データを表し、プロセッサは、当該ニューラルネットワークの出力データをロボットまたは異なるデジタルインターフェースを制御する制御命令に転換することができる。W1〜W6は、計算ノードF1、F2及びF3に対応するネットワークの重みを表すために使用され、計算ノードF1〜F5の出力データは、中間計算結果として使用することができる。プロセッサは、決定されたメモリ割り当て方法に従って、オリジナルネットワークの実行過程中の関連データを内部メモリまたはキャッシュなどの揮発性メモリのような第1メモリに保存することができ、具体的な保存方法は、図10における左半部の保存空間を参照することができる。
S033において、第1メモリからオリジナルネットワークにおける各計算ノードに対応するネットワークの重み及び命令を獲得し、オリジナルネットワークにおける各計算ノードに対応するネットワークの重み及び命令を第2メモリに保存し、オフラインモデルを生成する。ここで、第2メモリは、外部メモリなどの不揮発性メモリであることができる。当該オフラインモデルの生成過程は、具体的に図10を参照することができ、図10における右半部の保存空間に保存されたのは、オリジナルネットワークの対応するオフラインモデルである。
図9及び図10に示したように、以下、図面に合わせて、上記オフラインモデルの生成過程を説明する。
まず、図9に示したように、プロセッサは、当該オリジナルネットワークのモデルデータセット、モデル構造パラメータ及び入力データを獲得することができるため、当該オリジナルネットワークのモデルデータセット及びモデル構造パラメータに従って当該オリジナルネットワークのネットワーク構造図を獲得することができる。
次に、プロセッサは、オリジナルネットワークのモデル構造パラメータに従って、オリジナルネットワークの各計算ノードの接続関係を獲得することができ、各計算ノードの接続関係に従ってオリジナルネットワークにおける各計算ノードの実行順序、及びオリジナルネットワークの実行過程中のメモリ割り当て方法を獲得するため、オリジナルネットワークの実行過程中の関連データの保存位置を獲得することができる。図10の左半部の保存空間に示したように、オリジナルネットワークの実行過程中の関連データは、各計算ノード実行順序に従って一つのスタックに保存されることができる。
最後に、プロセッサは、オリジナルネットワークの各計算ノードに対応するネットワークの重み及び命令を不揮発性の第2メモリに保存し、オフラインモデルを生成することができ、当該オフラインモデルの保存方法は、図8における右半部の保存空間を参照することができる。また、当該オフラインモデルは、当該オリジナルネットワークを実行するに必要なネットワークの重み及び命令などのデータのみを含み、オリジナルネットワークの実行過程中の入力データ、出力データまたは中間計算結果などを保存する必要がないため、第2メモリにおける保存空間の消費を減少することができる。
さらなる改善として、オフラインモデルには、ノードインターフェースデータがさらに含まれ、ノードインターフェースデータは、オリジナルネットワークの各計算ノードの接続関係を表すために使用される。具体的に、ノードインターフェースデータは、各計算ノードの入力データソース及び出力データソースを含むことができる。例えば、図9に示したように、ノードインターフェースデータは、計算ノードF1、F2及びF3を開始各計算ノードとして含むことができ、それぞれ予め設定された入力データを入力し、計算ノードF1の出力データは、計算ノードF4及び計算ノードF5の入力データなどである。このようにして、当該オリジナルネットワークを再び実行する場合、オリジナルネットワークの開始各計算ノードと入力データのみを獲得し、その後、当該オリジナルネットワークに対応するオフラインモデルに従って当該オリジナルネットワークを実行することができる。
図5〜8のフロチャートにおける各ステップは矢印で示されるように順次的に表示されるが、これらのステップは必ずしも矢印で示される順序で実行されるとは限らないことを理解されたい。本明細書で明示的に説明される場合を除き、これらのステップの実行は厳密に制限されておらず、これらのステップは他の順序で実行されてもよい。さらに、図5〜8における少なくとも一部のステップは、複数のサブステップまたは複数の段階を含むことができ、これらのサブステップまたは段階は、必ずしも同時に実行される必要なく、異なる時間に実行されることができ、これらのサブステップまたは段階の実行順序も必ずしも順次に実行される必要なく、他のステップまたは他のステップのサブステップまたは段階の少なくとも一部と交代にまたは交互に実行されることができる。
当業者は、上記実施例方法における全部または一部のプロセスの実現は、コンピュータプログラムに介して関連するハードウェアを命令して完了し、前記コンピュータプログラムは、不揮発性コンピュータ可読記憶媒体に保存されることができ、当該プログラムは実行時に、上記各方法の実施例のプロセスを含むことができることを理解できる。ここで、本出願で提供される各実施例に使用されるメモリ、ストレージ、データベースまたは他の媒体への参照は、すべて不揮発性及び/または揮発性メモリを含むことができる。不揮発性メモリは、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なプログラム可能なROM(EEPROM)またはフラッシュメモリを含むことができる。揮発性メモリは、ランダムアクセスメモリ(RAM)または外部高速キャッシュメモリを含むことができる。制限ではない説明として、RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDRSDRAM)、拡張SDRAM(ESDRAM)、同期リンク(Synchlink)、DRAM(SLDRAM)、ラムバス(Rambus)ダイレクトRAM(RDRAM)、ダイレクトラムバスダイナミックRAM(DRDRAM)、ラムバスダイナミックRAM(RDRAM)などのようなさまざまな形式で獲得することができる。
本出願の実施例は、獲得モジュール、判断モジュール及び変換モジュールを含むモデル変換装置をさらに提供する。ここで、獲得モジュールは、初期オフラインモデルとコンピューターデバイスのハードウェア属性情報を獲得するために使用され、判断モジュールは、初期オフラインモデルとコンピューターデバイスのハードウェア属性情報に従って、初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致するかどうかを判断するように使用され、変換モジュールは、初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致しない場合、コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、初期オフラインモデルを前記コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換するように使用される。
選択的に、当該モデル変換装置は、当該コンピューターデバイスにインストールされたアプリケーションソフトウェア(Application)であることができる。当該アプリケーションソフトウェア(Application)は、メモリ200または外部メモリから初期オフラインモデルを読み取るためのインターフェイスを提供することができるため、当該アプリケーションソフトウェアを介して当該初期オフラインモデルを獲得することができる。選択的に、当該アプリケーションソフトウェアは、コンピューターデバイスのハードウェア属性情報を読み取るためのインターフェイスをさらに提供するため、当該アプリケーションソフトウェアを介して当該コンピューターデバイスのハードウェア属性情報を獲得することができる。選択的に、当該アプリケーションソフトウェアは、予め設定されたモデルルールを読み取るためのインターフェイスをさらに提供することができるため、当該アプリケーションソフトウェアを介して予め設定されたモデル変換ルールを獲得することができる。さらに、当該アプリケーションソフトウェアは、初期オフラインモデルとコンピューターデバイスのハードウェア属性情報及び予め設定されたモデル変換ルールに従って、当該初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致しない場合、当該初期オフラインモデルを当該コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換し、当該ターゲットオフラインモデルを第1メモリまたは第2メモリに保存する。
モデル変換装置に関する具体的な限定は、上記のモデル変換方法に対する限定を参照することができ、ここでは繰り返して説明しない。上記モデル変換装置中の各モジュールは、ソフトウェア、ハードウェア、及びそれらの組み合わせによって全体的または部分的に実現されることができる。プロセッサが上記のモジュールに対応する操作を実行するために呼び出されるように、上記各モジュールは、コンピューター装置のプロセッサに組み込まれるか、コンピューター装置のプロセッサーから独立していてもよく、ソフトウェア形式でコンピューター装置のメモリに保存されてもよい。
なお、本発明の一実施例は、コンピュータプログラムが保存されたコンピュータ可読記憶媒体をさらに提供し、前記コンピュータプログラムは、プロセッサによって実行される場合、請求項に記載のいずれかの一つの実施例の方法のステップを実現する。選択的に、当該コンピュータ可読記憶媒体は、不揮発性及び/または揮発性メモリを含むことができる。不揮発性メモリは、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なプログラム可能なROM(EEPROM)またはフラッシュメモリを含むことができる。揮発性メモリは、ランダムアクセスメモリ(RAM)または外部高速キャッシュメモリを含むことができる。制限ではない説明として、RAMは、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDRSDRAM)、拡張SDRAM(ESDRAM)、同期リンク(Synchlink)、DRAM(SLDRAM)、ラムバス(Rambus)ダイレクトRAM(RDRAM)、ダイレクトラムバスダイナミックRAM(DRDRAM)、ラムバスダイナミックRAM(RDRAM)などのようなさまざまな形式で獲得することができる。
具体的に、上記コンピュータプログラムがプロセッサによって実行される場合、以下のステップを実現する。
S100において、初期オフラインモデルとコンピューターデバイスのハードウェア属性情報を獲得する。
具体的に、上記の初期オフラインモデルとは、コンピューターデバイスが直接に獲得したオフラインモデルを指し、当該初期オフラインモデルは、第2メモリ300に保存されることができる。ここで、オフラインモデルは、オリジナルネットワークにおける計算ノードのネットワークの重み及び命令などの必要なネットワーク構造情報を含むことができ、ここで、命令は、当該計算ノードがどのような計算機能を実行するかを示すために使用され、具体的に当該オリジナルネットワークにおける各計算ノードの計算属性及び各計算ノードの間の接続関係などの情報を含むことができる。選択的に、本出願の実施例における初期オフラインモデルは、オリジナルネットワークに従って直接に生成されたオフラインモデルであることができ、他のモデル属性情報を有するオフラインモデルの一回または複数回の変換後に獲得されたオフラインモデルであることもでき、ここでは具体的に限定しない。
S200において、初期オフラインモデルとコンピューターデバイスのハードウェア属性情報に従って、初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致するかどうかを判断する。
具体的に、当該初期オフラインモデルのモデル属性情報は、当該初期オフラインモデルのデータ構造及びデータタイプなどを含むことができる。例えば、初期オフラインモデルにおける各ネットワークの重み及び命令の配置方法、各ネットワークの重みのタイプ及び各命令のタイプなどである。上記のコンピューターデバイスのハードウェア属性情報は、当該コンピューターデバイスのモデル番号、当該コンピューターデバイスが処理できるデータタイプ(例えば、固定小数点と浮動小数点など)及びデータ構造などを含む。
例えば、当該コンピューターデバイスは、そのハードウェア属性情報に従って、当該コンピューターデバイスが処理できるデータタイプ及びデータ構造を決定することができ、当該初期オフラインモデルのモデル属性情報に従って、当該初期オフラインモデルのデータタイプ及びデータ構造を決定する。当該コンピューターデバイスが自身のハードウェア属性情報及び上記初期オフラインモデルのモデル属性情報に従って、当該コンピューターデバイスが上記初期オフラインモデルのデータタイプ及びデータ構造をサポートできると決定する場合、当該初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致すると判定することができる。当該コンピューターデバイスが自身のハードウェア属性情報及び上記の初期オフラインモデルのモデル属性情報に従って、当該コンピューターデバイスが上記初期オフラインモデルのデータタイプ及びデータ構造をサポートしないと決定する場合、当該初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致しないと判定することができる。
初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致しない場合、ステップS300を実行する:コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、初期オフラインモデルをコンピューターデバイスのハードウェア属性情報に一致するターゲットオフラインモデルに変換する。
具体的に、当該初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致しない場合、当該コンピューターデバイスが当該初期オフラインモデルを使用して対応する演算を実現するように、当該コンピューターデバイスが当該初期オフラインモデルの実行をサポートできないことを示し、このとき、当該初期オフラインモデルに変換処理を行う必要がある。即ち、当該初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致しない場合、コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、上記の初期オフラインモデルを当該コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換することができる。ここで、当該ターゲットオフラインモデルのモデル属性情報は当該コンピューターデバイスのハードウェア属性情報と一致し、当該コンピューターデバイスは、当該ターゲットオフラインモデルの実行をサポートすることができる。上記のように、当該ターゲットオフラインモデルは、オリジナルネットワークにおける各計算ノードのネットワークの重み及び命令などの必要なネットワーク構造情報も含む。
初期オフラインモデルのモデル属性情報とコンピューターデバイスのハードウェア属性情報が一致する場合、ステップS400を実行することができる:コンピューターデバイスは、受信した初期オフラインモデルを直接に実行することができ、即ち、コンピューターデバイスは、オリジナルネットワークの演算機能を実現するために、当該初期オフラインモデルに含まれるネットワークの重み及び命令に従って演算を実行することができる。具体的に、当該初期オフラインモデルのモデル属性情報と当該コンピューターデバイスのハードウェア属性情報が一致する場合、当該コンピューターデバイスが当該初期オフラインモデルの実行をサポートできることを示し、このとき、当該初期オフラインモデルに変換処理を行う必要がなく、コンピューターデバイスは、当該初期オフラインモデルを実行することができる。
プロセッサによって上記コンピュータプログラムを実行するプロセスは、上記実施例のモデル変換方法の実行プロセスと一致することは明らかであるはずであり、具体的には、上記の説明を参照することができ、ここでは繰り返して説明しない。
上記各実施例の同一または類似の部分は相互に参照され、いくつかの実施例で詳細に説明されていない部分は他の実施例の同一または類似の内容を参照することができることが理解される。
本出願の説明において、「第1」、「第2」などの用語は説明目的のみに使用され、相対的な重要性を示すまたは暗示するものとして解釈されるべきではないことに留意されたい。なお、本出願の説明において、「複数」の意味は、特に明記しない限り、少なくとも二つを意味する。
フローチャートまたはここで他の方法で説明した任意のプロセスまたは方法は、特定の論理機能またはプロセスのステップを実現するための一つまたはさらに複数の実行可能な命令を含むコードのモジュール、セグメントまたは部分を表すと理解され得る。本出願の選択的な実施例の範囲には、追加の実現が含まれ、ここで、機能は、示されたまたは議論された順序ではなく、関与される機能に応じた実質的に同時の方法または反対の順序で実行されることができ、これは、本出願の実施例が属する技術分野の当業者によって理解されるべきである。
本出願の各部分は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実現されることを理解されたい。上述実施形態において、複数のステップまたは方法は、メモリに保存され、且つ適切な命令実行システムによって実行されるソフトウェアまたはファームウェアで実現されることができる。例えば、別の実施形態のようにハードウェアで実現する場合、当技術分野で周知の以下の技術のいずれか一つまたは組み合わせによって実現することができる:データ信号に論理機能を実装する論理ゲートを備えた個別論理回路、適切な組み合わせ論理ゲートを備えた専用集積回路、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)など。
当業者は、上記実施例を実現する方法を実現するステップのすべてまたは一部は、関連するハードウェアに命令するプログラムによって完了でき、前記プログラムは、コンピュータ可読記憶媒体に保存されることができ、当該プログラムは実行される場合に、方法実施例のステップの一つまたはその組み合わせを含むことを理解できる。
なお、本出願の各実施例における各機能ユニットは、一つの処理モジュールに統合されてもよく、各ユニットは物理的に別々に存在してもよく、または二つまたはそれ以上のユニットが一つのモジュールに統合されてもよい。上記の統合されたモジュールは、ハードウェアの形態で実現されてもよく、ソフトウェア機能モジュールの形態で実現されてもよい。前記統合されたモジュールは、ソフトウェア機能モジュールの形態で実現され、スタンドアロン製品として販売または使用される場合、コンピュータ可読記憶媒体に保存されることもできる。
上述の記憶媒体は、読み取り専用メモリ、磁気ディスク、または光ディスクなどであることができる。
本明細書の説明において、「一実施例」、「いくつかの実施例」、「例示」、「具体的な実施例」、または「いくつかの実施例」などの説明は、当該実施例または例示に結合して説明される具体的な特徴、構造、材料または特性が、本出願の少なくとも一つの実施例または例示に含まれることを意味する。本明細書において、上記用語の概略的な表現は、必ずしも同じ実施例または例示を意味するものではない。さらに、説明される具体的な特徴、構造、材料、または特性は、任意の一つまたは複数の実施例または例示において適切な方法で結合されることができる。
以上で本出願の実施例を示して説明したが、上述の実施例は例示であり、本出願の範囲を限定するものとして解釈されるべきではなく、当業者は、本出願の範囲内で、上記実施例の変化、修正、変更、及び変形を行うことができる。

Claims (13)

  1. モデル変換方法であって、
    初期オフラインモデルとコンピューターデバイスのハードウェア属性情報を獲得するステップと、
    前記初期オフラインモデルと前記コンピューターデバイスのハードウェア属性情報に従って、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致するかどうかを判断するステップと、及び
    前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致しない場合、前記コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、前記初期オフラインモデルを前記コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換するステップとを含む、前記モデル変換方法。
  2. 前記コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、前記初期オフラインモデルを前記コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換するステップは、
    前記コンピューターデバイスのハードウェア属性情報に従って、前記ターゲットオフラインモデルのモデル属性情報を決定するステップと、
    前記初期オフラインモデルのモデル属性情報と前記ターゲットオフラインモデルのモデル属性情報に従って、複数の前記予め設定されたモデル変換ルールから一つの前記モデル変換ルールをターゲットモデル変換ルールとして選択するステップと、及び
    前記初期オフラインモデルのモデル属性情報と前記ターゲットモデル変換ルールに従って、前記初期オフラインモデルを前記ターゲットオフラインモデルに変換するステップとを含むことを特徴とする
    請求項1に記載のモデル変換方法。
  3. 前記初期オフラインモデルのモデル属性情報と前記ターゲットオフラインモデルのモデル属性情報に従って、複数の前記予め設定されたモデル変換ルールから一つの前記モデル変換ルールをターゲットモデル変換ルールとして選択するステップは、
    前記初期オフラインモデルのモデル属性情報と前記ターゲットオフラインモデルのモデル属性情報に従って、複数の前記予め設定されたモデル変換ルールから一つ以上の使用可能なモデル変換ルールを選択するステップと、及び
    前記一つ以上の使用可能なモデル変換ルールに優先順位を付け、優先順位の高い使用可能なモデル変換ルールを前記ターゲット変換ルールとして使用するステップとを含むことを特徴とする
    請求項2に記載のモデル変換方法。
  4. 前記一つ以上の使用可能なモデル変換ルールに優先順位を付けるステップは、
    各前記使用可能なモデル変換ルールを使用して、前記初期オフラインモデルを前記ターゲットオフラインモデルに変換するためのプロセスパラメーターをそれぞれ獲得し、ここで、前記プロセスパラメーターは、変換速度、消費電力、メモリ使用率及びディスクI/O占有率中の一つまたは複数を含むステップと、及び
    各前記使用可能なモデル変換ルールのプロセスパラメーターに従って、一つ以上の前記使用可能なモデル変換ルールに優先順位を付けるステップとを含むことを特徴とする
    請求項3に記載のモデル変換方法。
  5. 前記初期オフラインモデルのモデル属性情報、前記ターゲットオフラインモデルのモデル属性情報及び前記使用可能なモデル変換ルールの三つの間は1対1に対応するように保存されることを特徴とする
    請求項3に記載のモデル変換方法。
  6. 前記初期オフラインモデルと前記コンピューターデバイスのハードウェア属性情報に従って、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致するかどうかを判断するステップは、
    前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報に従って、前記コンピューターデバイスが前記初期オフラインモデルの実行をサポートできること決定する場合、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致すると判定するステップと、
    前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報に従って、前記コンピューターデバイスが前記初期オフラインモデルの実行をサポートしないと決定する場合、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致しないと判定するステップとを含むことを特徴とする
    請求項1〜5のいずれか一項に記載のモデル変換方法。
  7. 前記初期オフラインモデルを獲得するステップは、
    前記コンピューターデバイス上のアプリケーションソフトウェアを介して前記初期オフラインモデルと前記コンピューターデバイスのハードウェア属性情報を獲得するステップを含むことを特徴とする
    請求項1〜5のいずれか一項に記載のモデル変換方法。
  8. 前記ターゲットオフラインモデルを前記コンピューターデバイスの第1メモリまたは第2メモリに保存するステップをさらに含むことを特徴とする
    請求項1〜5のいずれか一項に記載のモデル変換方法。
  9. 前記ターゲットオフラインモデルを獲得し、前記ターゲットオフラインモデルを実行し、ここで、前記ターゲットオフラインモデルは、オリジナルネットワークにおける各オフラインノードに対応するネットワークの重み、命令及び各オフラインノードと前記オリジナルネットワーク中の他の計算ノードとの間のインターフェースデータを含むステップをさらに含むことを特徴とする
    請求項8に記載のモデル変換方法。
  10. モデル変換装置であって、
    初期オフラインモデルとコンピューターデバイスのハードウェア属性情報を獲得するために使用される獲得モジュールと、
    前記初期オフラインモデルと前記コンピューターデバイスのハードウェア属性情報に従って、前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致するかどうかを判断するように使用される判断モジュールと、及び
    前記初期オフラインモデルのモデル属性情報と前記コンピューターデバイスのハードウェア属性情報が一致しない場合、前記コンピューターデバイスのハードウェア属性情報と予め設定されたモデル変換ルールに従って、前記初期オフラインモデルを前記コンピューターデバイスのハードウェア属性情報と一致するターゲットオフラインモデルに変換するように使用される変換モジュールとを含む、前記モデル変換装置。
  11. コンピュータプログラムが保存されるメモリとプロセッサを含むコンピューターデバイスであって、前記プロセッサが前記コンピュータプログラムを実行する場合、請求項1〜7のいずれか一項に記載の方法を実現する、前記コンピューターデバイス。
  12. 前記プロセッサは、演算ユニットとコントローラーユニットを含み、前記演算ユニットは、メイン処理回路と複数のスレーブ処理回路を含み、
    前記コントローラーユニットは、データ、機械学習モデル及び計算命令を獲得するために使用され、
    前記コントローラーユニットは、さらに前記計算命令を解析して複数の演算命令を獲得し、前記複数の演算命令及び前記データを前記メイン処理回路に送信するように使用され、
    前記メイン処理回路は、前記データ及び前記メイン処理回路と前記複数のスレーブ処理回路との間で伝送されるデータと演算命令に対して前処理を実行するように使用され、
    前記複数のスレーブ処理回路は、前記メイン処理回路から伝送されたデータ及び演算命令に従って、中間演算を実行して複数の中間結果を獲得し、複数の中間結果を前記メイン処理回路に伝送するように使用され、
    前記メイン処理回路は、さらに前記複数の中間結果に対して後続処理を実行して、前記計算命令の計算結果を獲得するように使用されることを特徴とする
    請求項11に記載のコンピューターデバイス。
  13. コンピュータプログラムが保存されたコンピュータ可読記憶媒体であって、前記コンピュータプログラムは、プロセッサによって実行される場合、請求項1〜7のいずれか一項に記載の方法のステップを実行する、前記コンピュータ可読記憶媒体。
JP2019564530A 2018-08-10 2019-03-29 変換方法、装置、コンピューターデバイス及び記憶媒体 Active JP6829327B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810913895.6 2018-08-10
CN201810913895.6A CN109492241B (zh) 2018-08-10 2018-08-10 转换方法、装置、计算机设备和存储介质
PCT/CN2019/080510 WO2020029592A1 (zh) 2018-08-10 2019-03-29 转换方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
JP2020532778A JP2020532778A (ja) 2020-11-12
JP6829327B2 true JP6829327B2 (ja) 2021-02-10

Family

ID=65690403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019564530A Active JP6829327B2 (ja) 2018-08-10 2019-03-29 変換方法、装置、コンピューターデバイス及び記憶媒体

Country Status (8)

Country Link
US (2) US11314507B2 (ja)
EP (1) EP3640825B8 (ja)
JP (1) JP6829327B2 (ja)
KR (1) KR20210033874A (ja)
CN (2) CN111309486B (ja)
AU (1) AU2019268193B2 (ja)
CA (1) CA3062949C (ja)
WO (1) WO2020029592A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309486B (zh) * 2018-08-10 2024-01-12 中科寒武纪科技股份有限公司 转换方法、装置、计算机设备和存储介质
CN109754072B (zh) * 2018-12-29 2020-06-23 中科寒武纪科技股份有限公司 网络离线模型的处理方法、人工智能处理装置及相关产品
CN109976751B (zh) * 2019-03-28 2022-12-27 中科寒武纪科技股份有限公司 模型操作方法、相关装置及计算机可读存储介质
CN111832737B (zh) * 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
CN111832356B (zh) * 2019-04-19 2024-12-03 中科寒武纪科技股份有限公司 信息处理装置、方法及相关产品
CN112396186B (zh) * 2019-08-12 2024-05-03 上海寒武纪信息科技有限公司 执行方法、装置及相关产品
CN110532291B (zh) * 2019-07-25 2022-07-12 中国科学院计算技术研究所 基于最小执行代价的深度学习框架间模型转换方法及系统
CN110458286B (zh) * 2019-08-14 2022-02-08 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN110458285B (zh) * 2019-08-14 2021-05-14 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
KR102840299B1 (ko) * 2020-06-29 2025-07-30 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 딥 러닝 모델의 적응 방법, 장치 및 전자 기기
CN111967568B (zh) * 2020-06-29 2023-09-01 北京百度网讯科技有限公司 深度学习模型的适配方法、装置及电子设备
CN111783642B (zh) * 2020-06-30 2023-10-13 北京百度网讯科技有限公司 一种图像识别方法、装置、电子设备及存储介质
CN111966361B (zh) * 2020-09-25 2024-04-05 北京百度网讯科技有限公司 用于确定待部署模型的方法、装置、设备及其存储介质
CN112256279B (zh) * 2020-09-29 2024-05-14 深圳市广和通无线股份有限公司 源码转换方法、装置、计算机设备及可读存储介质
CN114529005A (zh) * 2020-11-03 2022-05-24 华为技术有限公司 机器学习模型管理方法、装置和系统
CN112799895B (zh) * 2021-01-27 2024-07-26 北京嘀嘀无限科技发展有限公司 硬件评测方法、装置、电子设备、存储介质和程序产品
KR102760500B1 (ko) * 2021-11-01 2025-01-24 고려대학교 산학협력단 인공 신경망 분석 장치 및 방법
US12517725B2 (en) * 2022-02-28 2026-01-06 Palantir Technologies Inc. Systems and methods of application builders for offline-capable application
CN115511060B (zh) * 2022-10-14 2026-03-20 浙江大华技术股份有限公司 模型的转换方法、装置、存储介质及电子装置
CN115827595A (zh) * 2022-11-08 2023-03-21 深圳市有方科技股份有限公司 数据管理方法、装置及计算机设备
KR102645690B1 (ko) * 2023-06-13 2024-03-11 주식회사 노타 노드에 대응되는 인공지능 기반의 모델을 제공하기 위한 방법 및 디바이스
CN119963279A (zh) * 2023-11-08 2025-05-09 北京京东乾石科技有限公司 一种分拣方法、装置、电子设备及存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222302B2 (en) * 2003-06-05 2007-05-22 International Business Machines Corporation Method and apparatus for generating it level executable solution artifacts from the operational specification of a business
WO2006043012A1 (en) * 2004-10-22 2006-04-27 New Technology/Enterprise Limited Data processing system and method
US8538786B2 (en) * 2006-06-07 2013-09-17 International Business Machines Corporation Method, system and program product for generating an implementation of a business rule including a volatile portion
US8516435B2 (en) * 2008-06-19 2013-08-20 International Business Machines Corporation System and method for generating implementation artifacts for contextually-aware business applications
US8495559B2 (en) * 2008-09-09 2013-07-23 International Business Machines Corporation Extracting platform independent models from composite applications
US8813024B2 (en) * 2008-09-22 2014-08-19 International Business Machines Corporation System and a method for cross-platform porting of business application and making them contextually-aware on target platforms
WO2010046734A1 (en) * 2008-10-21 2010-04-29 Accenture Global Services Gmbh Model transformation unit
CN101430647A (zh) * 2008-12-02 2009-05-13 北京中星微电子有限公司 一种硬件设备及其驱动安装方法
CN101937351B (zh) * 2010-09-15 2013-07-31 任子行网络技术股份有限公司 一种自动安装应用软件的方法和系统
KR101770292B1 (ko) * 2014-11-27 2017-08-22 주식회사 엘지씨엔에스 컴퓨터 수행 가능한 모델 역공학 방법 및 장치
CN104679511A (zh) * 2015-02-10 2015-06-03 北京系统工程研究所 基于MDE模型转换的MapReduce代码生成方法
US20160328644A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Adaptive selection of artificial neural networks
US10366687B2 (en) * 2015-12-10 2019-07-30 Nuance Communications, Inc. System and methods for adapting neural network acoustic models
CN105930354B (zh) * 2016-04-08 2020-02-14 四川师范大学 存储模型转换方法和装置
CN107622427B (zh) * 2016-07-13 2021-04-06 阿里巴巴集团控股有限公司 深度学习的方法、装置及系统
JP2018018451A (ja) * 2016-07-29 2018-02-01 富士通株式会社 機械学習方法、機械学習プログラム及び情報処理装置
CN106331858A (zh) * 2016-09-08 2017-01-11 北京奇虎科技有限公司 程序安装适配性的检测方法、装置及系统
CN106650922B (zh) * 2016-09-29 2019-05-03 清华大学 硬件神经网络转换方法、计算装置、软硬件协作系统
US11106969B2 (en) * 2017-01-19 2021-08-31 International Business Machines Corporation Method and apparatus for driver identification leveraging telematics data
JP6865847B2 (ja) * 2017-04-19 2021-04-28 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッドShanghai Cambricon Information Technology Co.,Ltd. 処理装置、チップ、電子設備及び方法
US20200380357A1 (en) * 2017-09-13 2020-12-03 Intel Corporation Incremental network quantization
US10469327B1 (en) * 2017-10-18 2019-11-05 Vulcan Inc. Operations environment model and simulation to reduce operator error
CN108038544B (zh) * 2017-12-04 2020-11-13 华南师范大学 基于大数据和深度学习的神经网络深度学习方法和系统
KR102720330B1 (ko) * 2017-12-29 2024-10-22 캠브리콘 테크놀로지스 코퍼레이션 리미티드 신경망 처리 방법, 컴퓨터 시스템 및 저장 매체
CN108205708A (zh) * 2018-01-02 2018-06-26 安徽大学 一种新型可扩展的深度学习系统及数据识别方法
CN108053031A (zh) * 2018-01-02 2018-05-18 安徽大学 一种深度学习系统及深度学习识别方法
US20190286972A1 (en) * 2018-03-14 2019-09-19 Microsoft Technology Licensing, Llc Hardware accelerated neural network subgraphs
US20210097391A1 (en) * 2018-04-17 2021-04-01 Shenzhen Corerain Technologies Co., Ltd. Network model compiler and related product
US20210042621A1 (en) * 2018-04-17 2021-02-11 Shenzhen Corerain Technologies Co., Ltd. Method for operation of network model and related product
JP7440420B2 (ja) * 2018-05-07 2024-02-28 グーグル エルエルシー 包括的機械学習サービスを提供するアプリケーション開発プラットフォームおよびソフトウェア開発キット
CN111309486B (zh) * 2018-08-10 2024-01-12 中科寒武纪科技股份有限公司 转换方法、装置、计算机设备和存储介质
CN112016668A (zh) * 2019-05-31 2020-12-01 苹果公司 机器学习模型在运行时期间的可变参数
US20210117859A1 (en) * 2019-10-20 2021-04-22 Nvidia Corporation Live updating of machine learning models
US20220012575A1 (en) * 2020-07-09 2022-01-13 Femtosense, Inc. Methods and apparatus for localized processing within multicore neural networks
KR102656567B1 (ko) * 2021-12-30 2024-04-12 주식회사 에임퓨처 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치

Also Published As

Publication number Publication date
AU2019268193B2 (en) 2022-04-21
EP3640825A1 (en) 2020-04-22
US20200104129A1 (en) 2020-04-02
US20220214875A1 (en) 2022-07-07
CA3062949A1 (en) 2020-02-10
US11314507B2 (en) 2022-04-26
KR20210033874A (ko) 2021-03-29
JP2020532778A (ja) 2020-11-12
AU2019268193A1 (en) 2020-02-27
CA3062949C (en) 2023-01-24
US11853760B2 (en) 2023-12-26
WO2020029592A1 (zh) 2020-02-13
EP3640825B8 (en) 2025-04-09
CN109492241B (zh) 2020-03-10
EP3640825C0 (en) 2025-03-05
EP3640825B1 (en) 2025-03-05
CN109492241A (zh) 2019-03-19
CN111309486A (zh) 2020-06-19
CN111309486B (zh) 2024-01-12
EP3640825A4 (en) 2020-08-26

Similar Documents

Publication Publication Date Title
JP6829327B2 (ja) 変換方法、装置、コンピューターデバイス及び記憶媒体
EP4123515A1 (en) Data processing method and data processing device
EP3985509B1 (en) Neural network segmentation method, prediction method, and related apparatus
WO2020042739A1 (zh) 数据预处理方法、装置、计算机设备和存储介质
JP2022511716A (ja) 非集中的な分散型深層学習
JP7328331B2 (ja) イメージの彩色完成方法、その装置及びそのコンピュータプログラム、並びに人工神経網学習方法、その装置及びそのコンピュータプログラム
CN114580606B (zh) 数据处理方法、装置、计算机设备和存储介质
CN116185378B (zh) 计算图的优化方法、数据处理方法及相关产品
CN111667060B (zh) 深度学习算法的编译方法、装置及相关产品
CN111831354A (zh) 数据精度配置方法、装置、芯片、芯片阵列、设备及介质
CN116579380A (zh) 一种数据处理方法以及相关设备
CN110865950B (zh) 数据预处理方法、装置、计算机设备和存储介质
CN120144258A (zh) 神经网络模型的运行方法、芯片、电子设备及存储介质
CN119378624A (zh) 一种数据调度方法及计算设备
CN114546623B (zh) 一种基于大数据系统的任务调度方法和系统
CN108520011B (zh) 一种确定任务的执行方案的方法及装置
CN113469328A (zh) 执行转数穿过的装置、板卡、方法及可读存储介质
CN110704040A (zh) 信息处理方法、装置、计算机设备及可读存储介质
CN111260070A (zh) 运算方法、装置及相关产品
CN114691589B (zh) 一种处理装置及相关产品
EP4553711A1 (en) Method for training neural network and related device
CN111258641A (zh) 运算方法、装置及相关产品
CN111260046A (zh) 运算方法、装置及相关产品
CN120295781A (zh) 一种ONNX深度学习算子在OpenCL设备上的实现方法、系统及介质
CN117688979A (zh) 处理器及其切片方法、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210121

R150 Certificate of patent or registration of utility model

Ref document number: 6829327

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250