condor_pytorch version: 1.0.0
condor_negloglikeloss
condor_negloglikeloss(logits, labels, reduction='mean')
computes the negative log likelihood loss described in
condor tbd.
parameters
-
logits
: torch.tensor, shape(num_examples, num_classes-1)outputs of the condor layer.
-
labels
: torch.tensor, shape(num_examples, num_classes-1)true labels represented as extended binary vectors (via
condor_pytorch.dataset.levels_from_labelbatch
). -
reduction
: str or none (default='mean')if 'mean' or 'sum', returns the averaged or summed loss value across all data points (rows) in logits. if none, returns a vector of shape (num_examples,)
returns
-
loss
: torch.tensora torch.tensor containing a single loss value (if
reduction='mean'
or 'sum'
) or a loss value for each data record (ifreduction=none
).
examples
>>> import torch
>>> labels = torch.tensor(
... [[1., 1., 0., 0.],
... [1., 0., 0., 0.],
... [1., 1., 1., 1.]])
>>> logits = torch.tensor(
... [[2.1, 1.8, -2.1, -1.8],
... [1.9, -1., -1.5, -1.3],
... [1.9, 1.8, 1.7, 1.6]])
>>> condor_negloglikeloss(logits, labels)
tensor(0.4936)
CondorOrdinalCrossEntropy
CondorOrdinalCrossEntropy(logits, levels, importance_weights=None, reduction='mean')
computes the condor loss described in
condor tbd.
parameters
-
logits
: torch.tensor, shape(num_examples, num_classes-1)outputs of the condor layer.
-
levels
: torch.tensor, shape(num_examples, num_classes-1)true labels represented as extended binary vectors (via
condor_pytorch.dataset.levels_from_labelbatch
). -
importance_weights
: torch.tensor, shape=(num_classes-1,) (default=none)optional weights for the different labels in levels. a tensor of ones, i.e.,
torch.ones(num_classes-1, dtype=torch.float32)
will result in uniform weights that have the same effect as none. -
reduction
: str or none (default='mean')if 'mean' or 'sum', returns the averaged or summed loss value across all data points (rows) in logits. if none, returns a vector of shape (num_examples,)
returns
-
loss
: torch.tensora torch.tensor containing a single loss value (if
reduction='mean'
or 'sum'
) or a loss value for each data record (ifreduction=none
).
examples
>>> import torch
>>> levels = torch.tensor(
... [[1., 1., 0., 0.],
... [1., 0., 0., 0.],
... [1., 1., 1., 1.]])
>>> logits = torch.tensor(
... [[2.1, 1.8, -2.1, -1.8],
... [1.9, -1., -1.5, -1.3],
... [1.9, 1.8, 1.7, 1.6]])
>>> CondorOrdinalCrossEntropy(logits, levels)
tensor(0.8259)