Models

This module defines mappings from strings to models. This was necessary to isolate the model being run in memsave_torch.util.estimate and having a separate torch runtime for every single run. Otherwise, CUDA does not clear memory unless absolutely required, even on calling the torch.cuda.empty_cache() function, which makes memory measurements very difficult.

Utility file defining the various models, add more in the conv_model_fns dict.

experiments.util.models.prefix_in_pairs(prefix: str, it: List[str]) List[str]

Prefixes the given prefix after each entry of the list it.

Example

>>> models = ['resnet101', 'convnext']
>>> prefix_in_pairs('memsave_', models)
['resnet101', 'memsave_resnet101', 'convnext', 'memsave_convnext']
Parameters:
  • prefix (str) – Prefix to be added

  • it (List[str]) – Description

Returns:

The output iterable with items prefixed in pairs

Return type:

List[str]

experiments.util.models.conv_model_fns

All Models defined to be used as strings in experiments.paper_demo script

Model Name

Model Function

deepmodel

experiments.util.models._conv_model1()

deeprelumodel

experiments.util.models._convrelu_model1()

deeprelupoolmodel

experiments.util.models._convrelupool_model1()

alexnet

torchvision.models.alexnet()

convnext_base

torchvision.models.convnext_base()

resnet101

torchvision.models.resnet101()

vgg16

torchvision.models.vgg16()

resnet18

torchvision.models.resnet18()

fasterrcnn_resnet50_fpn_v2

torchvision.models.detection.fasterrcnn_resnet50_fpn_v2()

retinanet_resnet50_fpn_v2

torchvision.models.detection.retinanet_resnet50_fpn_v2()

ssdlite320_mobilenet_v3_large

torchvision.models.detection.ssdlite320_mobilenet_v3_large()

deeplabv3_resnet101

torchvision.models.segmentation.deeplabv3_resnet101()

fcn_resnet101

torchvision.models.segmentation.fcn_resnet101()

efficientnet_v2_l

torchvision.models.efficientnet_v2_l()

mobilenet_v3_large

torchvision.models.mobilenet_v3_large()

resnext101_64x4d

torchvision.models.resnext101_64x4d()