本日はUnityの技術調査枠です。
Unity AIのドキュメントを読みながら実際に操作を試して記事に残します。
Unity AI
以下のUnity AIのドキュメントを試しながら実行時のキャプチャをしていきます。
docs.unity3d.com
モデルビジュアライザーでモデルを検査する
モデルビジュアライザーを使用するとUnityエディター内で機械学習 (ML) モデルの内部構造をノードベースのグラフとして確認できます。
インポート後にモデルがどのように最適化されたかを検査してグラフ全体のデータフローと演算の流れを理解するのに役立ちます。
モデルビジュアライザーを使用すると以下のことが可能になります。
- インポート時に推論エンジンがモデルをどのように変換するかを確認できるため、アプリケーションで実行される実際の構造を検査できます。
- モデルの構造をノードベースで視覚的に表示して複雑なアーキテクチャを理解できます。
- データフローとテンソルの接続をトレースして形状の不一致、レイヤーの切断、予期しない演算などの問題をデバッグできます。
- 入力、出力、定数テンソルを調べてモデルが使用するデータとその処理方法を理解します。
- モデルを実行する前に冗長な出力、接続の欠落、異常なランタイム動作などの問題を検出できます。
Tips
モデルビジュアライザーは読み取り専用です。
モデルを確認することはできますが編集することはできません。
モデルビジュアライザーの使い方
モデルビジュアライザーを使用してモデルを確認するには以下の手順に従ってください。
Assetsウィンドウでモデルアセットをダブルクリックします。
またはモデルアセットを選択し、Inspectorビューから[Visualize Model]を選択します。

マウスを使用して、グラフのパン、ズーム、移動を行えます。
グラフの最初のノードを中心にビューを再フレームするにはFキーを押します。

ノード(モデルレイヤー、入力、または出力を表す)またはエッジ(テンソルを表す)を選択して検査します。
選択した要素はハイライト表示されてプロパティパネルに表示されます。
このパネルには以下の詳細情報が表示されます。
- 入力、出力、定数
- データ型、形状、インデックス
- 特定の値または出力を使用するレイヤー

グラフのエッジはテンソルを表します。テンソルは1つの操作(レイヤー)によって生成され、他のレイヤーへの入力として使用されるデータです。
1つのテンソルが複数の下流レイヤーへの入力として使用される場合もあります。
このような場合、モデルビジュアライザーでは1つのノードから複数の矢印が表示されて共有されていることを示します。

特定のノードまたはテンソルを検索するには検索バーを開きます。
モデルビジュアライザーウィンドウの検索アイコンを選択します。

レイヤー名またはインデックスを入力します。入力または出力に関連付けられたノード名とインデックスを検索できます。
一致するノードはグラフ上でハイライト表示されます。

ショートカットキー
モデルビジュアライザーはモダン(デフォルト)とエディターの2つのインタラクションモードをサポートしています。
アクティブなコントロールスキームは[Project Settings -> Inference Engine -> Model Visualizer]で変更できます。

| アクション | エディタースキームのショートカット | モダンスキームのショートカット |
|---|---|---|
| パン | Alt + マウス左クリック | スペース + マウス左クリック |
| パン(代替) | マウス中クリック | マウス中クリック |
| ズーム | マウススクロール | Ctrl+マウススクロール |
| ズームリセット | Ctrl + 0 | Ctrl + 0 |
ノードの種類を理解する
グラフ内の各ノードは以下のいずれかを表します。
| ノードタイプ | 説明 |
|---|---|
| 入力 | 実行時にユーザーがモデルに提供するテンソル |
| 出力 | モデルが最終結果として生成するテンソル |
| レイヤー | 入力テンソルを出力テンソルに変換するモデル演算 |
プロパティパネル
プロパティパネルにはグラフ内で選択した内容に基づいてコンテキスト固有の情報が表示されます。
ノード(レイヤー、入力、または出力)を選択すると、パネルには以下の情報が表示されます。
- ノードタイプ
- 形状とデータ型
- 演算固有の属性
- インデックスと名前
- 定数の場合:値のプレビュー(利用可能な場合)

エッジ(テンソル)を選択すると、パネルには以下の情報が表示されます。

