本日はUnityの技術調査枠です。
Unity AIのドキュメントを読みながら実際に操作を試して記事に残します。
Unity AI
以下のUnity AIのドキュメントを試しながら実行時のキャプチャをしていきます。
docs.unity3d.com
モデルの検査
ランタイムモデルを検査して入力、出力、レイヤーを表示できます。
これはデバッグ、モデル構造の理解、インポート後のモデルデータの検証に役立ちます。
モデル入力の取得
モデルの入力を検査するにはランタイムモデルのinputsプロパティを使用します。
これにより、全ての入力テンソル(名前とシェイプを含む)のリストが返されます。
以下は入力テンソルを確認するサンプルコードです。
using UnityEngine; using System.Collections.Generic; using Unity.InferenceEngine; public class GetModelInputs : MonoBehaviour { public ModelAsset modelAsset; void Start() { Model runtimeModel = ModelLoader.Load(modelAsset); List<Model.Input> inputs = runtimeModel.inputs; // Loop through each input foreach (var input in inputs) { // Log the name of the input, for example Input3 Debug.Log(input.name); // Log the tensor shape of the input, for example (1, 1, 28, 28) Debug.Log(input.shape); } } }

モデル出力を取得する
ランタイムモデルのoutputsプロパティを使用してモデルの出力レイヤーの名前を取得します。
以下は出力レイヤーを確認するサンプルコードです。
using UnityEngine; using System.Collections.Generic; using Unity.InferenceEngine; public class GetModelOutputs : MonoBehaviour { public ModelAsset modelAsset; void Start() { Model runtimeModel = ModelLoader.Load(modelAsset); List<Model.Output> outputs = runtimeModel.outputs; // Loop through each output foreach (var output in outputs) { // Log the name of the output Debug.Log(output.name); } } }

レイヤーとレイヤープロパティの取得
ランタイムモデルのlayersプロパティを使用してモデル内のニューラルネットワークレイヤーを取得します。
各レイヤーには入力識別子と出力識別子、およびその他の関連プロパティが含まれます。
モデルをグラフとして開く
ONNXモデルをグラフとして開くには以下の手順に従います。
Netronで開く
ニューラルネットワーク用のサードパーティ製ビューアであるNetronをインストールして利用します。
github.com
bluebirdofoz.hatenablog.com
Unityエディターで開く
Unityエディターでは以下のいずれかの方法でNetronでモデルを開くことができます。
- プロジェクトウィンドウでモデルアセットをダブルクリックします。

- モデルアセットを選択しInspectorウィンドウから[Visualize Model]を選択します。
