環境変数
スクリプトを自動化された環境で実行する際、wandb をスクリプトの実行前または実行中に設定された環境変数で制御することができます。
# これは秘密であり、バージョン管理にチェックインしないでください
WANDB_API_KEY=$YOUR_API_KEY
# 名前とメモは任意
WANDB_NAME="My first run"
WANDB_NOTES="小さい学習率、より多くの正則化。"
# wandb/settings ファイルをチェックインしない場合のみ必要です
WANDB_ENTITY=$username
WANDB_PROJECT=$project
# スクリプトをクラウドに同期させたくない場合
os.environ["WANDB_MODE"] = "offline"
任意の環境変数
これらの任意の環境変数を使用して、リモートマシンでの認証を設定するなどの操作を行えます。
変数名 | 使い方 |
---|---|
WANDB_ANONYMOUS | ユーザーが秘密のURLで匿名のrunを作成できるように "allow", "never", または "must" を設定します。 |
WANDB_API_KEY | アカウントに関連付けられた認証キーを設定します。キーは設定ページで見つけることができます。リモートマシンで wandb login が実行されていない場合、これを設定する必要があります。 |
WANDB_BASE_URL | wandb/local を使用している場合、この環境変数を http://YOUR_IP:YOUR_PORT に設定します。 |
WANDB_CACHE_DIR | 既定では ~/.cache/wandb に設定されますが、この環境変数でこの場所を上書きできます。 |
WANDB_CONFIG_DIR | 既定では ~/.config/wandb に設定されますが、この環境変数でこの場所を上書きできます。 |
WANDB_CONFIG_PATHS | カンマ区切りのyamlファイルのリストをwandb.configにロードします。config を参照してください。 |
WANDB_CONSOLE | stdout / stderr ロギングを無効にするにはこれを "off" に設定します。対応する環境では既定で "on" になります。 |
WANDB_DIR | 生成されたすべてのファイルを保管する絶対パスを設定します。トレーニングスクリプトに対して相対的な wandb ディレクトリーの代わりにここに保管します。 このディレクトリーが存在し、プロセスを実行するユーザーが書き込み可能であることを確認してください |
WANDB_DISABLE_GIT | wandbがgitリポジトリーを調査し、最新のコミット/差分をキャプチャするのを防ぎます。 |
WANDB_DISABLE_CODE | wandbがノートブックやgitの差分を保存するのを防ぎたい場合、これをtrueに設定します。 gitリポジトリーにある場合は現在のコミットをまだ保存します。 |
WANDB_DOCKER | runの復元を有効にするため、dockerイメージのダイジェストを設定します。これはwandb dockerコマンドで自動的に設定されます。 wandb docker my/image/name:tag --digest を実行してイメージのダイジェストを取得できます。 |
WANDB_ENTITY | runに関連付けられたエンティティです。トレーニングスクリプトのディレクトリーで wandb init を実行した場合、wandb という名前のディレクトリーが作成され、ソース管理にチェックインできる既定のエンティティが保存されます。そのファイルを作成したくない場合やそのファイルを上書きしたい場合は、環境変数を使用できます。 |
WANDB_ERROR_REPORTING | wandbが致命的なエラーをエラートラッキングシステムにログするのを防ぐにはこれをfalseに設定します。 |
WANDB_HOST | システム提供のホスト名を使用したくない場合、wandbインターフェースに表示したいホスト名を設定します。 |
WANDB_IGNORE_GLOBS | 無視するファイルのglobパターンのカンマ区切りリストを設定します。これらのファイルはクラウドに同期されません。 |
WANDB_JOB_NAME | wandb によって作成されるジョブの名前を指定します。詳細については ジョブの作成 をご覧ください。 |
WANDB_JOB_TYPE | ジョブタイプを指定します。例えば "training" や "evaluation" を指定して異なる種類のrunを示します。詳細は グループ化 をご覧ください。 |
WANDB_MODE | これを "offline" に設定すると、wandbはrunのメタデータをローカルに保存し、サーバーに同期しません。これを "disabled" に設定すると、wandbは完全にオフになります。 |
WANDB_NAME | runの人間が読める名前です。設定されていない場合、ランダムに生成されます。 |
WANDB_NOTEBOOK_NAME | jupyterで実行している場合、この変数でノートブックの名前を設定できます。自動検出を試みます。 |
WANDB_NOTES | runに関する長めのメモです。Markdownが許可されており、後でUIで編集できます。 |
WANDB_PROJECT | runに関連付けられたプロジェクトです。これも wandb init で設定できますが、環境変数がその値を上書きします。 |
WANDB_RESUME | 既定では never に設定されています。auto に設定するとwandbは失敗したrunの自動再開を行います。must に設定すると起動時にrunの存在が強制されます。常に自分で一意のIDを生成したい場合は、allow に設定し、常に WANDB_RUN_ID を設定します。 |
WANDB_RUN_GROUP | runを自動的にグループ化するための実験名を指定します。詳細は グループ化 をご覧ください。 |
WANDB_RUN_ID | スクリプトの単一のrunに対応する一意の文字列(プロジェクトごと)を設定します。それは64文字以内である必要があります。すべての非単語文字はダッシュに変換されます。失敗の場合に既存のrunを再開するために使用できます。 |
WANDB_SILENT | wandbのログステートメントを無音にするにはこれを true に設定します。これが設定されている場合、すべてのログは WANDB_DIR/debug.log に書き込まれます。 |
WANDB_SHOW_RUN | オペレーティングシステムがサポートしている場合、runのURLを自動的にブラウザで開くにはこれを true に設定します。 |
WANDB_TAGS | runに適用されるタグのカンマ区切りリストです。 |
WANDB_USERNAME | runに関連付けられたチームメンバーのユーザー名です。サービスアカウントのAPIキーと共に使用して、チームメンバーの自動化されたrunの付属を有効にします。 |
WANDB_USER_EMAIL | runに関連付けられたチームメンバーのメールアドレスです。サービスアカウントのAPIキーと共に使用して、チームメンバーの自動化されたrunの付属を有効にします。 |
Singularity 環境
Singularityでコンテナを実行している場合、上記の環境変数の前に SINGULARITYENV_ を付けることで環境変数を渡すことができます。Singularity環境変数の詳細はこちらをご覧ください。
AWSで実行する
AWSでバッチジョブを実行する場合、W&Bの資格情報でマシンを認証するのは簡単です。設定ページからAPIキーを取得し、WANDB_API_KEY 環境変数を AWSバッチジョブ仕様に設定します。
よくある質問
自動化されたrunとサービスアカウント
自動化されたテストや内部ツールでW&Bにログを記録するrunを起動する場合、チームの設定ページで Service Account を作成してください。これにより、自動化されたジョブ用のサービスAPIキーを使用できるようになります。サービスアカウントジョブを特定のユーザーに付属させたい場合、 WANDB_USERNAME または WANDB_USER_EMAIL 環境変数を使用できます。
これは、TravisCIやCircleCIなどのツールを使用した継続的インテグレーションや自動化された単体テストの設定に役立ちます。
環境変数はwandb.init()に渡されたパラメータを上書きしますか?
wandb.init
に渡される引数は環境に対して優先されます。環境変数が設定されていない場合にシステムの既定値以外の既定値を持ちたい場合は、 wandb.init(dir=os.getenv("WANDB_DIR", my_default_override))
を呼び出します。
ロギングをオフにする
wandb offline
コマンドは、環境変数 WANDB_MODE=offline
を設定します。この環境変数は、マシンからリモートwandbサーバーへのデータ同期を停止します。複数のプロジェクトがある場合、それらすべてがW&Bサーバーへのログデータの同期を停止します。
警告メッセージを静音化するには:
import logging
logger = logging.getLogger("wandb")
logger.setLevel(logging.WARNING)
共有マシン上の複数のwandbユーザー
共有マシンを使用しており、他の人がwandbユーザーである場合、runが常に正しいアカウントにログされるようにするのは簡単です。環境変数WANDB_API_KEYを設定して認証します。環境にソースされる場合、ログイン時に正しい資格情報を持つようになり、スクリプトから環境変数を設定することもできます。
次のコマンドを実行します:export WANDB_API_KEY=X
(ここでXはAPIキーです)。ログインしている場合、APIキーは wandb.ai/authorize で見つけることができます。