Shortcuts

torcheval.metrics.BinaryNormalizedEntropy

class torcheval.metrics.BinaryNormalizedEntropy(*, from_logits: bool = False, num_tasks: int = 1, device: device | None = None)

计算预测输入与真实二元目标之间的归一化二元交叉熵。 其函数版本是 torcheval.metrics.functional.binary_normalized_entropy()

Parameters:
  • from_logits (bool) – 一个布尔指示器,表示预测值 y_pred 是否 是一个浮点数 logit 值(即当 from_logits=True 时,值在 [-inf, inf] 范围内) 或一个概率值(即当 from_logits=False 时,值在 [0., 1.] 范围内) 默认值为 False。

  • num_tasks (int) – 需要进行BinaryNormalizedEntropy计算的任务数量。默认值为1。每个任务的BinaryNormalizedEntropy将独立计算。

示例:

>>> import torch
>>> from torcheval.metrics import BinaryNormalizedEntropy

>>> metric = BinaryNormalizedEntropy()
>>> metric.update(torch.tensor([0.2, 0.3]), torch.tensor([1.0, 0.0]))
>>> metric.compute()
tensor([1.4183], dtype=torch.float64)

>>> metric = BinaryNormalizedEntropy()
>>> metric.update(torch.tensor([0.2, 0.3]), torch.tensor([1.0, 0.0]), torch.tensor([5.0, 1.0]))
>>> metric.compute()
tensor([3.1087], dtype=torch.float64)

>>> metric = BinaryNormalizedEntropy(from_logits = True)
>>> metric.update(tensor([-1.3863, -0.8473]), torch.tensor([1.0, 0.0]))
>>> metric.compute()
tensor([1.4183], dtype=torch.float64)

>>> metric = BinaryNormalizedEntropy(num_tasks=2)
>>> metric.update(torch.tensor([[0.2, 0.3], [0.5, 0.1]]), torch.tensor([[1.0, 0.0], [0.0, 1.0]]))
>>> metric.compute()
tensor([1.4183, 2.1610], dtype=torch.float64)
__init__(*, from_logits: bool = False, num_tasks: int = 1, device: device | None = None) None

初始化一个度量对象及其内部状态。

使用 self._add_state() 来初始化你的度量类的状态变量。 状态变量应该是 torch.Tensor,一个 torch.Tensor 的列表,一个以 torch.Tensor 为值的字典, 或者一个 torch.Tensor 的双端队列。

方法

__init__(*[, from_logits, num_tasks, device])

初始化一个度量对象及其内部状态。

compute()

返回归一化的二元交叉熵。

load_state_dict(state_dict[, strict])

从state_dict加载度量状态变量。

merge_state(metrics)

将度量状态与其他度量实例的对应部分合并。

reset()

将度量状态变量重置为其默认值。

state_dict()

将度量状态变量保存在state_dict中。

to(device, *args, **kwargs)

将度量状态变量中的张量移动到设备。

update(input, target, *[, weight])

使用总熵、总样本数和总正目标数更新度量状态。

属性

device

Metric.to()的最后一个输入设备。