On this page |
概要 ¶
ONNXファイルは、機械学習モデルを表現します。 機械学習は、たいていの場合、2つの異なるステージ(トレーニングと推論)で構成されます。 トレーニングは、問題を解決できるモデルを構築する工程です。 推論は、そのモデルを使用して問題を実際に解決します。 このノードは、推論を実行します。 ノードの入力に対してトレーニング済みモデルを使用し、出力(機械学習された解)を生成します。
Note
モデルは、ONNXファイルと、その入力および出力を参照します。
トレーニングを行なうシステムは多数存在し、それらのシステムは膨大な依存関係を必要とします。 しかし、その結果のモデルの多くはいくつかの単純な操作のみで構成されています。 Open Neural Network Exchange( ONNX )形式は、PyTorchやTensorFlowでトレーニングされたモデルを共通のフレームワーク内で使用できるようにしたファイル形式および推論エンジンです。
ONNX推論モデルは、いくつかの入力と出力で構成されています。 各入力と出力はテンソルです。テンソルは多次元データとも呼ばれています。 テンソルが指すものは、1次元の場合は配列、2次元の場合は画像、3次元の場合はボリューム、といった具合です。 Tensor Shape パラメータの2つ目のセルで次元を設定することができます。
Note
ONNXモデルにはテンソル以外の入力および出力タイプを含められますが、このノードが現在サポートするのはテンソルのみです。
Modelタブのパラメータは、ONNXファイルの入力と出力に関連し、Input & Outputタブのパラメータは、ノード自体の入力と出力に関連しています。 Input & Outputタブのノード入力はModelタブの入力データを取り込むため、Input & Outputタブで設定した後に、それらをModelタブのモデル入力で組み合わせることができます。 その後、Modelタブでそれぞれのモデル出力をさらに設定してから、それらをInput & Outputタブのノード出力で組み合わせることができます。
このノードの使用方法に関する詳細は、How to ONNX Inferenceの使い方を参照してください。
Setup Shapes from Model ¶
Modelタブの Setup Shapes from Model パラメータを使用して、このノードに必要なほとんどの値を設定します。
.onnx
ファイルに基づいてModelタブに入力および出力情報を追加すると共に、モデル入力および出力毎に入力と出力が作成されます。
以下は、 Setup Shapes from Model パラメータによって設定されるすべてのパラメータです:
-
Modelタブ
-
Number of Inputs
-
Number of Outputs
-
Name
-
Data
-
Input Tensor Shape
-
Output Tensor Shape
-
-
Input & Outputタブ
-
Number of Inputs
-
Number of Outputs
-
Name
-
Data
-
Output Tensor Shape
-
テンソルシェイプ ¶
モデル(ONNXファイル)は、タイル状の2次元画像ではなく、1次元配列を形成した長い帯状のピクセルとして解釈します(以下の図を参照)。 このノードのパラメータを使用して、入力または出力のピクセル座標をモデルの要件に合うようにトランスフォームします。

テンソルシェイプは、モデルの入力または出力の形状(サイズおよびデータフォーマット)です。
Input Tensor Shape パラメータと Output Tensor Shape パラメータは、3×3のテーブルです。
画像には、3つの値(コンポーネントの数、幅、高さ)を設定する必要があります。
1つ目のセルを0
に設定した場合、ここでノードはシェイプの解析を停止します。
1つ目のセルを1
に設定すると、値が1で乗算されます。
1つ目のセルを-1
に設定すると、無限の数の入力または出力を指定できる動的なサイズの次元にすることができます。
これを-1
に設定するのは、モデルが任意の長さのリストされた入力または出力を受け取ることができる場合です。
例えば、モデルが無制限の画像を処理でき、それぞれの画像で個別に推論を実行するような場合です。
複数のサンプルポイントをまとめて供給できるため、空間での位置を取得するモデルにとっては、こちらの方が一般的です。
Input Tensor Shape および Output Tensor Shape パラメータは、モデルに必要な入力または出力のシェイプです。 例えば、これはデータが3×224×224(3つ(RGB)のコンポーネントを持つ画像)である必要があるかどうかを決定します。 データレイアウトの生じ方には、様々なオプションがあります。 モデルによって、RGB値が同一ピクセルに格納されているものと想定する場合もあれば、個別のレイヤに分かれているRGB値(RGBチャンネル毎に個別の画像)と想定している場合もあります。 Collate Channels Separately パラメータを使用すると、画像からピクセルを分割して、それらをモデルが必要とするデータレイアウトに変換する方法を設定することができます。 以下の画像は、ノードがデフォルトでピクセルをアンパックする方法と、 Collate Channels Separately がオンの場合を示しています。

Tensor Order は、モデルがピクセルを垂直または水平方向のどちらにアンパックするかを決定します。
YX
はピクセルを元のフォーマット(水平)に維持し、XY
はデータレイアウトを転置して、ピクセルを垂直にアンパックします(以下の画像を参照)。
例えば、 Tensor Order がYX
の時、モデルは正方形の画像だと想定されます。
Tensor Order がXY
で、 Input Tensor Shape が224×224×3の時、モデルは各ピクセルのRGB値が格納された224×224の画像だと想定されます。

ほとんどのモデルは2D空間でトレーニングされており、原点は画像の左下ではなく、左上にあると想定されています。 入力または出力のピクセル座標を、モデルに合わせてHoudiniの3D空間から2D空間に変換する必要がある場合は、 Flip Input Vertically と Flip Output Vertically を使用します。 以下の画像は、これらのパラメータがピクセルどのように反転させるのかを示したものです。

パラメータ ¶
Model ¶
Model File
読み込む.onnx
ファイルの名前。
モデルの入力と出力は、ONNXファイルの設定と一致している必要があります。
Note
Model File パラメータを設定しても、Modelタブの入力および出力情報が空っぽの時は、エラーメッセージが表示されます。 その他のModelパラメータを設定することで、このエラーを解決できます。
Reload Model
.onnx
ファイルを強制的にリロードします。
Setup Shapes from Model
.onnx
ファイルを読み込んで、入力および出力の数とそれらのシェイプを決定します。
詳細は、Setup Shapes from Modelを参照してください。
Number of Inputs
モデルへの入力の数。
Note
ノードは名前に基づいてモデルと一致してはいないため、入力の順序はONNXモデルでの入力の順序と一致する必要があります。
Name
モデルへの入力の名前。 Setup Shapes from Model ボタンは、これにモデルからの入力名を設定しますが、名前は変更することができます。
Data
このモデル入力にデータを供給するノード入力。 スペース区切りまたはカンマ区切りのノード入力名のリストを入力すると、個別のR、G、Bレイヤなど、複数の入力をチェーンで接続することができます。
Input Tensor Shape
モデルに必要な入力のシェイプ。 全体のシェイプは、入力のエレメント数(データの合計サイズ)と一致しなければなりません。
入力画像のサイズがモデルが必要とする入力サイズと一致しない場合、警告が表示されます。 Resample Size パラメータを使用して、入力画像のサイズを変更することができます。
詳細は、テンソルシェイプを参照してください。
Tensor Order
入力画像をモデルが必要とするデータレイアウト(つまり1次元テンソル)に変換する方法を指定します。
YX
ピクセルを水平にアンパックします(Xに沿って隣接するサンプルが一緒に配置されます)。
XY
ピクセルを垂直にアンパックします(Yに沿って隣接するサンプルが一緒に配置されます)。
詳細は、テンソルシェイプを参照してください。
Collate Channels Separately
ピクセル毎に複数のチャンネルを持つ画像を1次元テンソルに変換する時、RGB画像はrrrgggbbb
(個別のRGBセット)として格納され、シェイプの最初の次元はチャンネルの数になります。
ピクセル毎に複数のチャンネルを持つ画像を1次元テンソルに変換する時に、このパラメータがオフの場合、RGB画像はrgbrgbrgb
として格納され、シェイプの最終的な次元はチャンネルの数になります。
詳細は、テンソルシェイプを参照してください。
Channel Size
入力画像のチャンネルの数を、モデルが必要とするチャンネルサイズと一致するように上書きする値。
Number of Outputs
モデルへの出力の数。
Note
ノードは名前に基づいてモデルと一致してはいないため、出力の順序はONNXモデルでの出力の順序と一致する必要があります。
Name
モデルの出力の名前。 Setup Shapes from Model ボタンは、これにモデルからの出力名を設定しますが、名前は変更することができます。
Input & Outputタブで、この名前をノード出力の Data パラメータに入力すると、このモデル出力のデータが使用されます。
Output Tensor Shape
モデルに必要な出力のシェイプ。 全体のシェイプは、モデルが生成するエレメント数(データの合計サイズ)と一致しなければなりません。
詳細は、テンソルシェイプを参照してください。
Tensor Order
出力画像をモデルが必要とするデータレイアウト(つまり1次元テンソル)に変換する方法を指定します。
YX
ピクセルを水平にアンパックします(Xに沿って隣接するサンプルが一緒に配置されます)。
XY
ピクセルを垂直にアンパックします(Yに沿って隣接するサンプルが一緒に配置されます)。
詳細は、テンソルシェイプを参照してください。
Collate Channels Separately
ピクセル毎に複数のチャンネルを持つ画像を1次元テンソルに変換する時、RGB画像はrrrgggbbb
(個別のRGBセット)として格納され、シェイプの最初の次元はチャンネルの数になります。
ピクセル毎に複数のチャンネルを持つ画像を1次元テンソルに変換する時に、このパラメータがオフの場合、RGB画像はrgbrgbrgb
として格納され、シェイプの最終的な次元はチャンネルの数になります。
詳細は、テンソルシェイプを参照してください。
Channel Size
出力画像のチャンネルの数を、モデルが必要とするチャンネルサイズと一致するように上書きする値。
Max Batch Size
一度に評価して処理する入力の数を設定します。 複数の入力インスタンスがある場合、このパラメータを設定して入力をバッチに分割すると、モデルがそれらを連続して実行し、ピーク時のメモリ使用量を低減することができます。
このパラメータは画像内のピクセルの量に対応しているのではなく、残りの入力のサイズに依存します。 例えば、画像を単一の入力としてのみ受け入れるモデルの場合、このパラメータ値は同時にバッチ処理する画像の数になります。
Note
このパラメータは、最初の動的な次元にのみ適用されます。
Enable CUDA
CUDAを使用してGPUで推論を実行します(CUDAおよびcuDNNが必要です)。 結果を素早く得たい場合は、これをオンにします。
CUDAがセットアップされていない場合、警告が表示され、ノードはCPUで推論を実行します。
Input & Output ¶
Number of Inputs
ノードの入力の数。
Setup Shapes from Model ボタンは、各モデル入力のノード入力を作成し、モデルの Data パラメータを使用してそれらを関連付けます。
Name
ノード入力の名前。 Setup Shapes from Model ボタンがこれを設定しますが、名前は変更することができます。
Modelタブで、この名前をモデル入力の Data パラメータに入力すると、このノード入力のデータが使用されます。
Type
ノード入力のデータタイプ。
Tensor Order
入力画像をモデルが必要とするデータレイアウト(つまり1次元テンソル)に変換する方法を指定します。 この値は、他の入力と組み合わせる前にこの入力のレイアウトを変更するため、Modelタブの Data パラメータに複数の入力名を入力した場合のみ適用されます。
YX
ピクセルを水平にアンパックします(Xに沿って隣接するサンプルが一緒に配置されます)。
XY
ピクセルを垂直にアンパックします(Yに沿って隣接するサンプルが一緒に配置されます)。
詳細は、テンソルシェイプを参照してください。
Flip Input Vertically
入力画像を垂直に反転します。 これは、原点が画像の左下ではなく、左上にあると想定するモデル(2次元画像)に使用できます。
詳細は、テンソルシェイプを参照してください。
Collate Channels Separately
RGB画像をrrrgggbbb
として格納し、シェイプの最初の次元はチャンネルの数になります。
RGB画像をrgbrgbrgb
として格納し、シェイプの最終的な次元はチャンネルの数になります。
このパラメータは、他の入力と組み合わせる前にこの入力のチャンネルを分割するため、Modelタブの Data パラメータに複数の入力名を入力した場合のみ適用されます。
ピクセル毎に複数のチャンネルを持つ画像を1次元テンソルに変換する時、チャンネル値をインターリーブ(交互配置)するか、順々に配置するかを決めることができます。
詳細は、テンソルシェイプを参照してください。
Resample Size
入力画像を指定した次元にリサンプリングします(幅x高さ)。 このパラメータを使用すると、モデルに必要な入力画像のサイズ( Input Tensor Shape に基づく)に一致させることができます。
ノードが指定した次元に基づいてアスペクト比を維持するようにしたい場合、幅または高さを-1
に、その他のセルを特定の値に設定します。
例えば、幅を224
に、高さを-1
に設定すると、画像の高さのサイズは、アスペクト比を維持する次元に変更されます。
Filter
Resample Size がオンの時、これは入力画像をリサンプリングする際に使用するフィルターとなります。
Brightness Multiplier
入力画像の明るさを調整します。
これは、0から1の間の浮動小数点値ではなく、0から255の整数で表現されるカラーを必要とするモデルに役立ちます。 これらのモデルには、入力画像の明るさのスケールアップと、出力画像の明るさのスケールダウンが必要です。
1
明るさを入力のデフォルトの量に維持します。
255
明るさを255倍にスケールアップします。
1/255
明るさを1/255にスケールダウンします。
Deduce Output Shapes from Data String
Auto Deduce Output Shape がオンになっている各出力について、 Output Tensor Shape と Channel Size を設定します。 この値は、出力の Data パラメータに基づいています。
このパラメータは、複数のモデルの出力を結合する時、テンソルシェイプとチャンネルサイズを計算したい場合に役立ちます。 Setup Shapes from Model パラメータは、このパラメータを自動的にトリガーします。
Note
このパラメータはModelタブからの入力および出力データを使用するため、このパラメータを使用する前にこれらのModelパラメータを設定する必要があります。
Number of Outputs
ノードの出力の数。
Setup Shapes from Model ボタンは、各モデル出力のノード出力を作成し、ノード出力の Data パラメータを使用してそれらを関連付けます。
Name
ノード出力の名前。 Setup Shapes from Model ボタンがこれを設定しますが、名前は変更することができます。
Type
ノード出力のデータタイプ。
Infer
に設定すると、出力の Output Tensor Shape と Channel Size パラメータがデータタイプを決定します。
Data
このノード出力のデータとして使用するモデル出力の名前。 スペースまたはカンマ区切ったモデル出力名のリストを入力すると、複数の出力を組み合わせることができます。
Auto Deduce Output Shape
Deduce Output Shapes from Data String パラメータがこの出力に影響を与えるようにします。
Output Tensor Shape
出力のシェイプ。 全体のシェイプは、モデルが生成するエレメント数(データの合計サイズ)と一致しなければなりません。
詳細は、テンソルシェイプを参照してください。
Tensor Order
出力画像をモデルが必要とするデータレイアウト(つまり1次元テンソル)に変換する方法を指定します。
YX
ピクセルを水平にアンパックします(Xに沿って隣接するサンプルが一緒に配置されます)。
XY
ピクセルを垂直にアンパックします(Yに沿って隣接するサンプルが一緒に配置されます)。
詳細は、テンソルシェイプを参照してください。
Flip Output Vertically
出力画像を垂直に反転します。 これは、原点が画像の左下ではなく、左上にある必要があるモデル(2次元画像)に使用できます。
詳細は、テンソルシェイプを参照してください。
Collate Channels Separately
RGB画像をrrrgggbbb
として格納し、シェイプの最初の次元はチャンネルの数になります。
RGB画像をrgbrgbrgb
として格納し、シェイプの最終的な次元はチャンネルの数になります。
ピクセル毎に複数のチャンネルを持つ画像を1次元テンソルに変換する時、チャンネル値をインターリーブ(交互配置)するか、順々に配置するかを決めることができます。
詳細は、テンソルシェイプを参照してください。
Channel Size
出力画像のチャンネルの数を、モデルが必要とするチャンネルサイズと一致するように上書きする値。
Brightness Multiplier
出力画像の明るさを調整します。
これは、0から1の間の浮動小数点値ではなく、0から255の整数で表現されるカラーを必要とするモデルに役立ちます。 これらのモデルには、入力画像の明るさのスケールアップの後、出力画像の明るさのスケールダウンが必要です。
1
明るさを出力の量に維持します。
255
明るさを255倍にスケールアップします。
1/255
明るさを1/255にスケールダウンします。
入力 ¶
n_input#
ONNX推論を適用するソースレイヤ。 ノード入力の量とその詳細はInput & Outputタブの Number of Inputs 情報に基づいており、そのため入力は動的になります。
出力 ¶
n_output#
ONNX推論が適用される出力レイヤ。 ノード出力の量とその詳細はInput & Outputタブの Number of Outputs 情報に基づいており、そのため出力は動的になります。