TensorBoard
TensorBoard は、TensorFlow、PyTorch、Hugging Face Transformers、およびその他の機械学習プログラムをデバッグ、最適化、理解するための視覚化ツール スイートです。
TensorBoard を使用する
Azure Databricks で TensorBoard を起動する方法は、ローカル コンピューター上の Jupyter ノートブックで起動する方法と同じです。
%tensorboard
マジック コマンドを読み込み、ログ ディレクトリを定義します。%load_ext tensorboard experiment_log_dir = <log-directory>
%tensorboard
マジック コマンドを呼び出します。%tensorboard --logdir $experiment_log_dir
TensorBoard サーバーが起動し、ノートブックにユーザー インターフェイスがインラインで表示されます。 また、TensorBoard を新しいタブで開くためのリンクも表示されます。
次のスクリーンショットは、設定されたログ ディレクトリで 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 の
#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 でレンダリングできるようになります。