| | # # Ensemble Adversarial Inception ResNet v2 |
| |
|
| | **Inception-ResNet-v2** is a convolutional neural architecture that builds on the Inception family of architectures but incorporates [residual connections](https://paperswithcode.com/method/residual-connection) (replacing the filter concatenation stage of the Inception architecture). |
| |
|
| | This particular model was trained for study of adversarial examples (adversarial training). |
| |
|
| | The weights from this model were ported from [Tensorflow/Models](https://github.com/tensorflow/models). |
| |
|
| | ## How do I use this model on an image? |
| |
|
| | To load a pretrained model: |
| |
|
| | ```py |
| | >>> import timm |
| | >>> model = timm.create_model('ens_adv_inception_resnet_v2', pretrained=True) |
| | >>> model.eval() |
| | ``` |
| |
|
| | To load and preprocess the image: |
| |
|
| | ```py |
| | >>> import urllib |
| | >>> from PIL import Image |
| | >>> from timm.data import resolve_data_config |
| | >>> from timm.data.transforms_factory import create_transform |
| |
|
| | >>> config = resolve_data_config({}, model=model) |
| | >>> transform = create_transform(**config) |
| |
|
| | >>> url, filename = ("https://github.com/pytorch/hub/raw/master/images/dog.jpg", "dog.jpg") |
| | >>> urllib.request.urlretrieve(url, filename) |
| | >>> img = Image.open(filename).convert('RGB') |
| | >>> tensor = transform(img).unsqueeze(0) |
| | ``` |
| |
|
| | To get the model predictions: |
| |
|
| | ```py |
| | >>> import torch |
| | >>> with torch.no_grad(): |
| | ... out = model(tensor) |
| | >>> probabilities = torch.nn.functional.softmax(out[0], dim=0) |
| | >>> print(probabilities.shape) |
| | >>> |
| | ``` |
| |
|
| | To get the top-5 predictions class names: |
| |
|
| | ```py |
| | >>> |
| | >>> url, filename = ("https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt", "imagenet_classes.txt") |
| | >>> urllib.request.urlretrieve(url, filename) |
| | >>> with open("imagenet_classes.txt", "r") as f: |
| | ... categories = [s.strip() for s in f.readlines()] |
| |
|
| | >>> |
| | >>> top5_prob, top5_catid = torch.topk(probabilities, 5) |
| | >>> for i in range(top5_prob.size(0)): |
| | ... print(categories[top5_catid[i]], top5_prob[i].item()) |
| | >>> |
| | >>> |
| | ``` |
| |
|
| | Replace the model name with the variant you want to use, e.g. `ens_adv_inception_resnet_v2`. You can find the IDs in the model summaries at the top of this page. |
| |
|
| | To extract image features with this model, follow the [timm feature extraction examples](../feature_extraction), just change the name of the model you want to use. |
| |
|
| | ## How do I finetune this model? |
| |
|
| | You can finetune any of the pre-trained models just by changing the classifier (the last layer). |
| |
|
| | ```py |
| | >>> model = timm.create_model('ens_adv_inception_resnet_v2', pretrained=True, num_classes=NUM_FINETUNE_CLASSES) |
| | ``` |
| | To finetune on your own dataset, you have to write a training loop or adapt [timm's training |
| | script](https://github.com/rwightman/pytorch-image-models/blob/master/train.py) to use your dataset. |
| |
|
| | ## How do I train this model? |
| |
|
| | You can follow the [timm recipe scripts](../scripts) for training a new model afresh. |
| |
|
| | ## Citation |
| |
|
| | ```BibTeX |
| | @article{DBLP:journals/corr/abs-1804-00097, |
| | author = {Alexey Kurakin and |
| | Ian J. Goodfellow and |
| | Samy Bengio and |
| | Yinpeng Dong and |
| | Fangzhou Liao and |
| | Ming Liang and |
| | Tianyu Pang and |
| | Jun Zhu and |
| | Xiaolin Hu and |
| | Cihang Xie and |
| | Jianyu Wang and |
| | Zhishuai Zhang and |
| | Zhou Ren and |
| | Alan L. Yuille and |
| | Sangxia Huang and |
| | Yao Zhao and |
| | Yuzhe Zhao and |
| | Zhonglin Han and |
| | Junjiajia Long and |
| | Yerkebulan Berdibekov and |
| | Takuya Akiba and |
| | Seiya Tokui and |
| | Motoki Abe}, |
| | title = {Adversarial Attacks and Defences Competition}, |
| | journal = {CoRR}, |
| | volume = {abs/1804.00097}, |
| | year = {2018}, |
| | url = {http://arxiv.org/abs/1804.00097}, |
| | archivePrefix = {arXiv}, |
| | eprint = {1804.00097}, |
| | timestamp = {Thu, 31 Oct 2019 16:31:22 +0100}, |
| | biburl = {https://dblp.org/rec/journals/corr/abs-1804-00097.bib}, |
| | bibsource = {dblp computer science bibliography, https://dblp.org} |
| | } |
| | ``` |
| |
|
| | <!-- |
| | Type: model-index |
| | Collections: |
| | - Name: Ensemble Adversarial |
| | Paper: |
| | Title: Adversarial Attacks and Defences Competition |
| | URL: https://paperswithcode.com/paper/adversarial-attacks-and-defences-competition |
| | Models: |
| | - Name: ens_adv_inception_resnet_v2 |
| | In Collection: Ensemble Adversarial |
| | Metadata: |
| | FLOPs: 16959133120 |
| | Parameters: 55850000 |
| | File Size: 223774238 |
| | Architecture: |
| | - 1x1 Convolution |
| | - Auxiliary Classifier |
| | - Average Pooling |
| | - Average Pooling |
| | - Batch Normalization |
| | - Convolution |
| | - Dense Connections |
| | - Dropout |
| | - Inception-v3 Module |
| | - Max Pooling |
| | - ReLU |
| | - Softmax |
| | Tasks: |
| | - Image Classification |
| | Training Data: |
| | - ImageNet |
| | ID: ens_adv_inception_resnet_v2 |
| | Crop Pct: '0.897' |
| | Image Size: '299' |
| | Interpolation: bicubic |
| | Code: https://github.com/rwightman/pytorch-image-models/blob/d8e69206be253892b2956341fea09fdebfaae4e3/timm/models/inception_resnet_v2.py#L351 |
| | Weights: https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/ens_adv_inception_resnet_v2-2592a550.pth |
| | Results: |
| | - Task: Image Classification |
| | Dataset: ImageNet |
| | Metrics: |
| | Top 1 Accuracy: 1.0% |
| | Top 5 Accuracy: 17.32% |
| | --> |