On this page |
Houdiniでは、合成データセットを生成および前処理するのに様々な手法を使用することができます。 これらの手法はそれぞれSOPまたはTOPの異なる機能に依存しています。 以下の機能は、データセットを処理するメソッドを有効にします:
-
TOPワークアイテム
-
プレイバー上のフレーム
-
SOP Invoke
-
SOP Forループ
MLのすべてのアプリケーションでデータポイントを処理するための最良の方法は1つではありません。 処理速度、メモリ使用量、侵入性、セットアップの簡易性に関しては、それぞれの手法に独自の長所と短所があります。
TOPワークアイテム ¶
データセット内の各データポイントがワークアイテムに呼応します。 SOPのネットワークは、ワークアイテム毎に別々のプロセスで再クックされます。 このセットアップは、通常では既存のプロシージャルネットワークに最小限の変更を加えるだけで済みます。 サンプルセットからどの入力をクックするかを制御する単一TOPノードを挿入するだけで十分な場合があります。
単一データポイントが生成に数十秒かかるほど負荷が重い場合は、ワークアイテム毎に単一データポイントを処理するのが最適な手法です。 この手法は、最小限の変更で既存のセットアップに組み込むことができます。
単一のデータポイントの計算が高速な場合、ワークアイテム毎に新しいプロセスを開始するオーバーヘッドがデータセットの準備にかかる時間の大部分を占めます。 その場合、 SOPのForループ または SOPのバッチのForループ の別の手法の方が上手く動作する場合があります。
プレイバー上のフレーム ¶
各フレームは、フレームに呼応し、データセットのデータポイントのインデックスです。 これは、軽量なデータポイント生成にも効率が良いです。
このセットアップは必ずしも適用できるとは限りません。 例えば、各データポイントがフレームを扱う必要がある時間依存のシミュレーションを要する場合には動作しないです。 データポイントがたくさんある場合、フレームの扱いがもっと面倒になります。
SOP Invoke ¶
データセットの生成と前処理をセットアップするのに優れた方法です。 単一データポイントの処理は、コンパイルされたブロック内に配置します。 これは、コンパイル可能なSOPノードにのみ制限されます。
SOP Forループ ¶
SOPで For Begin/End構造 を使用するのは、データポイントを処理する最も高速な方法の1つです。 ただし、メモリ使用量に関してはデメリットになります。 圧縮されていない(前処理されていない)データを処理する場合、圧縮されていないデータセット全体が一度にメモリに保持されますが、これは不可能になる場合があります。
SOPのバッチのForループ ¶
これにより、ワークアイテム毎に複数のデータポイントをクックすることで、TOPからワークアイテムをクックするオーバーヘッド負荷をちゃらにすることができます。 各ワークアイテムは、SOPでFor Begin/End構造をアクティブにします。 このハイブリッドな手法により、For Begin/End構造でクックされるデータポイントの数が増えすぎないようにすることで、メモリに保持されるSOPデータ量を制限することができます。