Documentation
搜索文档…
Ray Tune
W&B通过提供两个轻量级的集成与Ray 进行集成。
一个是WandbLogger, 它可以自动将上报给Tune的指标记录到Wandb API中。另一个是@wandb_mixin 装饰器, 它可以和函数API一起使用。它自动用Tune的训练信息初始化Wandb API。你可以像平常一样使用Wandb API,例如使用wandb.log() 来记录你的训练过程。

WandbLogger

1
from ray.tune.integration.wandb import WandbLogger
Copied!
Wandb配置是通过向tune.run() 的config参数传递wandb密匙(key) 来完成的(见下面的示例)。
wandb配置项的内容作为关键字参数传递给wandb.init() 。例外的情况是下面的设置,他们用于配置 WandbLogger本身。

参数

api_key_file (字符串) – 包含Wandb API KEY的文件路径。
api_key (字符串) – Wandb API 密匙(Key)。设置api_key_file的替代选项。
excludes (列表) – 排除在log之外的指标列表。
log_config (布尔值) –表示是否应该记录结果dict的配置参数的布尔值。如果在训练过程中参数会发生变化,例如使用PopulationBasedTraining,那么这会有用。默认为False。
示例
1
from ray.tune.logger import DEFAULT_LOGGERS
2
from ray.tune.integration.wandb import WandbLogger
3
tune.run(
4
train_fn,
5
config={
6
# define search space here
7
"parameter_1": tune.choice([1, 2, 3]),
8
"parameter_2": tune.choice([4, 5, 6]),
9
# wandb configuration
10
"wandb": {
11
"project": "Optimization_Project",
12
"api_key_file": "/path/to/file",
13
"log_config": True
14
}
15
},
16
loggers=DEFAULT_LOGGERS + (WandbLogger, ))
Copied!

wandb_mixin

1
ray.tune.integration.wandb.wandb_mixin(func)
Copied!
这个Ray Tune Trainable mixin 帮助初始化Wandb API,以便通过Trainable 类或 @wandb_mixin 使用函数API对于基本的使用,只需在你的训练函数前加上 @wandb_mixin 装饰器即可:
1
from ray.tune.integration.wandb import wandb_mixin
2
3
@wandb_mixin
4
def train_fn(config):
5
wandb.log()
Copied!
Wandb配置是通过向tune.run()config 参数传递wandb key来完成的(见下面的示例)。
wandb配置项的内容作为关键字传递给 wandb.init() 。例外的是下面的设置,它们用于配置 WandbTrainableMixin 本身:

参数

api_key_file (字符串) – 包含Wandb API KEY的文件路径。
api_key (字符串) – Wandb API Key。api_key_file 设置的替代选项。
Wandb的 group, run_idrun_name 由Tune自动选择,但可以通过填写相应的配置值进行覆盖。
所有其他有效配置设置,请参见这里: https://docs.wandb.com/library/init

示例:

1
from ray import tune
2
from ray.tune.integration.wandb import wandb_mixin
3
4
@wandb_mixin
5
def train_fn(config):
6
for i in range(10):
7
loss = self.config["a"] + self.config["b"]
8
wandb.log({"loss": loss})
9
tune.report(loss=loss)
10
11
tune.run(
12
train_fn,
13
config={
14
# define search space here
15
"a": tune.choice([1, 2, 3]),
16
"b": tune.choice([4, 5, 6]),
17
# wandb configuration
18
"wandb": {
19
"project": "Optimization_Project",
20
"api_key_file": "/path/to/file"
21
}
22
})
Copied!

示例代码

我们已经为你创建了一些示例,以了解集成的工作原理:
  • Colab: 一个集成的简单演示
  • Dashboard: 查看示例生成的仪表盘
最近更新 9mo ago