.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/detectors/openmax.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_detectors_openmax.py: OpenMax ============================== :class:`OpenMax ` was originally proposed for Open Set Recognition but can be adapted for Out-of-Distribution tasks. .. warning:: OpenMax requires ``libmr`` to be installed, which is broken at the moment. You can only use it by installing ``cython`` and ``numpy``, and ``libmr`` manually afterwards. .. GENERATED FROM PYTHON SOURCE LINES 13-25 .. code-block:: Python :lineno-start: 13 from torch.utils.data import DataLoader from torchvision.datasets import CIFAR10 from pytorch_ood.dataset.img import Textures from pytorch_ood.detector import OpenMax from pytorch_ood.model import WideResNet from pytorch_ood.utils import OODMetrics, ToUnknown, fix_random_seed fix_random_seed(123) device = "cuda:0" .. GENERATED FROM PYTHON SOURCE LINES 26-27 Setup preprocessing and data .. GENERATED FROM PYTHON SOURCE LINES 27-40 .. code-block:: Python :lineno-start: 27 trans = WideResNet.transform_for("cifar10-pt") dataset_train = CIFAR10(root="data", train=True, download=True, transform=trans) dataset_in_test = CIFAR10(root="data", train=False, download=True, transform=trans) dataset_out_test = Textures( root="data", download=True, transform=trans, target_transform=ToUnknown() ) train_loader = DataLoader(dataset_train, batch_size=128, shuffle=True) # create data loaders test_loader = DataLoader(dataset_in_test + dataset_out_test, batch_size=128) .. GENERATED FROM PYTHON SOURCE LINES 41-42 Stage 1: Create DNN pre-trained on CIFAR 10 .. GENERATED FROM PYTHON SOURCE LINES 42-44 .. code-block:: Python :lineno-start: 42 model = WideResNet(num_classes=10, pretrained="cifar10-pt").to(device).eval() .. GENERATED FROM PYTHON SOURCE LINES 45-46 Stage 2: Create and Fit OpenMax .. GENERATED FROM PYTHON SOURCE LINES 46-49 .. code-block:: Python :lineno-start: 46 detector = OpenMax(model, tailsize=25, alpha=5, euclid_weight=0.5) detector.fit(train_loader, device=device) .. GENERATED FROM PYTHON SOURCE LINES 50-51 Stage 3: Evaluate Detectors .. GENERATED FROM PYTHON SOURCE LINES 51-57 .. code-block:: Python :lineno-start: 51 metrics = OODMetrics() for x, y in test_loader: metrics.update(detector(x.to(device)), y) print(metrics.compute()) .. _sphx_glr_download_auto_examples_detectors_openmax.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: openmax.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: openmax.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_