nas¶
- class trojanvision.models.DARTS(name='darts', model_arch='darts', layers=20, init_channels=36, dropout_p=0.2, auxiliary=False, auxiliary_weight=0.4, genotype=None, model=_DARTS, supernet=False, arch_search=False, use_full_train_set=False, arch_lr=3e-4, arch_weight_decay=1e-3, arch_unrolled=False, primitives=PRIMITIVES, **kwargs)[source]¶
 DARTS-like models used in Neural Architecture Search.
- Available model names:
 {'darts'}
See also
- Parameters:
 supernet (bool) – Whether to use supernet (mixed operations). Defaults to
False.model_arch (str) –
Genotype name in
trojanvision.utils.model_archs.genotypesto use. Defaults to'darts'.'amoebanet', 'amoebanet_adapt''darts_v1', 'darts_v2'('darts')'drnas_cifar10'('drnas'), 'drnas_imagenet''enas', 'enas_adapt''nasnet', 'nasnet_adapt''pc_darts_cifar'('pc_darts'), 'pc_darts_image''pdarts''robust_darts''sgas''snas_mild', 'snas_adapt''random''diy_deep', 'diy_noskip', 'diy_deep_noskip'
layers (int) – Total number of layers. Defaults to
20.init_channels (int) –
out_channelof stem conv layer. Defaults to36.dropout_p (float) – Dropout probability. Defaults to
0.2.auxiliary (bool) – Whether to use auxiliary classifier. Defaults to
False.auxiliary_weight (float) – Loss weight of auxiliary classifier. Defaults to
0.4.arch_search (bool) – Whether to search supernet architecture weight parameters. Defaults to
False.use_full_train_set (bool) – Whether to use full training data during architecture search. Defaults to
False.arch_lr (float) – Learning rate for architecture optimizer. Defaults to
3e-4arch_weight_decay (float) – Weight decay for architecture optimizer. Defaults to
1e-3.arch_unrolled (bool) – Whether to use one-step unrolled validation loss (darts-v2). Defaults to
False.
- Variables:
 genotype (Genotype) – Genotype of cell architecture.
Note
The implementation of DARTS model is in
trojanvision.utils.model_archs.darts
- class trojanvision.models.ENAS(name='enas', model=_ENAS, folder_path=None, **kwargs)[source]¶
 This is yet another ENAS implementation based on Microsoft Neural Network Intelligence (NNI) library. You need to first generate
'enas_macro.pt'using NNI library and put it underfolder_path.Warning
It is highly recommended to use
trojanvision.models.DARTSwithmodel_arch='enas'instead.- Available model names:
 {'enas'}
See also
paper: Efficient Neural Architecture Search via Parameter Sharing
official code (tensorflow): https://github.com/melodyguan/enas
NNI code (pytorch): https://github.com/microsoft/nni
- class trojanvision.models.NATSbench(name='nats_bench', model=_NATSbench, model_index=0, model_seed=777, hp=200, dataset=None, dataset_name=None, nats_path=None, search_space='tss', **kwargs)[source]¶
 NATS-Bench proposed by Xuanyi Dong from University of Technology Sydney.
- Available model names:
 {'nats_bench'}
Note
There are prerequisites to use the benchmark:
pip install nats_bench.git clone https://github.com/D-X-Y/AutoDL-Projects.gitandpip install .Extract
NATS-tss-v1_0-3ffb9-fulltonats_path.
See also
- Parameters:
 model_index (int) –
model_indexpassed toapi.get_net_config(). Ranging from0 -- 15624. Defaults to0.model_seed (int) –
model_seedpassed toapi.get_net_param(). Choose from[777, 888, 999]. Defaults to777.hp (int) – Training epochs.
hppassed toapi.get_net_param(). Choose from[12, 200]. Defaults to200.nats_path (str) – NATS benchmark file path. It should be set as format like
'**/NATS-tss-v1_0-3ffb9-full'search_space (str) – Search space of topology or size. Choose from
['tss', 'sss'].dataset_name (str) – Dataset name. Choose from
['cifar10', 'cifar10-valid', 'cifar100', 'imagenet16-120'].
- class trojanvision.models.PNASNet(name='pnasnet', layer='_b', model=_PNASNet, **kwargs)[source]¶
 PNASNet proposed by Chenxi Liu from Johns Hopkins University in ECCV 2018.
Note
The implementation is imported from a third-party github repo. The correctness can’t be guaranteed. It might be better to reimplement according to tensorflow codes: https://github.com/tensorflow/models/blob/master/research/slim/nets/nasnet/pnasnet.py
- Available model names:
 {'pnasnet', 'pnasnet_a', 'pnasnet_b'}
- class trojanvision.models.ProxylessNAS(name='proxylessnas', target_platform='proxyless_cifar', model=_ProxylessNAS, **kwargs)[source]¶
 ProxylessNAS proposed by Han Cai from MIT in ICLR 2019.
- Available model names:
 {'proxylessnas'}
See also
- Parameters:
 target_platform (str) – Target platform to load using
torch.hub.load. Choose from['proxyless_cpu', 'proxyless_gpu', 'proxyless_mobile', 'proxyless_mobile_14', 'proxyless_cifar']Defaults to'proxyless_cifar'.