class_docstr: The search space proposed by `ProxylessNAS <https://arxiv.org/abs/1812.00332>`__.
  
  Following the official implementation, the inverted residual with kernel size / expand ratio variations in each layer
  is implemented with a :class:`~nni.retiarii.nn.pytorch.LayerChoice` with all-combination candidates. That means,
  when used in weight sharing, these candidates will be treated as separate layers, and won't be fine-grained shared.
  We note that :class:`MobileNetV3Space` is different in this perspective.
  
  This space can be implemented as part of :class:`MobileNetV3Space`, but we separate those following conventions.
  
  Parameters
  ----------
  num_labels
      The number of labels for classification.
  base_widths
      Widths of each stage, from stem, to body, to head. Length should be 9.
  dropout_rate
      Dropout rate for the final classification layer.
  width_mult
      Width multiplier for the model.
  bn_eps
      Epsilon for batch normalization.
  bn_momentum
      Momentum for batch normalization.
class_docstr_tok: ["The","search","space","proposed","by","`","ProxylessNAS","<","https",":","\/\/arxiv.org\/abs\/1812.00332",">","`","__",".","Following","the","official","implementation",",","the","inverted","residual","with","kernel","size","\/","expand","ratio","variations","in","each","layer","is","implemented","with","a",":","class",":","`","~nni.retiarii.nn.pytorch.LayerChoice","`","with","all-combination","candidates",".","That","means",",","when","used","in","weight","sharing",",","these","candidates","will","be","treated","as","separate","layers",",","and","wo","n't","be","fine-grained","shared",".","We","note","that",":","class",":","`","MobileNetV3Space","`","is","different","in","this","perspective",".","This","space","can","be","implemented","as","part","of",":","class",":","`","MobileNetV3Space","`",",","but","we","separate","those","following","conventions",".","Parameters","--","--","--","--","--","num_labels","The","number","of","labels","for","classification",".","base_widths","Widths","of","each","stage",",","from","stem",",","to","body",",","to","head",".","Length","should","be","9.","dropout_rate","Dropout","rate","for","the","final","classification","layer",".","width_mult","Width","multiplier","for","the","model",".","bn_eps","Epsilon","for","batch","normalization",".","bn_momentum","Momentum","for","batch","normalization","."]
code: def no_weight_decay(self):
      # this is useful for timm optimizer
      # no regularizer to linear layer
      if hasattr(self, "classifier"):
          return {"classifier.weight", "classifier.bias"}
      return set()
  
imports: import math
  from typing import Optional, Callable, List, Tuple, Iterator, Union, cast, overload
  import torch
  from torch import nn
  from nni.mutable import MutableExpression
  from nni.nas.nn.pytorch import ModelSpace, LayerChoice, Repeat, MutableConv2d, MutableLinear, MutableBatchNorm2d
  from .utils.pretrained import load_pretrained_weight
label_desc: Use image node_id 3 for calling the ProxylessNAS obj's underlying member method code with example usage: obj.no_weight_decay() and returns: set, unknown