JP7447529B2 - 情報処理装置、情報処理方法、および、プログラム - Google Patents

情報処理装置、情報処理方法、および、プログラム Download PDF

Info

Publication number
JP7447529B2
JP7447529B2 JP2020024209A JP2020024209A JP7447529B2 JP 7447529 B2 JP7447529 B2 JP 7447529B2 JP 2020024209 A JP2020024209 A JP 2020024209A JP 2020024209 A JP2020024209 A JP 2020024209A JP 7447529 B2 JP7447529 B2 JP 7447529B2
Authority
JP
Japan
Prior art keywords
cost
calculation
information processing
layer
display
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
JP2020024209A
Other languages
English (en)
Other versions
JP2021128674A (ja
Inventor
亮志 池谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Sony Group Corp
Original Assignee
Sony Corp
Sony Group Corp
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 Sony Corp, Sony Group Corp filed Critical Sony Corp
Priority to JP2020024209A priority Critical patent/JP7447529B2/ja
Priority to PCT/JP2020/042909 priority patent/WO2021166347A1/ja
Publication of JP2021128674A publication Critical patent/JP2021128674A/ja
Application granted granted Critical
Publication of JP7447529B2 publication Critical patent/JP7447529B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本技術は、情報処理装置に関する。詳しくは、ニューラルネットワークに関する処理を行う情報処理装置、および、情報処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
近年、画像認識や音声認識などの分野において、人間の脳神経系の仕組みをコンピュータ上に再現したニューラルネットワークに関する開発や研究が進められてる。例えば、ニューラルネットワークの処理に必要なメモリ量や演算量を求め、画面に表示する情報処理装置が提案されている(例えば、特許文献1参照。)。
国際公開第2017/138220号
上述の従来技術では、メモリ量や演算量の表示により、ニューラルネットワークをハードウェア実装する際の設計支援を図っている。しかしながら、上述の従来技術では、設計効率が低下することがある。例えば、ニューラルネットワーク内の関数の演算順序に関する設定を変更すると、メモリ量や演算量が変動することがある。この場合、メモリ量などを最適化するために、設定変更の操作を繰り返す必要があり、煩雑な操作により設計効率が低下するおそれがある。
本技術はこのような状況に鑑みて生み出されたものであり、ニューラルネットワークに関するハードウェア設計を支援する情報処理装置において、設計効率を向上させることを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、ニューラルネットワークを形成する複数のノードの互いの結合関係に基づいて上記複数のノードのそれぞれで用いられる関数を演算するための複数の演算順序を求める解析部と、上記複数の演算順序のそれぞれについて上記関数の演算に要するコストを求めるコスト取得部と、上記複数の演算順序のそれぞれと上記コストとを対応付けて表示部に表示させる表示制御部とを具備する情報処理装置、および、情報処理方法ならびに当該方法をコンピュータに実行させるプログラムである。これにより、ニューラルネットワークに関するハードウェアの設計効率が向上するという作用をもたらす。
また、この第1の側面において、上記表示制御部は、ユーザの操作に従って上記複数の演算順序のいずれかを選択して上記選択した演算順序と当該演算順序に対応する上記コストと上記結合関係とを表示させてもよい。これにより、選択された演算順序と、コストと、結合関係とが表示されるという作用をもたらす。
また、この第1の側面において、上記表示制御部は、上記複数の演算順序のそれぞれと上記コストとを対応付けたテーブルを表示部に表示させてもよい。これにより、複数の演算順序のそれぞれとコストとを対応付けたテーブルが表示されるという作用をもたらす。
また、この第1の側面において、上記コストは、メモリ容量、メモリアクセス数およびメモリバンド幅の少なくとも1つを含むものであってもよい。これにより、演算順序ごとに、メモリ容量、メモリアクセス数およびメモリバンド幅の少なくとも1つが表示されるという作用をもたらす。
また、この第1の側面において、上記コストは、処理時間を含むものであってもよい。これにより、演算順序ごとに、処理時間が表示されるという作用をもたらす。
また、この第1の側面において、上記コストは、演算器の使用効率と上記演算の並列度との少なくとも1つを含むものであってもよい。これにより、演算順序ごとに、演算器の使用効率と上記演算の並列度との少なくとも1つが表示されるという作用をもたらす。
本技術の第1の実施の形態における設計支援システムの一構成例を示すブロック図である。 本技術の第1の実施の形態における情報処理装置の一構成例を示すブロック図である。 本技術の第1の実施の形態におけるニューラルネットワークの構造の一例を示す図である。 本技術の第1の実施の形態におけるニューラルネットワーク内のレイヤーの結合関係の一例を示す図である。 本技術の第1の実施の形態におけるレイヤー1の関数を演算した際に保持されるデータ数を説明するための図である。 本技術の第1の実施の形態における2番目にレイヤー2の関数を演算した際に保持されるデータ数を説明するための図である。 本技術の第1の実施の形態における3番目にレイヤー3の関数を演算した際に保持されるデータ数を説明するための図である。 本技術の第1の実施の形態における4番目にレイヤー4の関数を演算した際に保持されるデータ数を説明するための図である。 本技術の第1の実施の形態における5番目にレイヤー5の関数を演算した際に保持されるデータ数を説明するための図である。 本技術の第1の実施の形態における2番目にレイヤー4の関数を演算した際に保持されるデータ数を説明するための図である。 本技術の第1の実施の形態における3番目にレイヤー2の関数を演算した際に保持されるデータ数を説明するための図である。 本技術の第1の実施の形態における4番目にレイヤー3の関数を演算した際に保持されるデータ数を説明するための図である。 本技術の第1の実施の形態における演算結果の表示前の画面の一例を示す図である。 本技術の第1の実施の形態における演算結果の表示画面の一例を示す図である。 本技術の第1の実施の形態における別の演算結果の表示画面の一例を示す図である。 本技術の第1の実施の形態における情報処理装置の動作の一例を示すフローチャートである。 本技術の第2の実施の形態における演算結果の表示画面の一例を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(演算順序ごとにコストを表示する例)
2.第2の実施の形態(演算順序ごとのコストをテーブル表示する例)
<1.第1の実施の形態>
[設計支援システムの構成例]
図1は、本技術の第1の実施の形態における設計支援システムの一構成例を示すブロック図である。この設計支援システムは、ニューラルネットワークをハードウェアに実装する際の設計を支援するためのシステムである。設計支援システムは、学習フレームワーク110、情報処理装置200、変換部120およびハードウェア設計ツール130を備える。
学習フレームワーク110は、入力されたデータセットに基づいて、推論モデルを生成するものである。この学習フレームワーク110には、画像データや音声データなどのデータセットが入力される。学習フレームワーク110は、データセットに基づいて機械学習を行い、入力データが、どのクラスであるかを予測するための推論モデルを生成する。この推論モデルは、例えば、ニューラルネットワークをコンピュータ上に再現するためのプログラムと、係数ファイルとを含む。係数ファイルは、ニューラルネットワーク内のノードに入出力されるデータに対する重み係数を設定したものである。また、ニューラルネットワークとして、例えば、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)が用いられる。
そして、学習フレームワーク110は、推論モデル(プログラムおよび係数ファイル)を情報処理装置200に供給する。
情報処理装置200は、推論モデルに基づいて、ニューラルネットワーク内の関数の演算順序を求めるものである。この情報処理装置200は、推論モデルを解析し、関数を演算するための複数の演算順序を全て求める。そして、情報処理装置200は、演算順序ごとに、演算に要するコストを求めて表示する。ユーザは、表示内容を検討して最適な演算順序を決定し、情報処理装置200を操作して、その演算順序を定義する演算順序シーケンスをプログラムとともに変換部120へ出力させる。
変換部120は、コードを機械語に変換するものである。変換部120として、例えば、コンパイラが用いられる。この変換部120は、プログラムおよび演算順序シーケンスに基づいて、演算順序シーケンスで定義された演算順序で演算を行うためのコードを生成し、そのコードを機械語に変換する。そして、変換部120は、機械語をハードウェア設計ツール130へ供給する。
ハードウェア設計ツール130は、機械語に基づいて、ニューラルネットワークをハードウェア実装した回路を生成するものである。
なお、学習フレームワーク110や変換部120を情報処理装置200の外部にも設けているが、これらを情報処理装置200内に配置することもできる。
[情報処理装置の構成例]
図2は、本技術の第1の実施の形態における情報処理装置200の一構成例を示すブロック図である。この情報処理装置200は、解析部210、コスト取得部220、表示制御部230、記憶部240、演算順序決定部250および表示部260を備える。
記憶部240は、情報処理装置200内で用いられるデータを記憶するものである。記憶部240として、メモリなどが用いられる。
学習フレームワーク110は、ニューラルネットワークプログラム241および係数ファイル242を出力し、これらは、記憶部240内に保持される。
解析部210は、ニューラルネットワークプログラム241を解析し、関数の演算順序を全て求めるものである。この解析部210は、ニューラルネットワークを形成する複数のノードの互いの結合関係に基づいて、ノードのそれぞれで用いられる関数を演算するための複数の演算順序を求める。そして、解析部210は、それらの演算順序を示すデータをコスト取得部220に供給する。
コスト取得部220は、演算順序ごとに、関数の演算に要するコストを求めるものである。ここで、コストは、例えば、メモリ容量、メモリアクセス数、メモリバンド幅、処理時間、演算器の使用効率、演算の並列度のうち少なくとも1つを含む。コスト取得部220は、ニューラルネットワークプログラム241および係数ファイル242を記憶部240から読み出し、演算順序のそれぞれについて、その順序で所定のハードウェアにより演算した際のコストを求める。そして、コスト取得部220は、演算順序のそれぞれを、対応するコストとともに表示制御部230に供給する。
表示制御部230は、演算順序のそれぞれと、対応するコストとを表示部260に表示させるものである。
表示部260は、表示制御部230の制御に従って、画面を表示するものである。表示部260として、液晶モニタなどが用いられる。
演算順序決定部250は、ユーザの操作に従って、演算順序を決定するものである。ユーザは、表示部260に表示された演算順序ごとのコストを参照して検討し、情報処理装置200を操作して、最適の演算順序を指定する。演算順序決定部250は、ユーザの操作に従って、指定された演算順序を示す演算順序シーケンス定義ファイル243を生成し、記憶部240に保持させる。ニューラルネットワークプログラム241および演算順序シーケンス定義ファイル243は、変換部120へ出力される。
なお、情報処理装置200内に記憶部240および表示部260を配置しているが、これらの少なくとも一方を情報処理装置200の外部に設けることもできる。記憶部240を外部に設ける場合、例えば、ネットワークを介してサーバ内に記憶部240を配置することもできる。
[ニューラルネットワークの構成例]
図3は、本技術の第1の実施の形態におけるニューラルネットワークの構造の一例を示す図である。同図は、ニューラルネットワークプログラム241により、コンピュータ上に再現されるニューラルネットワークの一例を示す。このニューラルネットワークは、レイヤー1乃至6などの複数のレイヤーにより形成される。また、個々のレイヤー内には、ノード301などの複数のノードが設けられる。
また、レイヤーのそれぞれは、少なくとも1つの他のレイヤーに結合されている。例えば、レイヤー1は、レイヤー2および4に結合される。レイヤー2は、レイヤー1および3に結合される。レイヤー3は、レイヤー2および5に結合される。レイヤー4は、レイヤー1および5に結合される。レイヤー5は、レイヤー3および6に結合される。なお、レイヤー間の結合関係は、同図に例示したものに限定されない。
また、例えば、レイヤー1にデータセットが入力され、レイヤー6から結果が出力されるものとする。
図4は、本技術の第1の実施の形態におけるニューラルネットワーク内のレイヤーの結合関係の一例を示す図である。同図は、図3に例示したニューラルネットワークのレイヤー内のノードを省略し、レイヤー内の関数を表記したものである。
「Input Dataset」は、レイヤー1にデータセットが入力されることを示す。レイヤー1において「Convolution Kernelshepe:5,5」は、カーネルを用いる畳み込み演算を示す。カーネルは、フィルタとも呼ばれる。「5,5」は、カーネル(フィルタ)のサイズを示す。「Stride=2」は、カーネルを適用する間隔を示す。このように畳み込み演算を行うニューラルネットワークは、CNNと呼ばれる。
また、「BatchNormalization」は、中間層のパラメータの分布が適切になるように、層の出力を強制的に適切化するバッチ正規化処理を示す。「ReLU(Rectified Linear Unit)」は、正規化線形関数を利用したユニットを示す。また、「64,14,14」は、マップ数が64で、特徴マップの個々のサイズが14×14であることを示す。
レイヤー4において、「AveragePooling」は、入力された特徴マップを複数のプーリング領域に分割し、各領域の平均値を計算する平均プーリング処理を示す。
レイヤー5において、「Add」は、加算処理を示す。レイヤー6において、「Affine」は、順伝播で行ってきた行列の内積を求めるアフィン変換処理を示す。
なお、レイヤーのそれぞれで実行する処理は、同図に例示したものに限定されない。例えば、レイヤー1では、ステップ関数や線形結合など、正規化線形関数以外の活性化関数を用いることができる。また、レイヤー3では、マックスプーリング処理など、平均プーリング処理以外のプーリング処理を行うことができる。
同図に例示したように、レイヤーのそれぞれにおいては、関数が用いられる。例えば、カーネルを表す関数や正規化線形関数が用いられる。これらの関数の演算順序は、レイヤー間の結合関係に基づいて変更することができる。前述したように同図では、レイヤー2に、その後段のレイヤー3が結合され、レイヤー3および4に、その後段のレイヤー5が結合される。このため、レイヤー3の前にレイヤー2の関数の演算を実行し、レイヤー5の前にレイヤー3および4の関数の演算を行うのであれば、レイヤー2乃至4の演算順序は、任意である。演算順序を変更すると、その演算順序の演算に要するコストが変わることがある。
まず、レイヤー1の後にレイヤー2、3、4の順で演算を行う場合について考える。
図5は、本技術の第1の実施の形態におけるレイヤー1の関数を演算した際に保持されるデータ数を説明するための図である。同図において、「Conv」は、畳み込み演算を示す。「Act」は、バッチ正規化処理や正規化線形関数の演算を示す。レイヤー1の演算により、200個のデータが出力されたものとする。これらのデータは、レイヤー2および4で用いられるため、記憶部240に格納される。
図6は、本技術の第1の実施の形態における2番目にレイヤー2の関数を演算した際に保持されるデータ数を説明するための図である。このレイヤー2の関数の演算により、例えば、150個のデータが出力されたものとする。これらのデータは、レイヤー3で用いられるため、記憶部240に格納される。150個のデータの追加により、記憶部240内のデータ数は、350個となる。
図7は、本技術の第1の実施の形態における3番目にレイヤー3の関数を演算した際に保持されるデータ数を説明するための図である。このレイヤー3の関数の演算により、75個のデータが出力されたものとする。これらのデータは、レイヤー5で用いられるため、記憶部240に格納される。75個のデータの追加により、記憶部240内のデータ数は、425個となる。そして、レイヤー2で出力された150個のデータは、不要となったため、記憶部240から削除される。150個のデータの削除により、記憶部240内のデータ数は、275個となる。
図8は、本技術の第1の実施の形態における4番目にレイヤー4の関数を演算した際に保持されるデータ数を説明するための図である。このレイヤー4の関数の演算により、50個のデータが出力されたものとする。これらのデータは、レイヤー5で用いられるため、記憶部240に格納される。50個のデータの追加により、記憶部240内のデータ数は、325個となる。そして、レイヤー1で出力された200個のデータは、不要となったため、記憶部240から削除される。200個のデータの削除により、記憶部240内のデータ数は、125個となる。
図9は、本技術の第1の実施の形態における5番目にレイヤー5の関数を演算した際に保持されるデータ数を説明するための図である。このレイヤー5の関数の演算により、75個のデータが出力されたものとする。これらのデータは、後の演算で用いられるため、記憶部240に格納される。75個のデータの追加により、記憶部240内のデータ数は、200個となる。そして、レイヤー3および5で出力された125個のデータは、不要となったため、記憶部240から削除される。125個のデータの削除により、記憶部240内のデータ数は、75個となる。
図5乃至9に例示したように、レイヤー2、3、4の順で演算を行う場合、記憶部240内のデータ数の最大値は、図7でレイヤー3のデータを追加した際の425個である。
次に、レイヤー1の後に、レイヤー4、2、3の順で演算を行う場合について考える。
図10は、本技術の第1の実施の形態における2番目にレイヤー4の関数を演算した際に保持されるデータ数を説明するための図である。このレイヤー4の関数の演算により、例えば、50個のデータが出力されたものとする。これらのデータは、レイヤー5で用いられるため、記憶部240に格納される。50個のデータの追加により、記憶部240内のデータ数は、250個となる。
図11は、本技術の第1の実施の形態における3番目にレイヤー2の関数を演算した際に保持されるデータ数を説明するための図である。このレイヤー2の関数の演算により、150個のデータが出力されたものとする。これらのデータは、レイヤー3で用いられるため、記憶部240に格納される。150個のデータの追加により、記憶部240内のデータ数は、400個となる。そして、レイヤー1で出力された200個のデータは、不要となったため、記憶部240から削除される。200個のデータの削除により、記憶部240内のデータ数は、200個となる。
図12は、本技術の第1の実施の形態における4番目にレイヤー3の関数を演算した際に保持されるデータ数を説明するための図である。このレイヤー3の関数の演算により、75個のデータが出力されたものとする。これらのデータは、レイヤー5で用いられるため、記憶部240に格納される。75個のデータの追加により、記憶部240内のデータ数は、275個となる。そして、レイヤー2で出力された150個のデータは、不要となったため、記憶部240から削除される。150個のデータの削除により、記憶部240内のデータ数は、125個となる。
図10乃至12に例示したように、レイヤー4、2、3の順で演算を行う場合、記憶部240内のデータ数の最大値は、図11でレイヤー2のデータを追加した際の400個である。
図5乃至図12に例示したように、レイヤー2、3、4の順で演算を行う場合と、レイヤー4、2、3の順で演算を行う場合とでは、記憶部240(メモリなど)に保持するデータ数の最大値が異なる。データ数の最大値が異なると、演算に必要なメモリ容量も異なる値となる。例えば、データ数の最大値に、個々のデータサイズを乗算することにより、メモリ容量が求められる。このように、演算順序の変更により、必要なメモリ容量が変わることがある。メモリ容量以外のコスト(処理時間や演算器の使用効率など)についても同様である。
そこで、情報処理装置200は、レイヤーの結合関係(言い換えれば、ノード間の結合関係)に基づいて、ノードで用いられる関数を演算するための複数の演算順序を全て求める。そして、情報処理装置200は、図5乃至図12に例示したように、演算順序ごとにコストを求め、演算順序と対応付けて表示する。
[情報処理装置の表示例]
図13は、本技術の第1の実施の形態における演算結果の表示前の画面の一例を示す図である。表示画面内には、レイヤーごとに、そのレイヤー名と、レイヤー内の関数とを含むボックス400が表示される。また、レイヤー同士が結合される場合、対応するボックス400の間に結合関係を示すライン401が配線される。また、演算順序を切り替えるための操作ボタン421と、演算結果を表示させるための操作ボタン422とが所定の位置に表示される。
なお、情報処理装置200は、ユーザの操作に従って、ニューラルネットワークの構造を編集することもできる。編集においては、レイヤーの追加や削除、レイヤー間の結合関係の変更、レイヤー内の関数の設定などが行われる。また、情報処理装置200は、表示されたニューラルネットワークにおいて、ユーザの操作に従って、機械学習を行うこともできる。これらの操作のためのGUI(Graphical User Interface)は、同図において省略されている。
図14は、本技術の第1の実施の形態における演算結果の表示画面の一例を示す図である。同図は、図13で、操作ボタン422を操作したときの画面である。操作後において、ボックス400のそれぞれの近傍に、対応する関数の演算順序を示す数値マーク410が表示される。また、所定の位置に、コスト毎に、コスト名とコスト値を示すテーブル430が表示される。
同図において、レイヤー1、2、3、4、5および6のボックス400の近傍に、それぞれ1、2、3、4、5および6の数値マーク410が表示される。これは、レイヤー1、2、3、4、5および6の順序で演算が実行されたことを表す。テーブル430内のコスト値(X1など)は、この演算順序で演算が行われた際の値を示す。
図15は、本技術の第1の実施の形態における別の演算結果の表示画面の一例を示す図である。同図は、ユーザが、図14の表示画面において、操作ボタン421を操作した際に切り替えらえる画面である。図15の太枠の数値マークは、数値が切り替わった箇所を示す。レイヤー1、2、3、4、5および6のボックス400の近傍に、それぞれ1、3、4、2、5および6の数値マーク410が表示される。これは、レイヤー1、4、2、3、5および6の順序で演算が実行されたことを表す。テーブル430内のコスト値は、この演算順序で演算が行われた際の値(X2など)に切り替えられる。
図14や図15に例示したように、情報処理装置200は、ユーザの操作に従って複数の演算順序のいずれかを選択し、その演算順序と対応するコストと、レイヤー(ノード)間の結合関係とを表示させる。
そして、ユーザは、図14や図15の表示画面を比較して、最適な演算順序を決定する。例えば、実装するハードウェアのメモリ容量が比較的少ない場合には、必要なメモリ容量の小さい演算順序が優先的に選択される。そして、ユーザは、情報処理装置200を操作して、その演算順序を定義する演算順序シーケンスを出力させる。
情報処理装置200が、演算順序の全てを網羅して、演算順序ごとにコストを求めて表示させるため、ユーザは、その表示画面を参照して最適な演算順序を決定することができる。これにより、設計効率を向上させることができる。
[情報処理装置の動作例]
図16は、本技術の第1の実施の形態における情報処理装置200の動作の一例を示すフローチャートである。この動作は、例えば、コストを表示させるための所定のアプリケーションが実行されたときに開始される。
情報処理装置200は、プログラムを解析して、関数の演算順序の全てを求める(ステップS901)。そして、情報処理装置200は、演算順序ごとに、コストを求める(ステップS902)。続いて、情報処理装置200は、演算順序や結合関係とともに、コストを表示する(ステップS903)。情報処理装置200は、ユーザの操作に従って、演算順序のシーケンスを出力する(ステップS904)。ステップS904の後に、情報処理装置200は、表示のための動作を終了する。
このように、本技術の第1の実施の形態によれば、情報処理装置200が複数の演算順序のそれぞれについてコストを求めて表示するため、ユーザはその表示画面を参照して最適な演算順序を決定することができる。これにより、ハードウェア実装の際の設計効率を向上させることができる。
<2.第2の実施の形態>
上述の第1の実施の形態では、情報処理装置200が、ユーザの操作に従って選択した演算順序と対応するコストとを表示していたが、この構成では、複数の演算順序を比較する際に、画面を切り替えるための操作を行う必要がある。この第2の実施の形態の情報処理装置200は、複数の演算順序のそれぞれとコストとを対応付けたテーブルを表示させて、利便性を向上させた点において第1の実施の形態と異なる。
図17は、本技術の第2の実施の形態における演算結果の表示画面の一例を示す図である。同図に例示するように、複数の演算順序のそれぞれと、コストとを対応付けたテーブルが表示画面に表示される。コマンドライン上での実行であれば、このテーブルは、標準出力で表示される。
演算順序の欄において、レイヤー1乃至6が演算の順序で配列される。また、演算順序ごとに、メモリ容量、処理時間や演算器の使用効率のそれぞれのコスト値が表示される。例えば、レイヤー1、2、3、4、5、6の順で演算する場合、メモリ容量、処理時間、演算器の使用効率は、それぞれ、X1、Y1、Z1となる。また、レイヤー1、4、2、3、5、6の順で演算する場合、メモリ容量、処理時間、演算器の使用効率は、それぞれ、X2、Y2、Z2となる。レイヤー1、2、4、3、5、6の順で演算する場合、メモリ容量、処理時間、演算器の使用効率は、それぞれ、X3、Y3、Z3となる。
また、情報処理装置200は、ユーザの操作に従って、ユーザの指定したコストの昇順や降順で複数の演算順序をソートすることもできる。例えば、メモリ容量、処理時間、演算器の使用効率のうちユーザがメモリ容量を指定すると、情報処理装置200は、メモリ容量が低い順に、演算順序をソートする。
また、テーブルの内容は、テキストで表示することもできる。また、情報処理装置200は、実行結果をファイルに保存することもできる。
同図に例示するように、情報処理装置200が、複数の演算順序のそれぞれとコストとを対応付けたテーブルを表示することにより、ユーザは、複数の演算順序を比較する際に、画面を切り替える必要がなくなり、利便性を向上させることができる。
なお、情報処理装置200は、第1の実施の形態の図13乃至図16の表示画面上に、第2の実施の形態のテーブル表示に切り替えるための操作ボタンを追加し、ユーザの操作に従って表示を切り替えることもできる。
このように、本技術の第2の実施の形態によれば、情報処理装置200が複数の演算順序のそれぞれとコストとを対応付けたテーブルを表示するため、ユーザの利便性を向上させることができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)ニューラルネットワークを形成する複数のノードの互いの結合関係に基づいて前記複数のノードのそれぞれで用いられる関数を演算するための複数の演算順序を求める解析部と、
前記複数の演算順序のそれぞれについて前記関数の演算に要するコストを求めるコスト取得部と、
前記複数の演算順序のそれぞれと前記コストとを対応付けて表示部に表示させる表示制御部と
を具備する情報処理装置。
(2)前記表示制御部は、ユーザの操作に従って前記複数の演算順序のいずれかを選択して前記選択した演算順序と当該演算順序に対応する前記コストと前記結合関係とを表示させる前記(1)記載の情報処理装置。
(3)前記表示制御部は、前記複数の演算順序のそれぞれと前記コストとを対応付けたテーブルを表示部に表示させる前記(1)または(2)に記載の情報処理装置。
(4)前記コストは、メモリ容量、メモリアクセス数およびメモリバンド幅の少なくとも1つを含む前記(1)から(3)のいずれかに記載の情報処理装置。
(5)前記コストは、処理時間を含む(1)から(4)のいずれかに記載の情報処理装置。
(6)前記コストは、演算器の使用効率と前記演算の並列度との少なくとも1つを含む(1)から(5)のいずれかに記載の情報処理装置。
(7)ニューラルネットワークを形成する複数のノードの互いの結合関係に基づいて前記複数のノードのそれぞれで用いられる関数を演算するための複数の演算順序を求める解析手順と、
前記複数の演算順序のそれぞれについて前記関数の演算に要するコストを求めるコスト取得手順と、
前記複数の演算順序のそれぞれと前記コストとを対応付けて表示部に表示させる表示制御手順と
を具備する情報処理方法。
(8)ニューラルネットワークを形成する複数のノードの互いの結合関係に基づいて前記複数のノードのそれぞれで用いられる関数を演算するための複数の演算順序を求める解析手順と、
前記複数の演算順序のそれぞれについて前記関数の演算に要するコストを求めるコスト取得手順と、
前記複数の演算順序のそれぞれと前記コストとを対応付けて表示部に表示させる表示制御手順と
をコンピュータに実行させるためのプログラム。
110 学習フレームワーク
120 変換部
130 ハードウェア設計ツール
200 情報処理装置
210 解析部
220 コスト取得部
230 表示制御部
240 記憶部
241 ニューラルネットワークプログラム
242 係数ファイル
243 演算順序シーケンス定義ファイル
250 演算順序決定部
260 表示部

Claims (8)

  1. ニューラルネットワークを形成する複数のノードの互いの結合関係に基づいて前記複数のノードのそれぞれで用いられる関数を演算するための複数の演算順序を求める解析部と、
    前記複数の演算順序のそれぞれについて前記関数の演算に要するコストを求めるコスト取得部と、
    前記複数の演算順序のそれぞれと前記コストとを対応付けて表示部に表示させる表示制御部と
    を具備し、
    前記ニューラルネットワークは、所定数のレイヤーを含み、
    前記ノードは、前記レイヤー内に設けられ、
    前記表示部は、前記レイヤーの名称を含むボックスを前記レイヤーごとに配置し、前記ボックスの間に前記結合関係を示すラインを配線した所定の表示画面を表示し、
    前記表示制御部は、前記演算順序を示す数字マークを前記ボックスの近傍に表示させるとともに前記コストを前記表示画面に表示させる
    情報処理装置。
  2. 前記表示制御部は、ユーザの操作に従って前記複数の演算順序のいずれかを選択して前記選択した演算順序と当該演算順序に対応する前記コストと前記結合関係とを表示させる請求項1記載の情報処理装置。
  3. 前記表示制御部は、ユーザの操作に従って前記表示画面と前記複数の演算順序のそれぞれと前記コストとを対応付けたテーブルを含む新たな表示画面とを切り替えさせる
    請求項1記載の情報処理装置。
  4. 前記コストは、メモリ容量、メモリアクセス数およびメモリバンド幅の少なくとも1つを含む請求項1記載の情報処理装置。
  5. 前記コストは、処理時間を含む請求項1記載の情報処理装置。
  6. 前記コストは、演算器の使用効率と前記演算の並列度との少なくとも1つを含む請求項1記載の情報処理装置。
  7. ニューラルネットワークを形成する複数のノードの互いの結合関係に基づいて前記複数のノードのそれぞれで用いられる関数を演算するための複数の演算順序を求める解析手順と、
    前記複数の演算順序のそれぞれについて前記関数の演算に要するコストを求めるコスト取得手順と、
    前記複数の演算順序のそれぞれと前記コストとを対応付けて表示部に表示させる表示制御手順と
    を具備し、
    前記ニューラルネットワークは、所定数のレイヤーを含み、
    前記ノードは、前記レイヤー内に設けられ、
    前記表示部は、前記レイヤーの名称を含むボックスを前記レイヤーごとに配置し、前記ボックスの間に前記結合関係を示すラインを配線した所定の表示画面を表示し、
    前記表示制御手順において、前記演算順序を示す数字マークを前記ボックスの近傍に表示させるとともに前記コストを前記表示画面に表示させる
    情報処理方法。
  8. ニューラルネットワークを形成する複数のノードの互いの結合関係に基づいて前記複数のノードのそれぞれで用いられる関数を演算するための複数の演算順序を求める解析手順と、
    前記複数の演算順序のそれぞれについて前記関数の演算に要するコストを求めるコスト取得手順と、
    前記複数の演算順序のそれぞれと前記コストとを対応付けて表示部に表示させる表示制御手順と
    をコンピュータに実行させるためのプログラムであって、
    前記ニューラルネットワークは、所定数のレイヤーを含み、
    前記ノードは、前記レイヤー内に設けられ、
    前記表示部は、前記レイヤーの名称を含むボックスを前記レイヤーごとに配置し、前記ボックスの間に前記結合関係を示すラインを配線した所定の表示画面を表示し、
    前記表示制御手順において、前記演算順序を示す数字マークを前記ボックスの近傍に表示させるとともに前記コストを前記表示画面に表示させる
    プログラム。
JP2020024209A 2020-02-17 2020-02-17 情報処理装置、情報処理方法、および、プログラム Active JP7447529B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020024209A JP7447529B2 (ja) 2020-02-17 2020-02-17 情報処理装置、情報処理方法、および、プログラム
PCT/JP2020/042909 WO2021166347A1 (ja) 2020-02-17 2020-11-18 情報処理装置、情報処理方法、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020024209A JP7447529B2 (ja) 2020-02-17 2020-02-17 情報処理装置、情報処理方法、および、プログラム

Publications (2)

Publication Number Publication Date
JP2021128674A JP2021128674A (ja) 2021-09-02
JP7447529B2 true JP7447529B2 (ja) 2024-03-12

Family

ID=77390613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020024209A Active JP7447529B2 (ja) 2020-02-17 2020-02-17 情報処理装置、情報処理方法、および、プログラム

Country Status (2)

Country Link
JP (1) JP7447529B2 (ja)
WO (1) WO2021166347A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505851A (ja) 2001-10-17 2005-02-24 ベプテック インコーポレイテッド オペレーティングシステムにわたる通信の方法
WO2017141517A1 (ja) 2016-02-17 2017-08-24 ソニー株式会社 情報処理方法および情報処理装置
JP2019501451A (ja) 2015-12-02 2019-01-17 グーグル エルエルシー ニューラルネットワークの実行順序決定

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695862A (ja) * 1992-09-14 1994-04-08 Hitachi Ltd 命令列最適化支援装置
JP6574004B2 (ja) * 2018-01-25 2019-09-11 株式会社モルフォ 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505851A (ja) 2001-10-17 2005-02-24 ベプテック インコーポレイテッド オペレーティングシステムにわたる通信の方法
JP2019501451A (ja) 2015-12-02 2019-01-17 グーグル エルエルシー ニューラルネットワークの実行順序決定
WO2017141517A1 (ja) 2016-02-17 2017-08-24 ソニー株式会社 情報処理方法および情報処理装置

Also Published As

Publication number Publication date
WO2021166347A1 (ja) 2021-08-26
JP2021128674A (ja) 2021-09-02

Similar Documents

Publication Publication Date Title
US8879888B2 (en) Video clip selection via interaction with a hierarchic video segmentation
US8761496B2 (en) Image processing apparatus for calculating a degree of similarity between images, method of image processing, processing apparatus for calculating a degree of approximation between data sets, method of processing, computer program product, and computer readable medium
US20220076123A1 (en) Neural network optimization method, electronic device and processor
US20110295849A1 (en) Information processing apparatus and method, and program
JP2007004734A (ja) 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JP2765918B2 (ja) プレゼンテーション装置
JP7447529B2 (ja) 情報処理装置、情報処理方法、および、プログラム
JPWO2020003345A1 (ja) 演算処理装置
CN112214978A (zh) 一种数据处理方法及相关设备
JP2000040079A (ja) 並列データ分析装置
US20170090882A1 (en) Program development support system and program development support software
JPH0997277A (ja) 設計支援装置
WO2021161532A1 (ja) ループアンローリング処理装置、方法およびプログラム
WO2021161531A1 (ja) ループアンローリング処理装置、方法およびプログラム
JP2006031326A (ja) 情報処理装置及び情報処理方法及びプログラム
JP3019922B2 (ja) トレースデータ削減方式
CN114115804B (zh) 一种乘法器转换方法、系统、设备以及介质
JP5453937B2 (ja) 遺伝的処理装置、遺伝的処理方法、および遺伝的処理プログラム
JP3890021B2 (ja) 表示装置、表示方法、表示プログラムおよび表示プログラムを記録したコンピュータ読取り可能な記録媒体
JP3137865B2 (ja) 仕様書作成方法
JP6628217B2 (ja) 音声再生装置、音声再生方法、およびプログラム
JPH1040413A (ja) ボリューム・データ計算方法及び装置並びにボリューム・データ可視化方法及び装置
JP2595616B2 (ja) プロダクションシステム
JPH0496869A (ja) 図面データ記憶方式
JP3803001B2 (ja) ソフトウェア開発手順のカスタマイズ支援装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231211

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: 20240130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240212

R151 Written notification of patent or utility model registration

Ref document number: 7447529

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151