| On this page |
TOPコンテキスト(通称、PDG)は、機械学習のすべてのステージを含んだプロセスを作成することができるので、完全に自動化されたMLパイプラインを構築することができます。 これらのステージには以下の処理が含まれています:
-
データセットの生成
-
前処理
-
データセットのディスクへの書き込み
-
ディスクに書き込まれたデータセットを用いたトレーニング
-
様々なハイパーパラメータを用いた反復トレーニング
-
未知入力セットに対するトレーニング済みモデルの適用
TOPネットワークでは、これらのすべてのステージを段階を追って進めることができます。 最後の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 SOPを使用して、各ワークアイテムにデータポイントインデックスを割り当てれば、
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 Train Regression TOPを使用することを推奨します。
たとえMLアプリケーションがRegression MLの範囲外であっても、
ML Train Regression TOPの根底にあるスクリプト(
$HHP/hutil/ml/regressionにあります)は、Houdiniで動作する独自のMLトレーニングスクリプトを書き始める上で役に立ちます。
ROP Geometry Raw Output SOPを使用することで、データセットを、トレーニングスクリプトから参照可能なファイルに書き出すことができます。
サンプルベースのMLツールセットには、より特化した出力ノードの
ROP ML Example Raw Output SOPが用意されています。
MLトレーニングは、隠れ層(Hidden Layer)の数やWeight Decayパラメータなどの様々なハイパーパラメータに対して再実行することができます。
作成するスクリプトによっては他のパラメータもあります。
TOPプロセスのトレーニングステージをこれらのハイパーパラメータの様々な組み合わせで自動的に繰り返すには、TOPでWedgeノードを1つ以上使用すると良いでしょう。
HQueueを使用したファームでのML ¶
HQueue Scheduler TOPを使用することで、ファーム上でデータ生成とトレーニングの全工程を実行することができます。
実行前に以下の設定を変更することを推奨します:
-
Scheduler/HFSで、Pythonパラメータを From HFS に設定します。これによって、Houdiniに同梱されているPythonバージョンでトレーニングスクリプトが確実に実行されます。