JP7268924B2 - 推論システム、推論装置、推論方法及び推論プログラム - Google Patents
推論システム、推論装置、推論方法及び推論プログラム Download PDFInfo
- Publication number
- JP7268924B2 JP7268924B2 JP2022026516A JP2022026516A JP7268924B2 JP 7268924 B2 JP7268924 B2 JP 7268924B2 JP 2022026516 A JP2022026516 A JP 2022026516A JP 2022026516 A JP2022026516 A JP 2022026516A JP 7268924 B2 JP7268924 B2 JP 7268924B2
- Authority
- JP
- Japan
- Prior art keywords
- inference
- processing
- preprocessing
- trained model
- post
- 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
Links
Images
Landscapes
- Image Analysis (AREA)
Description
ニューラルネットワークの学習処理では、中間層を多層化した構成を用いたディープラーニングを実行することにより、高い精度で推論可能な学習済みモデルを作成する。
アプリケーションの利用者は、推論装置が実行する推論フレームワークに、ネットワーク構造と重み係数で定義される学習済みモデル(例えば、特許文献1)を読み込ませることにより推論処理を実行する。
なお、推論処理における入力データの形式は、学習時の設計に応じた制限がかけられる。このような制限には、入力ニューロンの数に対応する1データの要素数、及びデータの分解能などがある。
推論装置は、入力データを上記制限に適応した形式にする前処理を実行し、前処理済みの入力データをニューラルネットワークに入力する。
また推論装置は、ニューラルネットワークの出力データを後段で実行される処理に適応した形式にする後処理を実行し、後処理済みの出力データを後段のアプリケーションに出力する。
学習時の前処理では、例えば2値化処理でニューラルネット演算装置に入力させる学習データのデータセット数を適正に少なくして学習時間を短縮させることができる。また認識時の前処理は、例えば量子化処理で認識データの特徴を際立たせることにより認識率を向上させることができる。
また特許文献2には、前処理装置により前処理された学習データ又は認識データに基づきニューラルネット演算装置で学習演算又は認識演算された結果を受けて、後で使用する機器に合わせてデータ変換(後処理)を行う後処理装置が記載されている。
この場合、推論装置の利用者は、販売者がネットワーク上にアップロードした学習済みモデルを購入・ダウンロードし、自身の推論装置に予め導入した推論フレームワークに組み込んで利用する。
推論フレームワーク自体はマルチプラットフォームで動作するため、利用者は自身の環境で推論フレームワークを手軽に実行できる。
しかし、上記の前処理部と後処理部はC言語やPythonなどのプログラム言語を用いて、利用者が自らの環境に応じて実装する必要があるのが現状である。
利用者自身によるこれらの実装は難度が高く、プラットフォーム毎にコンパイルしなおす必要がありポータビリティも低い。
その結果、現状として、特に販売者から提供された学習済みモデルを利用することは決して容易ではない。
本発明はこのような事情を鑑みてなされたものであり、一側面として、学習済みモデルを容易に使用可能とすることを目的とする。
また、一形態として、ニューラルネットワークの推論処理を行う第1装置と、前記推論処理に用いる学習済みモデルを作成する第2装置と、を備え、前記第1装置は、前記推論処理を行うために、学習済みモデルを入れ替え可能な推論フレームワークを実行する実行部と、前記推論処理を行う対象データの入力を受け付ける受付部と、前記第2装置が作成した前記学習済みモデルを前記推論フレームワークに読み込む読込部と、を備え、前記推論フレームワークは、推論エンジンと、前処理用バーチャルマシンと、を備え、前記学習済みモデルは、ニューラルネットワークと、前処理用プログラムの前記前処理用バーチャルマシン用バイトコードと、を備え、前記前処理用バーチャルマシンは、前記学習済みモデルに含まれる前記前処理用バーチャルマシン用バイトコードに基づいて前記前処理用プログラムを実行し、前記受付部が受け付けた前記対象データのデータ形式を前記推論処理に対応する形式に変換する前処理を行い、前記推論エンジンは、前記前処理用バーチャルマシンが実行する前記前処理用プログラムによる前処理済の前記対象データを入力され、当該対象データに対して、前記学習済みモデルに含まれるニューラルネットワークに基づく推論処理を行う、ことを特徴とする。
図1は、ニューラルネットワークを用いて推論を行うための方式を説明する図である。
ニューラルネットワークを用いた推論では、CNN(Convolutional Neural Network)の推論フレームワークに学習済みモデルを読み込む。学習済みモデルはネットワーク構造と重み係数で定義されており、推論フレームワークは、これらの情報をパラメータとして推論処理を実行する。
推論フレームワークは、推論ランタイムともいう。推論ランタイムは推論ランタイムライブラリの略であり、ニューラルネットワーク(メインプログラム)を実行するときに用いられるプログラムの部品をひとまとめにしたファイルである。
なお、推論フレームワークによる推論処理では、推論対象の画像データ等を推論フレームワークに入力する前に当該データに対して行う前処理と、推論フレームワークの出力に対して行う後処理が必要である。前処理部と後処理部は、利用者によってC言語などで記述される。
例えば「Yolo」などでは、前処理として、入力された8bitの画像をfloatに変換し、RGB順の並び替え、リサイズを行ったあとでCNNに投入する。学習済みモデルの種類によって、RGB値のレンジが-128~127や、0~1.0、-0.5~0.5など、期待する入力が異なるため、それを合わせ込むために行われる。
前処理として入力画像をフーリエ変換したあとに推論フレームワークに入力する場合や、フレーム間の動きベクトルを計算したあとに推論フレームワークに入力する場合もある。
さらに、上記の「Yolo」の場合、CNNの出力は1470次元のベクトルである。後処理として、下記に示すようなコードでバウンディングボックスに変換する必要がある。
しかしながら、推論フレームワークへの入力データのフォーマットをあわせる前処理部と、出力ベクトルから期待する結果(バウンディングボックスなど)に整形する後処理部は、C++言語やPythonなどで記述されているため学習済みモデルに含めることができない。
前処理部、後処理部については利用者が自ら実現するためのプログラムコードを記述する必要があり、非常に難度が高い。
また異なるプラットフォーム上で学習済みモデルを使いたい場合、プラットフォーム毎にコンパイルしなおす必要がありポータビリティが低い。その結果、学習済みモデルを利用することは決して容易ではない。
この問題は、学習済みモデルの販売プラットフォームを作る時に障害になる。販売者から見ると、後処理をプログラムで提供する必要がありノウハウが流出してしまう恐れがある。また利用者から見ると、後処理をコーディングする必要があり取扱が煩雑である。
教師データとは、ニューラルネットワークが学習しやすいように、例えば、ラベル、オフセット、バウンディングボックスが調整された例題と答えについてのデータである。従って、教師データが変わると、推論時に利用する前処理及び後処理も調整する必要が生じる。
前処理部及び後処理部は、学習時に使用した推論フレームワーク及び学習時の設定などに対応するように作成されるからである。また学習時の設定は、推論対象に応じた入力データごとに適切な設定を技術者が適宜設定するものなので、一意に決まるものではない。学習時に使用する推論フレームワークは、推論時に使用する推論フレームワークとは違うものでもよいため、設定は複数種類存在することになる。
前処理及び後処理は学習済みモデルごとに異なる処理となる。
一度作成した前処理プログラム、後処理プログラムを更新後の学習済みモデルに適用することは難しく、学習済みモデルのアップデート時にも改めて前処理、後処理をコーディングする必要がある。利用者にとってはとりわけ取扱が煩雑となる。
前処理プログラム、後処理プログラムをそのままに学習済みモデルを差し替えることを考えた場合、特に後処理がハードコーディングされていると差し替えできる範囲が狭くなることが考えられる。
学習済みモデルに前処理及び後処理の機能をあらかじめ組み込み、それを推論フレームワークで実行可能としたことで、学習済みモデルの利用者が自ら前処理、後処理用のコードを記述する必要がない。その結果、学習済みモデルの利用を非常に容易とすることができる。
システムは、学習済みモデルの利用者が利用する推論装置1と、推論フレームワークの提供者が利用する推論フレームワーク提供者装置2と、例えばアプリケーションの販売者である、学習済みモデルの販売者が利用する販売者装置3と、を含む。これらの装置は、インターネットなどのネットワークNWに接続され、互いに通信可能に構成されている。
(1)推論フレームワークの提供者は、推論ランタイムにVMを組み込んだランタイムライブラリとして利用者に提供する。学習済みモデルの利用者は、提供された推論フレームワークを、自身の推論装置1に導入する。
(2)学習済みモデルの販売者は、販売者装置3を用いて、提供者が提供した推論フレームワーク向けに前処理及び後処理の機能を組み込んだ学習済みモデルを作成する。
(3)学習済みモデルの販売者は、販売者装置3を用いて、作成した学習済みモデルを利用者に販売提供する。学習済みモデルは販売者装置3から直接利用者に販売提供される。あるいは、販売者が学習済みモデルストアのサーバにアップロードした学習済みモデルを、利用者が推論装置1を用いてダウンロードすることで学習済みモデルが提供されてもよい。
(4)推論装置1の利用者は、(1)で提供された推論フレームワークに、(3)で提供された学習済みモデルを読み込ませ、推論装置1を用いて入力データ等に対する推論処理を実行する。なお、以下の説明では、画像データを用いた推論処理を一例として説明するが、入力データは、音声データ、文字データなどの他のデータでもよい。
推論装置1は、学習済みモデルが含む前処理用の機能を入力データに対して実行し、入力データを推論処理に対応した形式に変換する前処理を行う。
推論装置1は、前処理済みの入力データをニューラルネットワークに入力して推論処理を行う。
さらに推論装置1は、ニューラルネットワークの出力データ(推論結果出力データ)に対して学習済みモデルが含む後処理用の機能を実行し、出力データの形式を、後段の処理に対応する形式に変換する後処理を行う。推論装置1は、例えば、推論処理の出力データの形式を、後段のアプリケーションで実行される処理に適合させる。
推論装置1は、後処理済みの出力データを、後段で実行されるアプリケーションに出力する。
学習済みモデルは、前処理用の機能と後処理用の機能を含んでいる。従って、推論装置1の利用者(ユーザ)は、モデル販売者から学習済みモデルを購入して推論フレームワークに組み込むことで入出力データの前処理及び後処理を考慮することなく推論処理を実行することができる。従って、学習済みモデルを容易に使うことができる。
また学習済みモデルの中に前処理と後処理を統合することができるため、クロスプラットフォームでの一貫した動作を実現できる。
教師データとは、ニューラルネットワークが学習しやすいように、例えば、ラベル、オフセット、バウンディングボックスが調整された例題と答えについてのデータである。
学習時の教師データが変わると、推論時に利用する前処理及び後処理も調整する必要が生じる。
上記のように従来は、推論フレームワークに対して前処理及び後処理をハードコーディングで実装していたため、学習済みモデルのアップデート後には前処理及び後処理のプログラムを新たに作成しなければならなかった。
従って、アップデート後の新たな学習済みモデルを利用するのが煩雑になっていた。
それに対して、本実施形態では、学習処理を実行した学習済みモデルの販売者が、新たな学習済みモデルに対応する前処理及び後処理の機能を学習済みモデル自体に含ませている。
利用者は、アップデート後の学習済みモデルを推論フレームワークに読み込ませるだけで、新たな学習済みモデルを用いた推論処理を推論装置1に実行させることができる。従って、学習済みモデルの利用がより容易になる。
推論装置1は、推論フレーワーク10を実行することにより推論処理を実行する。
この例では、推論フレーワーク10にVM(バーチャルマシン)を搭載し、学習済みモデルには、前処理用、後処理用の機能として、このVMで実行可能なバイトコードを含ませる。
推論フレーワーク10は、学習済みモデルに含まれるバイトコードを実行することによって前処理、後処理を実行することが出来る。
推論フレーワーク10は、推論エンジン11と、前処理用VM12と、後処理用VM13と、を含む。
推論エンジン11は、ニューラルネットワーク、例えばCNNによる推論処理を行う。
前処理用VM12は、前処理用のバイトコードを実行することで、推論エンジン11に入力する画像等のデータに対する形式変換などの前処理を実行する。
後処理用VM13は、前処理用のバイトコードを実行することで、推論エンジン11による推論結果に対する後処理を実行する。
VM用バイトコードは、前処理用プログラムのバイトコード52と、後処理用プログラムのバイトコード53と、を含む。
推論フレーワーク10は、画像データ等を入力されると、学習済みモデル50が含む前処理用プログラムのバイトコード52、後処理用プログラムのバイトコード53を、前処理用VM12、後処理用VM13を用いて夫々実行することによって、前処理、後処理を自動的に行う。
その結果、学習済みモデル50の利用者は、前処理、後処理のためのプログラムコードを自ら記述して、前処理用プログラム、後処理用プログラムを別途用意する必要がない。学習済みモデルは使いやすくなると言える。
学習済みモデルの販売者は、販売者装置3において、図4に説明する変換ツール100を用いて推論フレームワークに含まれるVMに対応した学習済みモデル50を作成する。
変換ツール100は、プログラムコードをVM向けにコンパイルしてVM用のバイトコードを生成するコンパイラ101を含む。
販売者は、変換ツール100を実行する販売者装置3において、既存の推論フレームワークで学習した学習済みモデル50と、前処理用プログラムのコード、後処理用プログラムのコードを変換ツールに入力する。
バイトコードを学習済みモデル50とパックして1つのファイルとしてもよいし、バイトコードと学習済みモデル50を別ファイルとして同時に配信してもよい。
なお、前処理のプログラムコード、後処理のプログラムコードにはいずれも独自の秘匿されるべきノウハウが導入されている。従ってバイトコードがリバースエンジニアリングされてノウハウが流出することを防止するために、学習済みモデル50に含ませるバイトコードは暗号化されて配布されてもよい。
推論フレーワーク10は、レジスタやメモリに相当する機能を備えている。図3、図4で説明したVMの基本命令(レジスタからのリード・ストア、メモリからのリード・ストア、条件分岐、ループ)をそれぞれCNNレイヤーとして実装し、チューリング完全とする。実質的に、図3で説明したVMと同じアーキテクチャであると言える。
推論フレーワーク10が読み込む学習済みモデル50は、重み付けとネットワーク構造を含むが、ネットワーク構造内に、図3のVMの命令に一対一で対応したレイヤーが定義されている。このレイヤーが前処理と後処理を実行するのである。
学習済みモデル50の中に前処理と後処理を実行する機能を含ませる点で、図3と同じ構成である。
前処理用のレイヤーと後処理のレイヤーを含む学習済みモデル50が推論ランタイムに読み込まれると、推論エンジン11は、画像データに対する前処理、CNNの推論処理、推論結果に対する後処理を行う。
学習済みモデルの販売者は、販売者装置3において、前処理及び後処理をCNNレイヤーとして実装した学習済みモデル50を、図6に説明する変換ツール150によって作成する。
学習済みモデルの販売者は、販売者装置3において、既存の推論フレームワークで学習した「ネットワーク構造」と「重み」を含む学習済みモデル50と、前処理用プログラムのコード、後処理用プログラムのコードを変換ツール150に入力する。
すなわち変換ツール150は、前処理用プログラムのコード、後処理用プログラムのコードをレイヤー形式のバイトコードに変換し、ニューラルネットワークの前後に接続するのである。
なお、「レイヤーに落とし込む」とは、前処理と後処理のプログラムコードに含まれるループ処理などを展開することによりCNNで処理可能なレイヤー形式に変換することである。
学習済みモデル50において、レイヤーとしてコンパイルされたプログラムはネットワーク構造として格納されているので、学習済みモデル50を読み込む推論装置1は、前処理、推論処理、及び後処理をすべてCNNで実行することが出来る。
その結果、学習済みモデル50の利用者は、前処理、後処理のためのプログラムコードを自ら記述して、前処理用プログラム、後処理用プログラムを別途用意する必要がない。学習済みモデルは使いやすくなると言える。
推論装置1は、制御部30と記憶部40とを備える。
制御部30は、受付部31と、送信部32と、受信部33と、読込部34と、前処理部35と、推論部36と、後処理部37と、出力部38と、を備える。
記憶部40は、画像データ記憶部41と、学習済みモデル記憶部42と、前処理済み画像データ記憶部43と、推論結果記憶部44と、後処理済み推論結果記憶部45と、を備える。
受付部31は、画像データ記憶部41からの推論フレーワーク10に対する画像データ等の入力を受け付ける。また、受付部31は、学習済みモデルの取得を要求する学習済みモデル取得要求を、利用者から受け付ける。
送信部32は、受付部31が学習済みモデル取得要求を受け付けたことに応じて、販売者装置3に対して学習済みモデル取得要求を送信する。送信部32はまた、受付部31が入力を受け付けた画像データ等を販売者装置3に対して送信する。
読込部34は、学習済みモデル記憶部42から学習済みモデルを読み出して推論フレーワーク10に組み込む。
前処理部35は、前処理用VM12に相当し、読み込んだ学習済みモデル50に含まれる前処理用バイトコード52を実行する。それによって、前処理部35は、画像データ等に対する前処理を行い、前処理済みの画像データ等を前処理済み画像データ記憶部43に格納する。
上記したように、前処理は画像データを推論処理に対応した画像形式に変換する処理である。
後処理部37は、後処理用VM13に相当し、読み込んだ学習済みモデル50に含まれる後処理用バイトコード53を実行する。それによって、後処理部37は、推論結果記憶部44に格納されている推論結果出力データに対する後処理を行い、後処理済みの推論結果出力データを後処理済み推論結果記憶部45に格納する。
上記したように、後処理は、推論結果出力データを後段のアプリケーションで実行される処理に適合させる処理である。
出力部38は、後処理済み推論結果記憶部45に格納されている後処理済みの推論結果出力データを後段のアプリケーションに対して出力する。
販売者装置3は、制御部60と記憶部70とを備える。
制御部60は、変換部61と、統合部62と、出力部63と、受付部64と、送信部65と、を備える。
記憶部70は、プログラムコード記憶部71と、学習済みモデル記憶部72と、統合学習済みモデル記憶部73と、を備える。
プログラムコード記憶部71は、予め準備された前処理用プログラム、後処用プログラムのプログラムコードが格納されている。
学習済みモデル記憶部72には、予め学習された学習済みモデルが格納される。
統合学習済みモデル記憶部73は、前処理及び後処理の機能が統合された統合学習済みモデルが格納される。
変換部61は、このときバイトコードを暗号化してもよい。
統合部62は、学習済みモデル記憶部72に格納される学習済みモデル50に、変換部61が変換したバイトコードを組み込んで統合する。
このとき統合部62は、バイトコードを暗号化してもよい。
出力部63は、バイトコードを統合した学習済みモデル50を統合学習済みモデル記憶部73に出力する。
受付部64は、推論装置1からの学習済みモデル取得要求を受け付ける。
送信部65は、推論装置1に対して、統合学習済みモデル記憶部73に記憶されているバイトコードを組み込んだ学習済みモデルを送信する。
第1の例と同様に推論装置1は、制御部30と記憶部40とを備える。
制御部30は、受付部31と、送信部32と、受信部33と、読込部34と、前処理部35と、推論部36と、後処理部37と、出力部38と、を備える。
記憶部40は、画像データ記憶部41と、学習済みモデル記憶部42と、前処理済み画像データ記憶部43と、推論結果記憶部44と、後処理済み推論結果記憶部45と、を備える。
送信部32は、受付部31が学習済みモデル取得要求を受け付けたことに応じて、販売者装置3に対して学習済みモデル取得要求を送信する。送信部32はまた、受付部31が入力を受け付けた画像データを販売者装置3に対して送信する。
受信部33は、販売者装置3から学習済みモデルを受信して学習済みモデル記憶部42に格納する。
読込部34は、学習済みモデル記憶部42から学習済みモデルを読み出して推論フレーワーク10に組み込む。
前処理部35は、推論エンジン11に相当し、読み込んだ学習済みモデル50に含まれる前処理用レイヤー55を実行する。それによって、前処理部35は画像データ等に対する前処理を行い、前処理済みの画像データ等を前処理済み画像データ記憶部43に格納する。
上記したように、前処理は画像データを推論処理に対応した画像形式に変換する等の処理である。
後処理部37は、後処理用VM13に相当し、読み込んだ学習済みモデル50に含まれる後処理用レイヤー56を実行する。それによって、後処理部37は、推論結果記憶部44に格納されている推論結果出力データに対する後処理を行い、後処理済みの推論結果出力データを後処理済み推論結果記憶部45に格納する。
上記したように、後処理は、推論結果出力データを後段のアプリケーションで実行される処理に適合させる等の処理である。
出力部38は、後処理済み推論結果記憶部45に格納されている後処理済みの推論結果出力データを後段のアプリケーションに対して出力する。
第1の例と同様に販売者装置3は、制御部60と記憶部70とを備える。
制御部60は、変換部61と、統合部62と、出力部63と、受付部64と、送信部65と、を備える。
記憶部70は、プログラムコード記憶部71と、学習済みモデル記憶部72と、統合学習済みモデル記憶部73と、を備える。
プログラムコード記憶部71は、予め準備された前処理用プログラム、後処理用プログラムのプログラムコードが格納されている。
学習済みモデル記憶部72には、予め学習された学習済みモデルが格納されている。
統合学習済みモデル記憶部73は、前処理及び後処理の機能が統合された統合学習済みモデルが格納される。
統合部62は、学習済みモデル記憶部72に格納される学習済みモデル50に、変換部61が変換したレイヤーを組み込んで統合する。
出力部63は、バイトコードを統合した学習済みモデル50を統合学習済みモデル記憶部73に出力する。
受付部64は、推論装置1からの学習済みモデル取得要求を受け付ける。
送信部65は、推論装置1に対して、統合学習済みモデル記憶部73に記憶されているレイヤーを組み込んだ学習済みモデルを送信する。
この場合、変換ツール150は、学習済みモデル50に対して、単に前処理用プログラムのコード、後処理用プログラムのコードを含めるのみである。
推論装置1の推論エンジン11が、学習済みモデル50を読み込むと、レイヤーコンパイラは、学習済みモデル50に含まれる前処理と後処理のプログラムコードに含まれるループ処理などを展開することにより、前処理と後処理のプログラムコードをCNNで処理可能なレイヤー形式のバイトコードに変換する。
ステップS101において、受付部31は、学習済みモデル取得要求があったか否かを判定する。この学習済みモデル取得要求は、推論装置1の利用者によって、推論装置1が備えるキーボードやマウスなどの入力装置を用いて行われ得る。
学習済みモデル取得要求があったと判定した場合(ステップS101でYes)、受付部31は、ステップS102において、学習済みモデル取得要求を受け付ける。そして送信部32は、ステップS103において、学習済みモデル要求を販売者装置3に送信し、学習済みモデル要求処理は終了する。
受付部31において、学習済みモデル取得要求がなかったと判定された場合(ステップS101でNo)、受信部33は、ステップS104において、販売者装置3から学習済みモデルを受信したか否かを判定する。学習済みモデルを受信したと判定した場合(ステップS104でYes)、受信部33は、ステップS105において、受信した学習済みモデルを記憶部40に格納する、そして、読込部34は、S106において、記憶部40に格納された学習済みモデルを読み出し、推論フレームワークに学習済みモデルを組み込む。
学習済みモデルを受信したと判定しなかった場合(ステップS104でNo)、受信部33は何も行わず、学習済みモデル要求処理は終了する。
ステップS111において、受付部54は、学習済みモデル取得要求が推論装置1からあったか否かを判定する。学習済みモデル取得要求があったと判定した場合(ステップS111でYes)、受付部54は、ステップS112において、学習済みモデル取得要求を受け付ける。送信部55は、ステップS113において、要求に応じて記憶部60から学習済みモデルを読み出して推論装置1に送信する。
ステップS121において、受付部31は、推論対象の画像データ等の入力が行われたか、すなわち入力データがあったかを判定する。
画像データの入力は、例えば、推論装置1が備えるキーボードやマウスなどの入力装置を用いて記憶部40に予め格納されている画像データを利用者が選択することによって行い得る。
あるいは、推論装置1が備えるカメラなどの撮像装置によって直接撮像された画像データが入力されてもよい。
入力データがなかったと判定した場合(ステップS121にてNo)、受付部31は、S121の処理を繰り返し実行する。入力データがあったと判定した場合(ステップS121でYes)、ステップS122において、受付部31は入力データを受け付ける。
前処理部35による前処理は、推論フレーワーク10が備えるVM12が、学習済みモデルに含まれる前処理用バイトコード51を実行することによって実施される。
あるいは前処理部35による前処理は、推論フレーワーク10が備える推論エンジン11が、学習済みモデルに含まれる前処理用レイヤー55を実行することによって実施される。
ステップS124において、推論部36(推論エンジン11)は、記憶部40に格納されている前処理済みの入力データ(変換入力データ)に対して推論処理を実行し、推論結果出力データを記憶部40に格納する。
後処理部37による後処理は、推論フレーワーク10が備えるVM13が、学習済みモデルに含まれる後処理用バイトコード52を実行することによって実施される。
あるいは後処理部37による後処理は、推論フレーワーク10が備える推論エンジン11が、学習済みモデルに含まれる後処理用レイヤー56を実行することによって実施される。
ステップS126において、出力部38は、記憶部40に格納されている後処理済みの出力データを後段のアプリケーションに対して出力する。
図14を参照して、コンピュータ装置200の構成について説明する。
図14において、コンピュータ装置200は、制御回路201と、記憶装置202と、読書装置203と、記録媒体204と、通信インターフェイス205と、入出力インターフェイス206と、入力装置207と、表示装置208とを含む。また、通信インターフェイス205は、ネットワーク300と接続される。そして、各構成要素は、バス210により接続される。
販売者装置3、推論装置1は、コンピュータ装置200に記載の構成要素の一部または全てを適宜選択して構成することができる。
なお、情報処理プログラムは、制御回路201を制御部30として機能させる推論プログラムと、制御回路201を制御部60として機能させる変換プログラムとの少なくとも一方を含む。
推論装置1は、RAMに読み出されたプログラムを制御回路201で実行することにより、受付処理、送信処理、受信処理、読込処理、前処理に係る処理、推論処理、後処理に係る処理、出力処理のいずれか1以上を含む処理を実行する。
販売者装置3は、RAMに読み出されたプログラムを制御回路201で実行することにより、変換処理、統合処理、出力処理、受付処理、送信処理のいずれか1以上を含む処理を実行する。
なお、プログラムは、制御回路201が通信インターフェイス205を介してアクセス可能であれば、ネットワーク300上のサーバが有する記憶装置に記憶されていても良い。
記録媒体204は、各種データを保存する。記録媒体204は、例えば、取引処理プログラムを記憶する。記録媒体204は、例えば、Secure Digital(SD)メモリーカード、Floppy Disk(FD)、Compact Disc(CD)、Digital Versatile Disk(DVD)、Blu-ray(登録商標) Disk(BD)、及びフラッシュメモリなどの不揮発性メモリ(非一時的記録媒体)である。
入出力インターフェイス206は、例えば、各種入力装置と着脱可能に接続するインターフェイスである。入出力インターフェイス206と接続される入力装置には、例えば、キーボード、及びマウスなどがある。入出力インターフェイス206は、接続された各種入力装置とコンピュータ装置200とを通信可能に接続する。そして、入出力インターフェイス206は、接続された各種入力装置から入力された信号を、バス210を介して制御回路201に出力する。また、入出力インターフェイス206は、制御回路201から出力された信号を、バス210を介して入出力装置に出力する。入出力インターフェイス206は、例えば、図7、図9において、受付部31として機能する。また、入出力インターフェイス206は、例えば、図8、図10において、受付部64として機能する。
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
Claims (13)
- ニューラルネットワークの推論処理を行う第1装置と、前記推論処理に用いる学習済みモデルを作成する第2装置と、を備え、
前記第1装置は、
前記推論処理を行うために、学習済みモデルを入れ替え可能な推論フレームワークを実行する実行部と、
前記推論処理を行う対象データの入力を受け付ける受付部と、
前記第2装置が作成した前記学習済みモデルを前記推論フレームワークに読み込む読込部と、
を備え、
前記推論フレームワークは、推論エンジンと、後処理用バーチャルマシンと、を備え、
前記学習済みモデルは、ニューラルネットワークと、後処理用プログラムの前記後処理用バーチャルマシン用バイトコードと、を備え、
前記推論エンジンは、前記学習済みモデルに含まれるニューラルネットワークに基づいて前記対象データに対する推論を行い、前記推論の結果となる出力データを出力し、
前記後処理用バーチャルマシンは、前記学習済みモデルに含まれる前記後処理用バーチャルマシン用バイトコードに基づいて前記後処理用プログラムを実行し、前記出力データのデータ形式を、アプリケーションが期待する形式に変換する後処理を行う、
ことを特徴とする推論システム。 - 請求項1に記載の推論システムにおいて、
前記第2装置は、
前記後処理用プログラムのプログラムコードを前記第1装置で実行可能な前記後処理用バーチャルマシン用バイトコードに変換する変換部と、
前記変換部が変換した前記後処理用バーチャルマシン用バイトコードを前記学習済みモデルに統合する統合部と、
を備えることを特徴とする推論システム。 - 請求項2に記載の推論システムにおいて、
前記後処理用バーチャルマシン用バイトコードは暗号化されていることを特徴とする推論システム。 - ニューラルネットワークの推論処理を行う第1装置と、前記推論処理に用いる学習済みモデルを作成する第2装置と、を備え、
前記第1装置は、
前記推論処理を行うために、学習済みモデルを入れ替え可能な推論フレームワークを実行する実行部と、
前記推論処理を行う対象データの入力を受け付ける受付部と、
前記第2装置が作成した前記学習済みモデルを前記推論フレームワークに読み込む読込部と、
を備え、
前記推論フレームワークは、推論エンジンと、前処理用バーチャルマシンと、を備え、
前記学習済みモデルは、ニューラルネットワークと、前処理用プログラムの前記前処理用バーチャルマシン用バイトコードと、を備え、
前記前処理用バーチャルマシンは、前記学習済みモデルに含まれる前記前処理用バーチャルマシン用バイトコードに基づいて前記前処理用プログラムを実行し、前記受付部が受け付けた前記対象データのデータ形式を前記推論処理に対応する形式に変換する前処理を行い、
前記推論エンジンは、前記前処理用バーチャルマシンが実行する前記前処理用プログラムによる前処理済の前記対象データを入力され、当該対象データに対して、前記学習済みモデルに含まれるニューラルネットワークに基づく推論処理を行う、
ことを特徴とする推論システム。 - 請求項4に記載の推論システムにおいて、
前記第2装置は、
前記前処理用プログラムのプログラムコードを前記第1装置で実行可能な前記前処理用バーチャルマシン用バイトコードに変換する変換部と、
前記変換部が変換した前記前処理用バーチャルマシン用バイトコードを前記学習済みモデルに統合する統合部と、
を備えることを特徴とする推論システム。 - 請求項5に記載の推論システムにおいて、
前記前処理用バーチャルマシン用バイトコードは暗号化されていることを特徴とする推論システム。 - ニューラルネットワークの推論処理を行う推論装置であって、
前記推論処理を行うための学習済みモデルを入れ替え可能な推論フレームワークを実行する実行部と、
前記推論処理を行う対象データの入力を受け付ける受付部と、
外部装置が作成した前記学習済みモデルを前記推論フレームワークに読み込む読込部と、
を備え、
前記推論フレームワークは、推論エンジンと、後処理用バーチャルマシンと、を備え、
前記学習済みモデルは、ニューラルネットワークと、後処理用プログラムの前記後処理用バーチャルマシン用バイトコードと、を備え、
前記推論エンジンは、前記学習済みモデルに含まれるニューラルネットワークに基づいて前記対象データに対する推論を行い、前記推論の結果となる出力データを出力し、
前記後処理用バーチャルマシンは、前記学習済みモデルに含まれる前記後処理用バーチャルマシン用バイトコードに基づいて前記後処理用プログラムを実行し、前記出力データのデータ形式を、アプリケーションが期待する形式に変換する後処理を行う、
ことを特徴とする推論装置。 - ニューラルネットワークの推論処理を行う推論装置であって、
前記推論処理を行うための学習済みモデルを入れ替え可能な推論フレームワークを実行する実行部と、
前記推論処理を行う対象データの入力を受け付ける受付部と、
外部装置が作成した前記学習済みモデルを前記推論フレームワークに読み込む読込部と、
を備え、
前記推論フレームワークは、推論エンジンと、前処理用バーチャルマシンと、を備え、
前記学習済みモデルは、ニューラルネットワークと、前処理用プログラムの前記前処理用バーチャルマシン用バイトコードと、を備え、
前記前処理用バーチャルマシンは、前記学習済みモデルに含まれる前記前処理用バーチャルマシン用バイトコードに基づいて前記前処理用プログラムを実行し、前記受付部が受け付けた前記対象データのデータ形式を前記推論処理に対応する形式に変換する前処理を行い、
前記推論エンジンは、前記前処理用バーチャルマシンが実行する前記前処理用プログラムによる前処理済の前記対象データを入力され、当該対象データに対して、前記学習済みモデルに含まれるニューラルネットワークに基づく推論処理を行う、
ことを特徴とする推論装置。 - 推論装置のプロセッサによって実行される推論方法であって、
前記プロセッサは、
ニューラルネットワークの推論処理を行うための学習済みモデルを入れ替え可能な推論フレームワークを実行し、
前記推論処理を行う対象データの入力を受け付け、
外部装置が作成した前記学習済みモデルを前記推論フレームワークに読み込み、
前記推論フレームワークは、推論エンジンと、後処理用バーチャルマシンと、を備え、
前記学習済みモデルは、ニューラルネットワークと、後処理用プログラムの前記後処理用バーチャルマシン用バイトコードと、を備え、
前記推論エンジンは、前記学習済みモデルに含まれるニューラルネットワークに基づいて前記対象データに対する推論を行い、前記推論の結果となる出力データを出力し、
前記後処理用バーチャルマシンは、前記学習済みモデルに含まれる前記後処理用バーチャルマシン用バイトコードに基づいて前記後処理用プログラムを実行し、前記出力データのデータ形式を、アプリケーションが期待する形式に変換する後処理を行う、
ことを特徴とする推論方法。 - 推論装置のプロセッサによって実行される推論方法であって、
前記プロセッサは、
ニューラルネットワークの推論処理を行うための学習済みモデルを入れ替え可能な推論フレームワークを実行し、
前記推論処理を行う対象データの入力を受け付け、
外部装置が作成した前記学習済みモデルを前記推論フレームワークに読み込み、
前記推論フレームワークは、推論エンジンと、前処理用バーチャルマシンと、を備え、
前記学習済みモデルは、ニューラルネットワークと、前処理用プログラムの前記前処理用バーチャルマシン用バイトコードと、を備え、
前記前処理用バーチャルマシンは、前記学習済みモデルに含まれる前記前処理用バーチャルマシン用バイトコードに基づいて前記前処理用プログラムを実行し、前記対象データのデータ形式を前記推論処理に対応する形式に変換する前処理を行い、
前記推論エンジンは、前記前処理用バーチャルマシンが実行する前記前処理用プログラムによる前処理済の前記対象データを入力され、当該対象データに対して、前記学習済みモデルに含まれるニューラルネットワークに基づく推論処理を行う、
ことを特徴とする推論方法。 - 推論装置のプロセッサによって実行される推論プログラムであって、
ニューラルネットワークの推論処理を行うための学習済みモデルを入れ替え可能な推論フレームワークを実行し、
前記推論処理を行う対象データの入力を受け付け、
外部装置が作成した前記学習済みモデルを前記推論フレームワークに読み込み、
前記推論フレームワークは、推論エンジンと、後処理用バーチャルマシンと、を備え、
前記学習済みモデルは、ニューラルネットワークと、後処理用プログラムの前記後処理用バーチャルマシン用バイトコードと、を備え、
前記推論エンジンは、前記学習済みモデルに含まれるニューラルネットワークに基づいて前記対象データに対する推論を行い、前記推論の結果として出力データを出力し、
前記後処理用バーチャルマシンは、前記学習済みモデルに含まれる前記後処理用バーチャルマシン用バイトコードに基づいて前記後処理用プログラムを実行し、前記出力データのデータ形式を、アプリケーションが期待する形式に変換する後処理を行う、
ことを特徴とする推論プログラム。 - 推論装置のプロセッサによって実行される推論プログラムであって、
ニューラルネットワークの推論処理を行うための学習済みモデルを入れ替え可能な推論フレームワークを実行し、
前記推論処理を行う対象データの入力を受け付け、
外部装置が作成した前記学習済みモデルを前記推論フレームワークに読み込み、
前記推論フレームワークは、推論エンジンと、前処理用バーチャルマシンと、を備え、
前記学習済みモデルは、ニューラルネットワークと、前処理用プログラムの前記前処理用バーチャルマシン用バイトコードと、を備え、
前記前処理用バーチャルマシンは、前記学習済みモデルに含まれる前記前処理用バーチャルマシン用バイトコードに基づいて前記前処理用プログラムを実行し、前記対象データのデータ形式を前記推論処理に対応する形式に変換する前処理を行い、
前記推論エンジンは、前記前処理用バーチャルマシンが実行する前記前処理用プログラムによる前処理済の前記対象データを入力され、当該対象データに対して、前記学習済みモデルに含まれるニューラルネットワークに基づく推論処理を行う、
ことを特徴とする推論プログラム。 - ニューラルネットワークの推論処理を行う第1装置と、前記推論処理に用いる学習済みモデルを作成する第2装置と、を備え、
前記第1装置は、
前記推論処理を行う対象データの入力を受け付ける受付部と、
前記第2装置が作成した前記学習済みモデルを読み込む読込部と、
前記学習済みモデルを用いて前記対象データに基づく前記推論処理を実行する推論部と、
前記受付部が受け付けた前記対象データのデータ形式を前記推論処理に対応する形式に変換する前処理を行う前処理部と、
を備え、
前記学習済みモデルは、前記前処理を前記第1装置に実行させるための第1制御情報を含み、
前記前処理部は、前記前処理を、前記学習済みモデルに含まれる前記第1制御情報に基づいて実行し、
前記第2装置は、
前記第1制御情報として、前記前処理のプログラムコードを前記第1装置で実行可能なレイヤーに変換する変換部と、
前記変換部が変換した前記レイヤーを前記学習済みモデルに統合する統合部と、
を備えることを特徴とする推論システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022026516A JP7268924B2 (ja) | 2019-11-14 | 2022-02-24 | 推論システム、推論装置、推論方法及び推論プログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019206312A JP7079502B2 (ja) | 2019-11-14 | 2019-11-14 | 推論システム |
JP2022026516A JP7268924B2 (ja) | 2019-11-14 | 2022-02-24 | 推論システム、推論装置、推論方法及び推論プログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019206312A Division JP7079502B2 (ja) | 2019-11-14 | 2019-11-14 | 推論システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022060486A JP2022060486A (ja) | 2022-04-14 |
JP7268924B2 true JP7268924B2 (ja) | 2023-05-08 |
Family
ID=87654607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022026516A Active JP7268924B2 (ja) | 2019-11-14 | 2022-02-24 | 推論システム、推論装置、推論方法及び推論プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7268924B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018533138A (ja) | 2015-09-29 | 2018-11-08 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 選択的バックプロパゲーション |
WO2019003485A1 (ja) | 2017-06-30 | 2019-01-03 | 株式会社Abeja | 機械学習又は推論のための計算機システム及び方法 |
JP2019012555A (ja) | 2017-04-10 | 2019-01-24 | 株式会社クロスコンパス | 人工知能モジュール開発システム及び人工知能モジュール開発統合システム |
-
2022
- 2022-02-24 JP JP2022026516A patent/JP7268924B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018533138A (ja) | 2015-09-29 | 2018-11-08 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | 選択的バックプロパゲーション |
JP2019012555A (ja) | 2017-04-10 | 2019-01-24 | 株式会社クロスコンパス | 人工知能モジュール開発システム及び人工知能モジュール開発統合システム |
WO2019003485A1 (ja) | 2017-06-30 | 2019-01-03 | 株式会社Abeja | 機械学習又は推論のための計算機システム及び方法 |
Non-Patent Citations (1)
Title |
---|
下田 倫大,TensorFlow 活用ガイド 初版 ,第1版,株式会社技術評論社 片岡 巌,2018年 |
Also Published As
Publication number | Publication date |
---|---|
JP2022060486A (ja) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200249936A1 (en) | Method and system for a platform for api based user supplied algorithm deployment | |
JP7079502B2 (ja) | 推論システム | |
US11861474B2 (en) | Dynamic placement of computation sub-graphs | |
McCaskey et al. | Hybrid programming for near-term quantum computing systems | |
KR102096388B1 (ko) | 모바일 환경에서 실시간 추론이 가능한 dnn 구성을 위한 최적화 기법 | |
CN111507457A (zh) | 用于可解释人工智能的神经网络特征的影响的映射和量化 | |
Bisong et al. | Tensorflow 2.0 and keras | |
CN114139714A (zh) | 用于硬件感知的机器学习模型训练的方法和装置 | |
WO2017159638A1 (ja) | 能力付与データ生成装置 | |
CN106325854B (zh) | 一种基于Groovy的规则引擎系统 | |
EP3855388A1 (en) | Image processing device and operation method thereof | |
Passalis et al. | Opendr: An open toolkit for enabling high performance, low footprint deep learning for robotics | |
KR20220052771A (ko) | 전자 장치 및 그 동작방법 | |
US20220092424A1 (en) | Methods, systems, apparatus and articles of manufacture to apply a regularization loss in machine learning models | |
JP7268924B2 (ja) | 推論システム、推論装置、推論方法及び推論プログラム | |
CN112689849A (zh) | 图像处理装置及其操作方法 | |
US20200125394A1 (en) | Data analytics platform | |
CN114175069A (zh) | 具有隐私保护的分布式机器学习 | |
US20220326922A1 (en) | Method for optimizing program using reinforcement learning | |
CN110889316B (zh) | 一种目标对象识别方法、装置及存储介质 | |
US20220405561A1 (en) | Electronic device and controlling method of electronic device | |
Nardelli et al. | Comparing tensorflow deep learning performance and experiences using cpus via local pcs and cloud solutions | |
WO2023097428A1 (en) | Methods and apparatus to perform parallel double-batched self-distillation in resource-constrained image recognition applications | |
US11341363B1 (en) | In-process engine implementation using SDK extensions | |
JP2021081787A (ja) | 推論システム、情報処理装置、推論情報方法及び情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220303 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230404 |
|
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: 20230411 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230414 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7268924 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |