TensorBoard を使用すると、Deep Learning Containers (DLC) ジョブのトレーニングメトリクス、モデルの重み、サンプル出力を可視化できます。TensorBoard インスタンスを作成して、トレーニング結果を対話的に探索および比較できます。
前提条件
開始する前に、次の要件が満たされていることを確認してください。
-
少なくとも 1 つのデータセットがマウントされた DLC トレーニングジョブ ([概要] タブで確認できます)。 サポートされているストレージタイプ: Object Storage Service (OSS) および Apsara File Storage NAS。
-
トレーニングスクリプトに TensorFlow の
SummaryWriterを組み込み、マウントされたデータセット内のディレクトリにログを書き込むこと。
トレーニングログの書き込み
トレーニングスクリプトに SummaryWriter を追加し、マウントされたデータセット内のパスにログを書き込みます。トレーニング後に writer を閉じて、すべてのログデータがフラッシュされるようにします。
例:
-
OSS データセットのエンドポイント:
oss://your-bucket-name.oss-region-internal.aliyuncs.com/dlc-training-data/ -
コンテナ内のデータセットのマウントパス:
/mnt/data/ -
ログの出力ディレクトリ:
/mnt/data/output/runs
import tensorflow as tf
# ログディレクトリを指定して SummaryWriter を初期化
log_dir = "/mnt/data/output/runs"
writer = tf.summary.create_file_writer(log_dir)
# メトリクスのログを含むトレーニングループ
for epoch in range(num_epochs):
train_loss = calculate_loss()
train_accuracy = calculate_accuracy()
with writer.as_default():
# スカラーメトリクスをログに記録
tf.summary.scalar("train_loss", train_loss, step=epoch)
tf.summary.scalar("train_accuracy", train_accuracy, step=epoch)
# 10エポックごとにヒストグラムと画像をログに記録
if epoch % 10 == 0:
tf.summary.histogram("model_weights", model.weights, step=epoch)
tf.summary.image("prediction_samples", sample_predictions, step=epoch)
# すべてのログが保存されるように writer を閉じる
writer.close()
print(f'Training completed successfully. Logs saved to: {log_dir}')
SummaryWriter のパス (/mnt/data/output/runs) は、TensorBoard インスタンスの作成時に指定する[Summary 目次]です。
TensorBoard インスタンスの作成
-
PAI コンソールにログインします。上部メニューでリージョンを選択し、ワークスペースを選択します。[Enter Deep Learning Containers (DLC)] をクリックします。
-
対象のジョブの 操作 列で TensorBoard をクリックします。パネルで Tensorboardの新規作成 をクリックします。
-
Tensorboardの新規作成 ページでパラメーターを設定し、OK をクリックします。
基本情報
| パラメーター | 説明 |
|---|---|
| [名前] | TensorBoard インスタンスの名前。 |
| [データセットの設定] | 構成タイプ を選択し、[サマリーパス] (SummaryWriter を使用してトレーニングコードで定義した TensorBoard サマリーログを含むディレクトリ) を指定します。 |
次の表は、[Configuration Type] のオプションを説明します。
| オプション | 説明 |
|---|---|
| [データセット別] | データセットを選択し、データセット内のサマリーディレクトリの相対パスを入力します。 |
| [Object Storage Service (OSS) 別] | OSS のストレージパスを選択し、OSS 内のサマリーディレクトリの相対パスを入力します。 |
| [タスク別] | DLC ジョブを選択し、コンテナ内のログファイルの完全パスを入力します。 |
リソース構成
| リソースタイプ | 説明 |
|---|---|
| [無料リソース] | システムが提供する無料リソースです。各インスタンスは最大 2 vCPU と 4 GiB のメモリを使用できます。クォータを解放するには、無料リソースで実行中のインスタンスを無効にしてから、解放されたクォータを新しいインスタンスに使用します。 |
| [General Computing] | パブリックリソース または [Resource Quota] を選択します。詳細は次の表をご参照ください。 |
次の表は、[General Computing] のオプションを説明します。
| オプション | 説明 |
|---|---|
| [Public Resources] | 従量課金制です。汎用コンピューティングのみがパブリックリソースを使用できます。ワークロードの要件に基づいてインスタンスタイプを選択します。 |
| [Resource Quota] | サブスクリプション課金制です。このオプションを選択する前に、コンピューティングリソースを購入し、クォータを作成する必要があります。このオプションはホワイトリストに登録されているユーザーのみが使用できます。有効化するには、アカウントマネージャーにお問い合わせください。 |
[Resource Quota] を使用する場合は、次のパラメーターを設定します。
| パラメーター | 説明 |
|---|---|
| [優先度] | TensorBoard インスタンスの優先度です。有効な値は 1~9 です。値 1 は最も低い優先度を示します。 |
| [タスクリソース] | TensorBoard インスタンスに割り当てられるリソース:CPU (コア数) と メモリ (GiB)。 |
VPC 構成
VPC パラメーターは、[Public Resources] を使用する場合にのみ適用されます。VPC がない場合、システムはインターネット経由で接続するため、帯域幅の制限により TensorBoard の起動やレポートの読み込みが遅くなる可能性があります。
TensorBoard インスタンスが、Cloud Parallel File Storage (CPFS) や VPC マウントターゲットを使用する NAS など、VPC が必要なデータセットを使用する場合は、VPC を設定してください。
現在のリージョンで、[VPC]、[vSwitch]、および [Security Group] を選択します。設定後、TensorBoard インスタンスを実行するクラスターは、選択した VPC 内のサービスにアクセスでき、指定したセキュリティグループを使用してアクセス制御を行います。
TensorBoard レポートの表示
-
ワークスペースページの左側のナビゲーションペインで、 を選択します。
-
[TensorBoard] タブで ステータス 列を確認します。ステータスが 実行中 の場合、操作 列の Tensorboard の表示 をクリックします。
TensorBoard ページには、スカラーの推移、ヒストグラム、画像など、トレーニングメトリクスとログに記録されたデータが表示されます。
TensorBoard インスタンスの管理
-
PAI コンソールにログインします。上部メニューでリージョンを選択し、ワークスペースを選択します。[Enter Jobs] をクリックします。
-
[TensorBoard] タブで、次のいずれかの操作を実行します。
| 操作 | 手順 |
|---|---|
| インスタンスの開始 | 操作 列の 起動 をクリックして、停止中のインスタンスを再起動します |
| インスタンスの詳細の表示 | インスタンス名をクリックして詳細ページを開き、[Basic Information] と [Configuration Information] を確認します |
| 関連付けられた DLC ジョブの表示 | タスクの関連付け 列でアイコンにカーソルを合わせると、ジョブ ID を確認できます。ID をクリックしてジョブの詳細ページを開きます |
| 関連付けられたデータセットの表示 | データセットの関連付け 列でアイコンにカーソルを合わせると、データセット ID を確認できます。ID をクリックしてデータセットの詳細ページを開きます |
| 実行時間の表示 | 実行時間 列に、前回の開始以降にインスタンスが実行されている時間が表示されます。インスタンスを停止すると、実行時間はリセットされます |
| インスタンスの停止 | 操作 列の 停止 をクリックします。自動停止時刻をスケジュールするには、[Actions] 列の 自動停止設定 をクリックします |
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| TensorBoard を起動できない | [Overview] タブでデータセットのマウント状態を確認します。ログパスがマウントされたストレージ内に存在することを確認します。データセットへのアクセスに対する Resource Access Management (RAM) の権限を確認します。 |
| レポートの読み込みが遅い | 大量データの実験ではログの記録頻度を下げます。増分ログ処理を使用するか、ログを小さなサブディレクトリに整理することを検討してください。 |
| アクセス拒否または接続エラー | ネットワーク接続と RAM の権限を検証します。セキュリティグループの設定を確認します。VPC に依存するデータセットを使用している場合は、同じ VPC を使用するように TensorBoard インスタンスが設定されていることを確認します。 |
| CPU またはメモリ使用率が高い | リソース使用率を監視します。 を使用している場合は、より多くのリソースを使用できる汎用コンピューティングへの切り替えを検討してください。 |
ベストプラクティス
-
一般的なワークロードでは、2~4 vCPU と 4~8 GiB のメモリから開始してください。
-
実験タイプとタイムスタンプでログを整理してください (例:
/mnt/data/output/runs/experiment_type/date_time/)。 -
ストレージコストの削減とパフォーマンス向上のため、不要なトレーニングログを定期的にクリーンアップしてください。
-
RAM ロールの割り当てを使用して、TensorBoard インスタンスへのアクセスを、許可されたチームメンバーのみに制限してください。
関連ドキュメント
-
TensorBoard インスタンスの作成と管理: ページから TensorBoard インスタンスを作成します。