On this page |
機械学習は、たいていの場合、2つの異なるステージ(トレーニングと推論)で構成されます。 トレーニングは、問題を解決できるモデルを構築する工程です。 推論は、そのモデルを使用して問題を実際に解決します。
このノードは、推論を実行します。 これは、入力のボリュームとポイントデータに対してトレーニング済みのモデルを使用して、機械学習された解を生成します。
トレーニングを行なうシステムがたくさん存在し、たいていの場合、それらのシステムは膨大な依存関係を必要とします。 しかし、その結果のモデルはいくつかの単純な操作のみで構成されている場合が多いです。 ONNX 形式は、PyTorchやTensorFlowでトレーニングされたモデルを共通のフレームワーク内で使用できるようにしたファイル形式および推論エンジンです。
ONNX推論モデルは、いくつかの入力と出力で構成されています。 各入力と出力はテンソルです。 このテンソルとは、多次元データのしゃれた言い方です。 これは、1次元の場合は配列、2次元の場合は画像、3次元の場合はボリュームを指します。 そこからさらに高い次元を一般化することができます。
Houdiniは3次元を超えるオブジェクトを持っていないので、このセットアップでは、大きな1次元配列を埋めた入力データを指定します。 そして、これが指定した高次元テンソルに再形成されます。
ランダムなポーズから学習することでリニアブレンドスキニングをどのように改善することができるのかを示したサンプルについては、コンテンツライブラリからML Deformerファイルをダウンロードしてください。
TOPsを使用して地形データを生成し、次に、そのデータを使用してMLモデルをトレーニングすると、アーティストの簡単なスケッチからどのように新しい地形を生成することができるのかを示したサンプルについては、コンテンツライブラリからML Terrainファイルをダウンロードしてください。
Note
ONNXモデルには、テンソル以外のタイプの入力と出力を格納することができますが、 現在のところ、このノードはテンソルのみをサポートしています。
パラメータ ¶
Model File
読み込む.onnx
ファイルの名前。
入力と出力は、そのONNXファイルの設定と一致している必要があります。
Reload Model
.onnx
ファイルを強制的にリロードします。
Setup Shapes from Model
このコールバックは、.onnx
ファイルから、入力と出力の数、指定されたシェイプの内容を読み込みます。
これはそれらを適切に初期化します。
シェイプサイズの動的な軸には-1が入ります。
Keep Input
指定したジオメトリ上でIn-Place(記憶領域を確保しない)で動作します。 これは、生成されるポイント数が入力のポイント数と一致する必要がありますが、ポイント毎の推論がIn-Place(記憶領域を確保しない)で動作することができます。
Number of Inputs ¶
Name
入力の意味的な名前。 ONNXモデルへの実際の接続は、名前ではなく、インデックスで行なわれますが、これを使用することで、入力にラベルを付けることができます。 Setup Shapes from Model ボタンは、モデルからの入力名をここに設定します。
Input Tensor Shape
入力のシェイプ。
動的な軸には-1
を使用します。
最初の0
軸でシェイプを終了します。
全体のシェイプは、入力内のエレメント数と一致しなければなりません。
Input Type
この入力のデータのソース。
Volume
名前にマッチした入力のすべてのボリュームが連結されます。 それらのボリュームすべてが同じ解像度で同じタプルサイズでなければなりません。
Detail Attribute
指定したDetailアトリビュートが1次元ソースとして扱われます。
Point Attribute
すべてのポイント上のこのアトリビュートが連結されて入力を形成します。
Primitive Attribute
すべてのプリミティブ上のこのアトリビュートが連結されて入力を形成します。
Volume Order
ボリュームを1次元テンソルに展開する時、XサンプルまたはZサンプルをお互い近い位置に配置することができます。
ZYX
ボリュームのZ優先の抽出。 隣接するXサンプルが一緒に配置されます。
XYZ
ボリュームのX優先の抽出。 隣接するZサンプルが一緒に配置されます。
Collate Channels Separately
複数のボリュームまたはベクトルボリュームを1次元テンソルに変換する時、 それらをインターリーブ(交互配置)するか、ボリュームを順々に配置するのか決めることができます。 これを無効にすると、RGBボリュームはrgbrgbrgbの順番に格納されます。 これを有効にすると、RGBボリュームはrrrgggbbbの順番に格納されます。 特に、これを無効にした場合、シェイプの最終的な次元は、ボリュームとコンポーネントの数になるはずです。 これを有効にした場合、シェイプの最終的な次元は、最初の次元になります。
Data
抽出するボリュームまたはアトリビュートの名前。
ここには複数のアトリビュートを指定することができます。
その場合、作成されるテンソルでは、それらのアトリビュートが丁合(Collated)されます。
例えば、P Cd
を指定すると、そのテンソルには、ポイント毎にP.x P.y P.z Cd.x Cd.y Cd.z
を繰り返して入力されます。
テンソル内の順序は、ここにリストされている順序と一致します。 ボリュームの場合、パターンを使用することができ、その場合には、そのパターン内でボリュームはジオメトリ内の順序に従って丁合(Collated)されます。
Number of Outputs ¶
Name
出力の意味的な名前。 ONNXモデルへの実際の接続は、名前ではなく、インデックスで行なわれますが、これを使用することで、出力にラベルを付けることができます。
Output Tensor Shape
入力のシェイプ。
動的な軸には-1
を使用します。
最初の0
軸でシェイプを終了します。
全体のシェイプは、このモデルで生成されるエレメント数と一致しなければなりません。
Output Type
この出力のデータの宛先。
Volume
ボリュームが作成され、順々に各ボリュームにテンソルデータが入力されます。
Detail Attribute
指定したDetailアトリビュートに平坦化されたテンソルが入力されます。
Point Attribute
出力テンソルが順々に各ポイントのアトリビュートに書き出されます。
Volume Order
ボリュームを1次元テンソルに展開する時、XサンプルまたはZサンプルをお互い近い位置に配置することができます。
ZYX
ボリュームのZ優先の抽出。 隣接するXサンプルが一緒に配置されます。
XYZ
ボリュームのX優先の抽出。 隣接するZサンプルが一緒に配置されます。
Collate Channels Separately
複数のボリュームまたはベクトルボリュームを1次元テンソルに変換する時、 それらをインターリーブ(交互配置)するか、ボリュームを順々に配置するのか決めることができます。 これを無効にすると、RGBボリュームはrgbrgbrgbの順番に格納されます。 これを有効にすると、RGBボリュームはrrrgggbbbの順番に格納されます。 特に、これを無効にした場合、シェイプの最終的な次元は、ボリュームとコンポーネントの数になるはずです。 これを有効にした場合、シェイプの最終的な次元は、最初の次元になります。
Data
作成するボリュームまたはアトリビュートの名前。
ここには、複数のアトリビュート/ボリュームを指定することができます。
その場合、指定した順番でテンソルの最後の次元がそれらに分割されます。
デフォルトでは、それぞれfloatになったtupleサイズになりますが、:
を使用することで、特定のサイズを指定することができます。
例えば、depth N:3
と指定すると、4-float幅のテンソルがdepth
スカラーとN
ベクトルのアトリビュートに変換されます。
Max Batch Size
通常では、モデルは最初の次元を動的にし、バッチを制御するように構成されています。 これは、トレーニングを改善するのによく行なわれていますが、ポイントベースのモデルなど、たいていの場合、推論にも非常に役立ちます。
通常では、動的な軸は入力データのサイズに拡張され、1回のパスで実行されます。 ただし、これは大量のメモリが必要になる可能性があるので、このオプションによって、一度に処理可能なエレメントの数を制限することができ、 代わりに、モデルは連続したバッチで再実行されることになります。
Note
バッチの対象となる最初の次元のみがこの方法で処理されます。
Enable CUDA
GPU上での推論の実行を有効にします(CUDAとcuDNNが必要です)。
ローカル変数 ¶
See also |