Share via


TensorBoard

TensorBoard は、TensorFlow、PyTorch、Hugging Face Transformers、およびその他の機械学習プログラムをデバッグ、最適化、理解するための視覚化ツール スイートです。

TensorBoard を使用する

Azure Databricks で TensorBoard を起動する方法は、ローカル コンピューター上の Jupyter ノートブックで起動する方法と同じです。

  1. %tensorboard マジック コマンドを読み込み、ログ ディレクトリを定義します。

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. %tensorboard マジック コマンドを呼び出します。

    %tensorboard --logdir $experiment_log_dir
    

    TensorBoard サーバーが起動し、ノートブックにユーザー インターフェイスがインラインで表示されます。 また、TensorBoard を新しいタブで開くためのリンクも表示されます。

    次のスクリーンショットは、設定されたログ ディレクトリで TensorBoard UI を起動した状態を示しています。

    設定されたログ ディレクトリで開始した TensorBoard UI

TensorBoard のノートブック モジュールを直接使用し、TensorBoard を起動することもできます。

from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))

TensorBoard ログとディレクトリ

TensorBoard では、TensorBoard または PyTorch の TensorBoard コールバックや関数によって生成されたログを読み取ることで、機械学習プログラムを視覚化します。 他の機械学習ライブラリのログを生成するには、TensorFlow ファイル ライターを使用してログを直接書き込みます (TensorFlow 2.x の Module: tf.summary を参照してください。TensorFlow 1.x の以前の API の場合は Module: tf.compat.v1.summary を参照してください)。

Databricks では、実験ログが確実に保存されるように、エフェメラル クラスター ファイル システムではなく、クラウド ストレージにログを書き込むことをお勧めしています。 実験ごとに、TensorBoard を一意のディレクトリで起動します。 ログを生成する実験で機械学習コードを実行するときは毎回、実験ディレクトリのサブディレクトリに書き込むように TensorBoard コールバックまたはファイル ライターを設定します。 そうすることで、TensorBoard UI のデータが実行ごとに分けられます。

TensorBoard を使用し、機械学習プログラムの情報をログする方法については、公式の TensorBoard ドキュメントをお読みください。

TensorBoard プロセスの管理

ノートブックをデタッチした場合や REPL を再起動した場合 (ノートブックの状態をクリアした場合など)、Azure Databricks ノートブック内で開始した TensorBoard プロセスは終了しません。 TensorBoard プロセスを手動で中止するには、%sh kill -15 pid を使用して終了シグナルを送信します。 TensorBoard プロセスが不正終了すると、notebook.list() が破損することがあります。

クラスターで実行中の TensorBoard サーバーと、対応するログ ディレクトリおよびプロセス ID を一覧表示するには、TensorBoard ノートブック モジュールから notebook.list() を実行します。

既知の問題

  • インラインの TensorBoard UI は iframe 内にあります。 ブラウザーのセキュリティ機能を使用すると、新しいタブでリンクを開いた場合を除き、UI 内の外部リンクが動作しなくなります。
  • TensorBoard の --window_title オプションは、Azure Databricks でオーバーライドされます。
  • 既定では、TensorBoard では監視対象のポートを選択するためのポート範囲がスキャンされます。 クラスターで実行されている TensorBoard プロセスが多すぎる場合、ポート範囲内のすべてのポートが使用できなくなることがあります。 この制限を回避するには、--port 引数を使用してポート番号を指定します。 指定するポートは、6006 - 6106 の範囲である必要があります。
  • ダウンロード リンクが機能するためには、TensorBoard をタブで開く必要があります。
  • TensorBoard 1.15.0 を使用する場合、[Projector] (プロジェクター) タブが空白になります。 回避策として、プロジェクター ページに直接アクセスするために、URL の #projectordata/plugin/projector/projector_binary.html で置き換えることができます。
  • TensorBoard 2.4.0 には、アップグレードすると TensorBoard のレンダリングに影響が及ぶ可能性がある既知の問題 があります。