MRが楽しい

MRやVRについて学習したことを書き残す

Unity AIのドキュメントを読む その48(モデルビジュアライザーでモデルを検査する)

本日は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

ノードの種類を理解する

グラフ内の各ノードは以下のいずれかを表します。

ノードタイプ 説明
入力 実行時にユーザーがモデルに提供するテンソル
出力 モデルが最終結果として生成するテンソル
レイヤー 入力テンソルを出力テンソルに変換するモデル演算

プロパティパネル

プロパティパネルにはグラフ内で選択した内容に基づいてコンテキスト固有の情報が表示されます。
ノード(レイヤー、入力、または出力)を選択すると、パネルには以下の情報が表示されます。

  • ノードタイプ
  • 形状とデータ型
  • 演算固有の属性
  • インデックスと名前
  • 定数の場合:値のプレビュー(利用可能な場合)

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

  • テンソルの形状、データ型、インデックス、名前
  • テンソルを入力として使用するすべてのレイヤーへの参照


コントロールスキームの設定

モデルビジュアライザーの操作方法を設定するには[Project Settings -> Inference Engine -> Model Visualizer]に移動します。
モデルビジュアライザーの設定ページでは[Canvas Control Scheme]に以下の2つのオプションがあります。

モード 説明
モダン(デフォルト) FigmaやSketchに似た操作スキームを使用します
エディター Unityシェーダーグラフのインタラクションモデルと一致します