本日はUnityの技術調査枠です。
Unity AIのドキュメントを読みながら実際に操作を試して記事に残します。
Unity AI
以下のUnity AIのドキュメントを試しながら実行時のキャプチャをしていきます。
docs.unity3d.com
ONNXへのファイルのエクスポートと変換
推論エンジンはOpen Neural Network Exchange (ONNX)形式または.sentisシリアル化形式でファイルをインポートします。
モデルが別の形式の場合はUnityにインポートする前にONNX形式に変換してください。
機械学習フレームワークからONNXファイルをエクスポートする
ほとんどの機械学習フレームワークではモデルをONNX形式でエクスポートできます。
一般的な機械学習フレームワークからONNX形式のファイルをエクスポートするには以下のドキュメントを参照してください。
PyTorchからONNXへのモデルのエクスポート
https://pytorch.org/tutorials/advanced/super_resolution_with_onnxruntime.html
・TensorFlow、Keras、Tensorflow.jsおよびTfliteモデルをONNXに変換する
https://github.com/onnx/tensorflow-onnx
Tips
推論エンジンとの互換性を確保するため、エクスポート時にONNX opsetバージョンを15に設定してください。
TensorFlowファイルをONNX形式に変換する
TensorFlowはモデルを保存するために2つのファイル形式、SavedModelとCheckpointsを使用します。
モデルファイル(SavedModel)
TensorFlowはモデルをSavedModelファイルに保存します。
SavedModelファイルにはトレーニング済みのパラメータと計算を含む完全なTensorFlowプログラムが含まれています。
SavedModelのファイル拡張子は.pbです。
SavedModelからONNXファイルを生成するにはtf2onnxツールを使用します。
これはフルパス名での使用に最適なコマンドラインツールです。
github.com
チェックポイント(Checkpoints)
チェックポイントにはモデルのパラメータのみが含まれます。
TensorFlowのチェックポイントは以下の2つのファイル形式で構成されます。
- グラフを保存するファイル(拡張子 .ckpt.meta)。
- 重みを保存するファイル(拡張子 .ckpt)。
グラフと重みの両方のファイル形式がある場合はtf2onnxツールを使用してONNXファイルを作成してください。
.ckptファイルのみの場合はモデルを構築し、重みを読み込むPythonコードを探してください。
その後、モデルをONNXにエクスポートしてください。
PyTorch ファイルを ONNX 形式に変換する
モデルファイル
PyTorchモデルファイルは.ptというファイル拡張子を持ちます。
Pythonでモデルをロードします。モデルをONNXファイルとしてエクスポートします。
モデルをエクスポートする際は、Opset 15以降を使用することをお勧めします。
.ptファイルにモデルグラフが含まれていない場合は、モデルを構築して重みをロードするPythonコードを探してください。
その後、モデルをONNX形式にエクスポートしてください。
チェックポイント
PyTorchではチェックポイントを作成して任意の時点におけるモデルの状態を保存できます。
チェックポイントファイルは通常、.tarまたは.pthという拡張子で表されます。
チェックポイントファイルをONNX形式に変換するには、モデルを構築して重みを読み込むPythonコードを探してください。
その後、モデルをONNXにエクスポートしてください。