实验追踪
实验跟踪几乎是机器学习中不可或缺的一部分。它在维护可重复性方面至关重要。PyTorch Tabular 秉承这一点,并在内部支持实验跟踪。目前,PyTorch Tabular 支持两种实验跟踪框架:
- Tensorboard
- Weights and Biases
Tensorboard 日志记录非常基础。PyTorch Tabular 只是将损失和指标记录到 Tensorboard 中。W&B 跟踪功能更为丰富——除了跟踪损失和指标外,它还可以跟踪不同层的梯度、模型在各个时期的输出等。
基本用法¶
project_name
: str: 所有运行日志的项目名称。对于 Tensorboard,这定义了日志保存的文件夹,而对于 W&B,它定义了项目名称。run_name
: str: 运行的名称;用于识别特定运行的标识符。如果留空,将根据任务自动生成一个名称。log_target
: str: 确定日志记录的位置——Tensorboard 或 W&B。选项有:wandb
tensorboard
。默认为tensorboard
使用示例¶
experiment_config = ExperimentConfig(project_name="MyAwesomeProject", run_name="my_cool_new_model", log_target="wandb")
高级用法¶
跟踪梯度¶
跟踪梯度以监控模型是否按预期学习是一个好主意。有两种方法可以做到这一点。
- 在
ExperimentConfig
中将exp_watch
参数设置为"gradients"
,并将log_target
选择为"wandb"
。这将跟踪各个时期的梯度直方图。
- 你还可以将
track_grad_norm
设置为1
或2
,以跟踪梯度的 L1 或 L2 范数。这对 Tensorboard 和 W&B 都适用。
跟踪输出¶
有时,跟踪模型的输出也有助于分析。随着训练的进行,输出应该变得更加明显或集中在我们试图建模的目标周围。
这可以通过在 ExperimentConfig
中使用 log_logits
参数来实现。
pytorch_tabular.config.ExperimentConfig
dataclass
¶
实验配置.使用 WandB 和 Tensorboard 进行实验跟踪.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
project_name
|
str
|
所有运行日志所属的项目名称.对于 Tensorboard,这定义了日志保存的文件夹, 对于 W&B,这定义了项目名称. |
MISSING
|
run_name
|
Optional[str]
|
运行的名称;用于识别该运行的特定标识符.如果留空,将自动生成一个名称. |
None
|
exp_watch
|
Optional[str]
|
所需的日志记录级别.可以是 |
None
|
log_target
|
str
|
确定日志记录发生的位置 - Tensorboard 或 W&B.可选值为:[ |
'tensorboard'
|
log_logits
|
bool
|
开启此选项以在 W&B 中将 logits 记录为直方图. |
False
|
exp_log_freq
|
int
|
记录梯度和参数的步数间隔. |
100
|