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()
- 参数::
from_logits (bool) – 布尔指示器,指示预测值 y_pred 是一个浮点对数几率值(即,当 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
的 deque。
方法
__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()
的最后一个输入设备。