speechbrain.utils.train_logger 模块

用于实验监控的记录器。

Authors
  • 彼得·普兰廷加 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]

记录一个周期的统计信息。

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

  • train_stats (dict of str:list pairs) – 每种损失类型用一个字符串 : 列表对表示,包括训练过程中的所有值。

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

  • test_stats (dict of str:list pairs) – 每种损失类型用一个字符串 : 列表对表示,包括测试通过的所有值。

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

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

基础类: TrainLogger

训练信息的文本记录器。

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

  • 精度 (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所需的格式记录训练信息。

Parameters:

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

Raises:

如果未安装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以相同的方式使用,并且支持处理嵌套字典。

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

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

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

Example

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

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

initializer: !name:wandb.init

实体: speechbrain 项目: sb_project 名称: sb_run 重新初始化: 真 恢复: 假 目录: !ref /wandb ID: sb_run 恢复: 允许

```

注意

如果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/samples 进度批次样本大小: 3 格式定义:

foo:

扩展名: bar 保存器: !speechbrain.dataio.mystuff.save_my_format 参数:

baz: qux

formats:

foobar: foo

在大脑中:

运行以下内容以“记住”一个样本(例如来自compute_objectives)

self.hparams.progress_sample_logger.remember(

目标=spectrogram_target, 输出=spectrogram_output, 对齐=alignments_output, 我的输出= 原始批次={

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

}

)

在epoch结束时运行以下内容(例如从on_stage_end) self.progress_sample_logger.save(epoch)

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

  • 格式 (字典) – 从键到格式的映射。

  • 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]

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

Parameters:

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

get_batch_sample(value)[source]

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

Parameters:

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

Returns:

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

Return type:

object

save(epoch)[source]

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

Parameters:

epoch (int) – 周期数

save_item(key, data, epoch)[source]

保存单个样本项

Parameters:
  • key (str) – 项目的键/标识符

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

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

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]

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

Parameters:

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

Returns:

result – 一个张量的字典张量

Return type:

torch.Tensor|dict