環境変数
自動化された環境でスクリプトを実行している場合、スクリプトが実行される前に設定されている環境変数またはスクリプト内で wandb を制御できます。
# これは秘密であり、バージョン管理には含めないでください
WANDB_API_KEY=$YOUR_API_KEY
# 名前とノートは省略可能
WANDB_NAME="私の最初の実行"
WANDB_NOTES="学習率を小さくし、正則化を増やす。"
# wandb/settingsファイルをチェックインしない場合にのみ必要
WANDB_ENTITY=$username
WANDB_PROJECT=$project
# スクリプトをクラウドに同期させたくない場合
os.environ["WANDB_MODE"] = "offline"
任意の環境変数
これらの任意の環境変数を使って、リモートマシンでの認証の設定などを行ってください。
変数名 | 使い方 |
---|---|
WANDB_ANONYMOUS | "allow"、"never"、または "must" を設定して、シークレットURL付きの匿名のrunを作成できるようにします。 |
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 | wandb.configにロードするyamlファイルのカンマ区切りリスト。configを参照してください。 |
WANDB_CONSOLE | これを"off"にすることでstdout / stderrのログを無効にします。対応する環境ではデフォルトで"on"です。 |
WANDB_DIR | 生成されたすべてのファイルを、トレーニングスクリプトに対して相対的なwandbディレクトリーではなく、ここに絶対パスで保存します。このディレクトリが存在し、プロセスが実行されるユーザーが書き込みできることを確認してください |
WANDB_DISABLE_GIT | wandbがgitリポジトリを探し、最新のコミット/差分を取得するのを防ぎます。 |
WANDB_DISABLE_CODE | これを true に設定すると、wandb がノートブックや git の差分を保存しなくなります。ただし、git リポジトリ内にある場合、現在のコミットは引き続き保存されます。 |
WANDB_DOCKER | これを Docker イメージのダイジェストに設定すると、runの復元が可能になります。これは、wandb の docker コマンドで自動的に設定されます。イメージダイジェストは、wandb docker my/image/name:tag --digest を実行することで取得できます。 |
WANDB_ENTITY | あなたの run に関連するエンティティです。トレーニングスクリプトのディレクトリで wandb init を実行した場合、wandb という名前のディレクトリが作成され、デフォルトのエンティティが保存され、ソースコントロールにチェックインできます。そのファイルを作成したくない場合や、ファイルを上書きしたい場合は、環境変数を使用できます。 |
WANDB_ERROR_REPORTING | これを false に設定すると、wandb が致命的なエラーをエラートラッキングシステムに記録しなくなります。 |
WANDB_HOST | システムで提供されるホスト名を使用したくない場合は、wandbインターフェースに表示されるホスト名に設定してください。 |
WANDB_IGNORE_GLOBS | カンマで区切った無視するファイルのglobリストに設定してください。これらのファイルはクラウドに同期されません。 |
WANDB_JOB_TYPE | "training"や"evaluation"のようなジョブタイプを指定して、異なるタイプのrunを示すことができます。詳しくはgroupingを参照してください。 |
WANDB_MODE | これを"offline"に設定すると、wandbはrunのメタデータをローカルに保存し、サーバーと同期しません。「disabled」に設定すると、wandbは完全にオフになります。 |
WANDB_NAME | runの人間が読める名前。設定されていない場合は、ランダムに生成されます。 |
WANDB_NOTEBOOK_NAME | Jupyterで実行している場合、この変数でノートブックの名前を設定できます。自動検出を試みます。 |
WANDB_NOTES | 実行に関する長いメモ。マークダウンが許可されており、後でUIで編集できます。 |
WANDB_PROJECT | 実行に関連するプロジェクト。これは wandb init でも設定できますが、環境変数が値を上書きします。 |
WANDB_RESUME | デフォルトでは、never に設定されています。auto に設定すると、wandbは失敗した実行を自動的に再開します。must に設定すると、実行が開始時に存在するように強制されます。常に独自の一意のIDを生成したい場合は、allowに設定し、WANDB_RUN_IDを常に設定してください。 |
WANDB_RUN_GROUP | 実験名を指定して、runを自動的にグループ化します。詳細はgroupingを参照してください。 |
WANDB_RUN_ID | スクリプトの単一のrunに対応する、プロジェクトごとのグローバルに一意な文字列を設定します。64文字以内である必要があります。すべての非単語文字はダッシュに変換されます。これは、失敗の場合に既存のrunを再開するために使用できます。 |
WANDB_SILENT | wandbのログステートメントを無効にするには、これをtrueに設定します。これが設定されると、すべてのログがWANDB_DIR/debug.logに書き込まれます。 |
WANDB_SHOW_RUN | これをtrueに設定すると、オペレーティングシステムが対応している場合、run urlを表示するブラウザが自動的に開きます。 |
WANDB_TAGS | runに適用される、カンマで区切られたタグのリストです。 |
WANDB_USERNAME | 実行に関連付けられたチームメンバーのユーザー名。これにより、サービスアカウントAPIキーと共に、自動化された実行をチームメンバーに帰属させることができます。 |
WANDB_USER_EMAIL | 実行に関連付けられたチームメンバーのメールアドレス。これにより、サービスアカウントAPIキーと共に、自動化された実行をチームメンバーに帰属させることができます。 |
シングラリティ環境
Singularityでコンテナを実行している場合、上記の変数にSINGULARITYENV_を前置して環境変数を渡すことができます。シングラリティ環境変数の詳細はこちらで見つけることができます。
AWSでの実行
AWSでバッチジョブを実行している場合、W&Bの認証情報を使ってマシンを簡単に認証できます。設定ページからAPIキーを取得し、AWSバッチジョブ仕様のWANDB_API_KEY環境変数を設定してください。
よくある質問
自動化された実行とサービスアカウント
W&Bにログを送信する実行を起動する自動テストや内部ツールがある場合は、チーム設定ページで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ユーザーの場合、実行が常に適切なアカウントにログされるように簡単に設定できます。WANDB_API_KEY環境変数を設定して認証します。環境の中でこれを参照すると、ログイン時に適切な資格情報が得られるか、スクリプトから環境変数を設定できます。
このコマンド export WANDB_API_KEY=X
を実行して、XをあなたのAPIキーに置き換えます。ログインしている場合、wandb.ai/authorize でAPIキーを見つけることができます。