Track experiments
5 minute read
W&B を使用して、機械学習 の実験管理、モデル のチェックポイント、チーム とのコラボレーションなどを行います。
この ノートブック では、単純な PyTorch モデル を使用して、機械学習 の 実験 を作成および追跡します。ノートブック の終わりまでに、チーム の他の メンバー と共有およびカスタマイズできるインタラクティブな プロジェクト ダッシュボード が作成されます。ダッシュボード の例はこちら
前提条件
W&B Python SDK をインストールして ログイン します。
W&B で 機械学習 の 実験 をシミュレートおよび追跡する
機械学習 の 実験 を作成、追跡、および視覚化します。これを行うには:
- W&B run を初期化し、追跡する ハイパーパラメータ を渡します。
- トレーニング ループ 内で、精度 や 損失 などの メトリクス を ログ に記録します。
import random
import math
# シミュレートされた 5 つの 実験 を起動します
total_runs = 5
for run in range(total_runs):
# 1️. この スクリプト を追跡するために新しい run を開始します
wandb.init(
# この run が ログ に記録される プロジェクト を設定します
project="basic-intro",
# run 名を渡します (そうでない場合は、sunshine-lollypop-10 のようにランダムに割り当てられます)
name=f"experiment_{run}",
# ハイパーパラメータ と run メタデータ を追跡します
config={
"learning_rate": 0.02,
"architecture": "CNN",
"dataset": "CIFAR-100",
"epochs": 10,
})
# この簡単な ブロック は、メトリクス を ログ に記録する トレーニング ループ をシミュレートします
epochs = 10
offset = random.random() / 5
for epoch in range(2, epochs):
acc = 1 - 2 ** -epoch - random.random() / epoch - offset
loss = 2 ** -epoch + random.random() / epoch + offset
# 2️. スクリプト から W&B に メトリクス を ログ に記録します
wandb.log({"acc": acc, "loss": loss})
# run に完了のマークを付けます
wandb.finish()
W&B プロジェクト で 機械学習 がどのように実行されたかを確認します。前の セル から出力された URL リンク をコピーして貼り付けます。URL は、グラフ を表示する ダッシュボード を含む W&B プロジェクト にリダイレクトされます。
次の画像は、ダッシュボード がどのように見えるかを示しています。

W&B を 疑似 機械学習 トレーニング ループ に統合する方法がわかったので、基本的な PyTorch ニューラルネットワーク を使用して 機械学習 の 実験 を追跡しましょう。次の コード は、組織 内の 他の チーム と共有できる モデル の チェックポイント を W&B にアップロードします。
Pytorch を使用して 機械学習 の 実験 を追跡する
次の コード セル は、単純な MNIST 分類器 を定義してトレーニングします。トレーニング 中に、W&B が URL を出力します。プロジェクト ページ リンク をクリックして、結果 が W&B プロジェクト に ライブ で ストリーミング されるのを確認します。
W&B run は、メトリクス、システム 情報、ハイパーパラメータ、ターミナル 出力 を自動的に ログ に記録し、モデル の 入力 と 出力 を含む インタラクティブな テーブル が表示されます。
PyTorch Dataloader を設定する
次の セル は、機械学習 モデル をトレーニングするために必要な便利な 関数 をいくつか定義しています。関数 自体は W&B 固有ではないため、ここでは詳細には説明しません。forward pass および backward pass トレーニング ループ の定義方法、PyTorch DataLoaders を使用して トレーニング 用の データ を ロードする方法、および torch.nn.Sequential
クラス を使用して PyTorch モデル を定義する方法については、PyTorch ドキュメント を参照してください。
予測値 と 真の 値 を比較する teble を作成する
次の セル は W&B 固有なので、見ていきましょう。
セル では、log_image_table
という 関数 を定義します。厳密に言うと、オプション ですが、この 関数 は W&B テーブル オブジェクト を作成します。テーブル オブジェクト を使用して、モデル が 各画像 に対して 予測した内容を示す テーブル を作成します。
より具体的には、各 行 は、モデル に与えられた画像 と、予測値 および 実際の値 (ラベル) で構成されます。
モデル をトレーニングし、チェックポイント をアップロードします
次の コード は、モデル の チェックポイント をトレーニングして プロジェクト に保存します。通常どおり モデル の チェックポイント を使用して、トレーニング 中の モデル の パフォーマンス を評価します。
W&B を使用すると、保存された モデル と モデル の チェックポイント を チーム または 組織 の 他の メンバー と簡単に共有することもできます。モデル と モデル の チェックポイント を チーム 外の メンバー と共有する方法については、W&B Registry を参照してください。
これで、W&B を使用して 最初の モデル をトレーニングしました。上記の リンク のいずれかをクリックして、メトリクス を確認し、W&B アプリ UI の Artifacts タブ で保存された モデル の チェックポイント を確認してください
(オプション) W&B Alert を設定する
W&B Alerts を作成して、Python コード から Slack または メール に アラート を送信します。
コード からトリガーされた Slack または メール アラート を初めて送信する場合は、次の 2 つの 手順に従います。
- W&B の ユーザー 設定 で Alerts をオンにします
wandb.alert()
を コード に追加します。例:
次の セル は、wandb.alert
の使用方法を示す最小限の例を示しています
W&B Alerts の 完全な ドキュメント はこちら にあります。
次のステップ
次の チュートリアル では、W&B Sweeps を使用して ハイパーパラメータ の 最適化 を行う方法を学習します。 PyTorch を使用した ハイパーパラメータ sweep
[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.