TensorBoard
TensorBoard は、TensorFlow、PyTorch、Hugging Face Transformers、およびその他の機械学習プログラムをデバッグ、最適化、および理解するための一連の視覚化ツールです。
TensorBoardを使用する
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 コールバックによって生成されたログと 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 でレンダリングできるようになります。