Shortcuts

Maximum Classifier Discrepancy (MCD)

dalib.adaptation.mcd.classifier_discrepancy(predictions1, predictions2)[source]

The Classifier Discrepancy in Maximum Classifier Discrepancy for Unsupervised Domain Adaptation (CVPR 2018).

The classfier discrepancy between predictions \(p_1\) and \(p_2\) can be described as:

\[d(p_1, p_2) = \dfrac{1}{K} \sum_{k=1}^K | p_{1k} - p_{2k} |,\]

where K is number of classes.

Parameters
  • predictions1 (torch.Tensor) – Classifier predictions \(p_1\). Expected to contain raw, normalized scores for each class

  • predictions2 (torch.Tensor) – Classifier predictions \(p_2\)

dalib.adaptation.mcd.entropy(predictions)[source]

Entropy of N predictions \((p_1, p_2, ..., p_N)\). The definition is:

\[d(p_1, p_2, ..., p_N) = -\dfrac{1}{K} \sum_{k=1}^K \log \left( \dfrac{1}{N} \sum_{i=1}^N p_{ik} \right)\]

where K is number of classes.

Note

This entropy function is specifically used in MCD and different from the usual entropy() function.

Parameters

predictions (torch.Tensor) – Classifier predictions. Expected to contain raw, normalized scores for each class

class dalib.adaptation.mcd.ImageClassifierHead(in_features, num_classes, bottleneck_dim=1024)[source]

Classifier Head for MCD.

Parameters
  • in_features (int) – Dimension of input features

  • num_classes (int) – Number of classes

  • bottleneck_dim (int, optional) – Feature dimension of the bottleneck layer. Default: 1024

Shape:
  • Inputs: \((minibatch, F)\) where F = in_features.

  • Output: \((minibatch, C)\) where C = num_classes.

Docs

Access comprehensive documentation for Transfer Learning Library

View Docs

Tutorials

Get started for transfer learning

Get Started