On this page |
TOPコンテキスト(通称、PDG)は、機械学習のすべてのステージのレシピを作成することができます。 TOPネットワークを使用する場合、ステージは、データセットの生成、前処理、Rawデータセットの書き込み、そのRawデータセットを使用したトレーニング、ハイパーパラメータのバリエーション化、一連の入力に対してトレーニング済みモデルの実行の流れになります。
TOPネットワークは、これらすべてのステージをステップバイステップのレシピで接続することができます。 このレシピ内の最後のTOPノードをクックすることで、手動で様々なノードに移動してはその出力をディスクに書き出すといった面倒なことをすることなく、必要なすべての手順が自動的に行なわれていきます。
便利なTOPノード ¶
Geometry Import TOPは、ジオメトリ内に存在するプリミティブの数に基づいて、あるタイプの計算を繰り返して実行することができます。
各プリミティブは、生成または前処理されるデータセットの単一データポイントに呼応することができます。
これによって、TOPでカスタムエクスプレッションを記述することなく、SOPでそのデータソースの近くのデータセットのサイズを明確に制御することができます。
Geometry Import TOPは、プリミティブ毎に1個のワークアイテムを生成します。
Geometry Import TOPで参照されているジオメトリがTOPネットワーク以前のステージで作成されている場合、 Generate When パラメータを必ず All Upstream Items are Cooked に設定してください。
Attribute Create TOPを使用して、各ワークアイテムにデータポイントインデックスを割り当てます。このデータポイントインデックスをSOPネットワークから参照することで、各データポイントをクックすることができます。
ROP Fetch TOPは、各データポイントがディスクに書き出されるようにするのに役立ちます。
その後に、別の
ROP Fetch TOPを追加して、マージされたデータセット全体がファイルに書き込まれるようにします。
PDGでデータセットの各データポイントを単一ワークアイテムとして生成する別の方法では、SOPでForループを使用してデータセット全体を生成することができます。
この場合では、ROP Fetch TOPは、データセット全体を単一ジオメトリの形式でファイルに書き出すのに役立ちます。
また、TOPの各ワークアイテムがデータポイントのバッチに呼応するバッチ手法を使用することもできます。
各バッチは、SOPでForループを使用してクックすることができます。
トレーニング用のTOPノード ¶
データが書き出された後は、Python Virtual Environment TOPと
Python Script TOPを組み合わせて使用することで、トレーニングを進めることができます。
これによって、Pytorchを使用する独自のPythonトレーニングスクリプトを実行して、モデルをONNXにエクスポートすることができます。
回帰(Regression)MLを実行するために、より特化したML Regression Train TOPを使用します。
あなたのMLアプリケーションがサンプルベースのフレームワークの範囲外であっても、このトレーニングノードとそれが参照するスクリプトは、Houdiniで動作するあなた独自のMLトレーニングスクリプトを記述するための良い開始点になります。
ROP Geometry Raw Output SOPを使用すると、トレーニングスクリプトから参照可能なファイルにデータセットを書き出すことができます。
サンプルベースのMLツールセットは、独自の出力ノードの
ML Example Output SOPを持っています。
MLトレーニングは、隠れ層(Hidden Layer)の数や重み減衰率パラメータなどの様々なハイパーパラメータに対して再実行することができます。
記述するスクリプトによっては他にもパラメータがあります。
これらのハイパーパラメータの様々な組み合わせに対してTOPレシピのトレーニングステージを自動的に繰り返すには、トレーニングスクリプトの上流でWedge TOPを使用します。
HQueueを使用したファーム上でのML ¶
HQueue Schedulerを使用すれば、ファーム上でデータ生成とトレーニングを全体で実行することができます。
以下の設定を変更することを推奨します:
-
SchedulerタブのHFSセクションにあるPythonパラメータを From HFS に設定します。これによって、Houdiniに同梱されているPythonバージョンがトレーニングスクリプトを実行するようになります。