メインコンテンツまでスキップ

TensorBoard

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

TensorBoard を使用する​

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

  1. %tensorboard magicコマンドをロードし、ログディレクトリを定義します。

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

    %tensorboard --logdir $experiment_log_dir

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

    次のスクリーンショットは、入力されたログ ディレクトリで開始された TensorBoard UI を示しています。

    TensorBoard UI が入力されたログ ディレクトリで開始されました

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

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

TensorBoard のログとディレクトリ​

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

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

TensorBoard の公式ドキュメントをお読みになり、TensorBoard を使用して機械学習プログラムの情報をログに記録する作業を開始してください。

TensorBoard プロセスの管理​

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

クラスターで現在実行されている TensorBoard サーバーを、対応するログディレクトリとプロセスIDとともに一覧表示するには、 TensorBoard ノートブックモジュールから実行notebook.list()。

既知の問題​

  • インライン TensorBoard UI は iframe 内にあります。 ブラウザのセキュリティ機能により、新しいタブでリンクを開かない限り、UI 内の外部リンクが機能しません。
  • TensorBoard の --window_title オプションは、Databricks でオーバーライドされます。
  • デフォルトでは、TensorBoard はリッスンするポートを選択するためにポート範囲をスキャンします。 クラスターで実行されている TensorBoard プロセスが多すぎると、ポート範囲内のすべてのポートが使用できなくなる可能性があります。 この制限を回避するには、 --port 引数でポート番号を指定します。 指定するポートは 6006 から 6106 の間である必要があります。
  • ダウンロードリンクを機能させるには、TensorBoardをタブで開く必要があります。
  • TensorBoard 1.15.0 を使用している場合、プロジェクター タブは空白です。回避策として、プロジェクターのページに直接アクセスするには、URLの #projector を data/plugin/projector/projector_binary.htmlに置き換えることができます。
  • TensorBoard 2.4.0 には、アップグレードした場合に TensorBoard のレンダリングに影響を与える可能性のある 既知の問題 があります。
  • TensorBoard 関連のデータを DBFS または UC ボリュームにログ記録している場合、 No dashboards are active for the current data setのようなエラーが表示されることがあります。このエラーを解決するには、writerを使用してデータをログに記録した後、writer.flush()とwriter.close()を呼び出すことをお勧めします。これにより、ログに記録されたすべてのデータが適切に書き込まれ、TensorBoard でレンダリングできるようになります。