Documentation
搜索文档…
Environment Variables
当你在自动化环境中运行脚本时,你可以在脚本运行前或在脚本中设置环境变量来控制 wandb
# This is secret and shouldn't be checked into version control
WANDB_API_KEY=$YOUR_API_KEY
# Name and notes optional
WANDB_NAME="My first run"
WANDB_NOTES="Smaller learning rate, more regularization."
# Only needed if you don't checkin the wandb/settings file
WANDB_ENTITY=$username
WANDB_PROJECT=$project
# If you don't want your script to sync to the cloud
os.environ['WANDB_MODE'] = 'dryrun'

可选环境变量

使用这些可选环境变量来做诸如在远程机器上设置身份验证的事情。
变量名
用法
WANDB_API_KEY
设置与你的账户相关联的认证密匙。你可以在你的设置页面 找到你的密匙(key)。如果还未在远程机器上运行wandb login ,则必须设置该变量。
WANDB_BASE_URL
如果你使用的是 wandb/local,你应该将该变量设置为http://你的IP:你的端口
WANDB_NAME
你的运行的可读名称。如果没有设置,将为你随机生成。
WANDB_NOTES
关于你的运行的更长注解。允许使用 Markdown,你可以稍后在UI中编辑。
WANDB_ENTITY
与你的运行相关联的实体。如果你在你的训练脚本的目录下运行了wandb init ,它将创建一个名为wandb
的目录,并将保存一个默认实体,它可以检入源代码控制。如果你不想创建这个文件或想要覆盖这个文件,你可以使用该环境变量。
WANDB_USERNAME
与该运行相关联的一个团队成员的用户名。这可以与服务账户API密匙一起使用,以使自动运行归属到你的团队成员。
WANDB_PROJECT
与你的运行相关联的项目。这也可以通过wandb init设置,但是该环境变量会覆盖其值。
WANDB_MODE
默认,该变量被设置为run ,会将结果保存到wandb。如果你只想把运行的元数据保存在本地,你可以把它设置为 dryrun 。
WANDB_TAGS
要应用于运行的一个用逗号分割的标签列表。
WANDB_DIR
存储所有生成文件的绝对路径,代替默认的相对于你的脚本的wandb 路径。确保该路径存在,并且运行你的进程的用户有写入权限。
WANDB_RESUME
默认该变量被设置为 never. 如果设置为 auto wandb 将自动恢复失败的运行。如果设置为 must,则强制该运行在启动时存在。如果你想总是生成你自己的唯一ID,将该变量设置为 allow 并总是设置 WANDB_RUN_ID。
WANDB_RUN_ID
对应于你的脚本的单次运行,将该变量设置为一个全局唯一字符串(每个项目)。它必须不长于64个字符。所有非单词字符将被转换为连字符。这可以用来恢复已经存在的失败运行。
WANDB_IGNORE_GLOBS
将此变量设置为要忽略的文件通配符列表,以逗号分割。这些文件将不会被同步到云端。
WANDB_ERROR_REPORTING
将该变量设置为 false,以防止wandb将致命错误记录到其错误跟踪系统。
WANDB_SHOW_RUN
将该变量设置为true,如果你的操作系统支持,将在浏览器中自动打开运行URL.
WANDB_DOCKER
将该变量设置为一个docker镜像摘要以便能够恢复运行。这是通过wandb docker 命令自动设置的。你可以通过运行wandb docker my/image/name:tag --digest获取一个镜像的摘要。
WANDB_DISABLE_CODE
将该变量设置为true 以防止wandb存储对你的源代码的引用
WANDB_ANONYMOUS
将该变量设置为 "allow", "never", 或"must" 以便让用户使用秘密URL创建匿名运行。
WANDB_CONSOLE
将该变量设置为"off" 以禁用 标准输出(stdout)/ 标准错误(stderr )记录。在支持该功能的环境中默认为"on"

Singularity环境

如果你在Singularity 环境中运行容器,你可以通过在上述变量前加上SINGULARITYENV_来传递变量。关于Singularity 环境变量的更多细节可以在这里找到。

在AWS上运行

如果你在AWS中运行批处理作业,用你的W&B凭证来验证你的机器会非常容易。从你的设置页面获取你的API密匙,并在AWS批处理作业规范中设置WANDB_API_KEY环境变量。

常见问题

自动运行和服务账户

如果你有自动测试或内部工具启动运行记录到W&B,请在你的团队设置页面创建一个服务账户。这允许你为你的自动化作业使用服务API密匙。如果你想把服务账户的作业归属于一个特定用户,你可以使用WANDB_USER_NAME 或WANDB_USER_EMAIL 环境变量。
在你的团队设置页面为你的自动化作业设置一个服务账号。如果你正在设置自动化单元测试的话,这对于持续集成和TravisCI或 CircleCI 等工具来说很有用。

环境变量是否会覆盖传递给wandb.init()的参数?

传递给wandb.init的参数优先级高于环境变量。如果你想在没有设置环境变量的情况下使用系统默认值以外的默认值,你可以调用 wandb.init(dir=os.getenv("WANDB_DIR", my_default_override))

关闭记录

命令 wandb off 设置了一个环境变量, WANDB_MODE=dryrun 。这将停止任何数据从你的机器同步到远程wandb服务器。你有多个项目,它们都将停止将记录的数据同步到W&B服务器。
要使警告消息静音:
import logginglogger = logging.getLogger("wandb")logger.setLevel(logging.WARNING)

共享机器上有多个wandb用户

如果你使用的是一个共享机器,而另一个用户是wandb用户,确保你的运行登录到正确的账户很容易。设置WANDB_API_KEY环境变量 来验证。如果你在你的环境中source 它,当你登录时,你将有正确的凭证。 或者你也可以从你的脚本中设置环境变量。
运行命令 export WANDB_API_KEY=X 其中X是你的API密匙。当你登录后,你可以在wandb.ai/authorize 找到你的API密匙。