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])使用总熵、总样本数和总正目标数更新度量状态。
属性
deviceMetric.to()的最后一个输入设备。