speechbrain.utils.train_logger 模块

用于实验监控的日志记录器。

作者
  • Peter Plantinga 2020

  • Jarod Duret 2023

摘要

FileTrainLogger

训练信息的文本日志记录器。

ProgressSampleLogger

一种在训练过程中输出样本的日志记录器,主要用于语音合成,但可定制、可重用并适用于任何其他生成任务。

TensorboardLogger

以 Tensorboard 所需的格式记录训练信息。

TrainLogger

定义训练日志记录器接口的抽象类。

WandBLogger

WandB (Weights & Biases) 的日志记录器。

函数

detach

将指定对象从计算图中分离,该对象可以是单个张量或张量字典。

plot_spectrogram

返回 matplotlib 频谱图(如果可用),否则返回 None - 可选依赖项

参考

class speechbrain.utils.train_logger.TrainLogger[source]

基类:object

定义训练日志记录器接口的抽象类。

log_stats(stats_meta, train_stats=None, valid_stats=None, test_stats=None, verbose=False)[source]

记录一个 epoch 的统计数据。

参数:
  • stats_meta (dict of str:scalar pairs) – 统计数据的元信息(例如,epoch、学习率等)。

  • train_stats (dict of str:list pairs) – 每种损失类型都由一个 str : list 对表示,包含训练阶段的所有值。

  • valid_stats (dict of str:list pairs) – 每种损失类型都由一个 str : list 对表示,包含验证阶段的所有值。

  • test_stats (dict of str:list pairs) – 每种损失类型都由一个 str : list 对表示,包含测试阶段的所有值。

  • verbose (bool) – 是否同时将日志信息输出到标准日志记录器。

class speechbrain.utils.train_logger.FileTrainLogger(save_file, precision=2)[source]

基类:TrainLogger

训练信息的文本日志记录器。

参数:
  • save_file (str) – 用于记录训练信息的文件。

  • precision (int) – 显示的小数位数。默认为 2,例如:1.35e-5。

log_stats(stats_meta, train_stats=None, valid_stats=None, test_stats=None, verbose=True)[source]

参见 TrainLogger.log_stats()

class speechbrain.utils.train_logger.TensorboardLogger(save_dir)[source]

基类:TrainLogger

以 Tensorboard 所需的格式记录训练信息。

参数:

save_dir (str) – 用于存储所有相关日志的目录。

引发:

如果未安装 Tensorboard,则引发 ImportError。

log_stats(stats_meta, train_stats=None, valid_stats=None, test_stats=None, verbose=False)[source]

参见 TrainLogger.log_stats()

log_audio(name, value, sample_rate)[source]

在日志中添加音频信号。

log_figure(name, value)[source]

在日志中添加一个图。

class speechbrain.utils.train_logger.WandBLogger(initializer, *args, **kwargs)[source]

基类:TrainLogger

WandB (Weights & Biases) 的日志记录器。此日志记录器的设计使其可以像 TrainLogger 一样使用,并且支持处理嵌套字典。

参数:
  • initializer (callable) – 初始化 WandB 运行的可调用函数。有关可以传递给初始化器的参数的更多信息,请参阅文档:https://docs.wandb.ai/ref/python/init

  • *args (tuple) – 要传递给初始化函数的位置参数。

  • **kwargs (dict) – 要传递给初始化函数的关键字参数。

示例

要初始化日志记录器,请在 hparams.yaml 中使用以下模式

``` train_logger: !new:speechbrain.utils.train_logger.WandBLogger

initializer: !name:wandb.init

entity: speechbrain project: sb_project name: sb_run reinit: True resume: False dir: !ref <output_folder>/wandb id: sb_run resume: allow

```

注意

如果 WandB Logger 初始化出现问题,它会引发异常。

log_stats(stats_meta, train_stats=None, valid_stats=None, test_stats=None, verbose=False)[source]

参见 TrainLogger.log_stats()

class speechbrain.utils.train_logger.ProgressSampleLogger(output_path, formats=None, format_defs=None, batch_sample_size=1)[source]

基类:object

一种在训练过程中输出样本的日志记录器,主要用于语音合成,但可定制、可重用并适用于任何其他生成任务。

原生支持图像和原始 PyTorch 输出。可以根据需要添加其他自定义格式。

示例

在 hparams.yaml 中 progress_sample_logger: !new:speechbrain.utils.progress_samples.ProgressSampleLogger

output_path: output/samples progress_batch_sample_size: 3 format_defs

foo

extension: bar saver: !speechbrain.dataio.mystuff.save_my_format kwargs

baz: qux

formats

foobar: foo

在 Brain 中

运行以下代码“记住”一个样本(例如,来自 compute_objectives)

self.hparams.progress_sample_logger.remember(

target=spectrogram_target, output=spectrogram_output, alignments=alignments_output, my_output= raw_batch={

“inputs”: inputs, “spectrogram_target”: spectrogram_target, “spectrogram_output”: spectrogram_output, “alignments”: alignments_output

}

)

在 epoch 结束时运行以下代码(例如,来自 on_stage_end)self.progress_sample_logger.save(epoch)

参数:
  • output_path (str) – 样本将保存到的文件系统路径。

  • formats (dict) – 从键到格式的映射。

  • format_defs (dict) –

    一个字典,其中格式标识符作为键,值是包含处理程序可调用对象和扩展名的字典。处理程序的签名应类似于 torch.save

    示例:{

    ”myformat”: {

    “extension”: “myf”, “saver”: somemodule.save_my_format

    }

    }

  • batch_sample_size (int) – 提取批次样本时检索的项数

DEFAULT_FORMAT = 'image'
reset()[source]

初始化进度样本的集合

remember(**kwargs)[source]

使用提供的值更新内部快照字典

参数:

**kwargs (dict) – 要保存的参数

get_batch_sample(value)[source]

获取一个批次的样本以进行保存。这对于在训练过程中监控原始数据(样本和预测)非常有用

参数:

value (torch.Tensor|dict|list) – 批次中的原始值

返回:

result – 与提供的值相同类型的对象

返回类型:

object

save(epoch)[source]

保存之前通过 remember() 调用保存的所有项

参数:

epoch (int) – epoch 数

save_item(key, data, epoch)[source]

保存单个样本项

参数:
  • key (str) – 项的键/标识符

  • data (torch.Tensor) – 要保存的数据

  • epoch (int) – epoch 数(用于文件路径计算)

speechbrain.utils.train_logger.plot_spectrogram(spectrogram, ap=None, fig_size=(16, 10), output_fig=False)[source]

返回 matplotlib 频谱图(如果可用),否则返回 None - 可选依赖项

speechbrain.utils.train_logger.detach(value)[source]

将指定对象从计算图中分离,该对象可以是单个张量或张量字典。张量字典将被递归转换

参数:

value (torch.Tensor|dict) – 一个张量或张量字典

返回:

result – 一个张量或张量字典

返回类型:

torch.Tensor|dict