You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1478 lines
379 KiB
1478 lines
379 KiB
{
|
|
"nbformat": 4,
|
|
"nbformat_minor": 0,
|
|
"metadata": {
|
|
"colab": {
|
|
"name": "EffResNetComparison",
|
|
"version": "0.3.2",
|
|
"provenance": [],
|
|
"collapsed_sections": [],
|
|
"include_colab_link": true
|
|
},
|
|
"kernelspec": {
|
|
"name": "python3",
|
|
"display_name": "Python 3"
|
|
},
|
|
"accelerator": "GPU"
|
|
},
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "view-in-github",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"<a href=\"https://colab.research.google.com/github/rwightman/pytorch-image-models/blob/master/notebooks/EffResNetComparison.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "7AUmKc2yMHz0",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# EfficientNets vs ResNets in PyTorch: On Why I Won't Be Tossing My ResNets\n",
|
|
"\n",
|
|
"First off, I want to be clear that I am not panning EfficientNets (https://arxiv.org/abs/1905.11946) here. They are unprecident in their parameter and FLOP efficiency. Thanks Mingxing Tan, Quoc V. Le, and the Google Brain team for releasing the code and weights.\n",
|
|
"\n",
|
|
"I dug into the EfficientNet paper the day it was released. I had recently implemented MobileNet-v3 and MNasNet architectures in PyTorch and EfficientNets have a lot in common with those models. After defining new model definitions strings, adding the depth scaling, and hacking together some weight porting code they were alive. \n",
|
|
"\n",
|
|
"First impressions were positive, \"Wow, that's some impressive accuracy for so few parameters (and such small checkpoints)''. After spending more time with the models, training them, running numerous validations, etc. some realities sank in. These models are less efficient in actual use than I'd expected. I started doing more detailed comparisons with familiar ResNet models and that's how this notebook came to be...\n",
|
|
"\n",
|
|
"## Objectives\n",
|
|
"A few points I'm hoping to illustrate in this notebook:\n",
|
|
"\n",
|
|
"1. The efficiencies of EfficientNets may not translate to better real-world performance on all frameworks and hardware platforms. Your trusty old ResNets may be just as good for your NN framework of choice running on an NVIDIA GPU. What consumes less resources in Tensorflow with an XLA optimized graph on a TPU, may end up being more resource hungry in PyTorch running with a CUDA backend.\n",
|
|
"\n",
|
|
"2. The story of a ResNet-50 does not end with a top-1 of 76.3% on ImageNet-1k. Neither do the other ResNe(X)t networks end with the results of the original papers or the pretrained weights of canonical Caffe, Tensorflow, or PyTorch implementations. Many papers compare shiny new architectures trained with recent techniques (or algorithmically searched hyper-parameters) to ResNet baselines that aren't given the same training effort. A ResNet-50 can be trained to well over 78% on ImageNet -- better than an 'original' ResNet-152 -- a 35M parameter difference! I've selected better pretrained models to compare against the EfficientNets. \n",
|
|
"\n",
|
|
"3. Most PyTorch implementations of EfficientNet that I'm aware of are using the Tensorflow ported weights, like my 'tf_efficientnet_b*' models. These ported weights requires explicit padding ops to match the behaviour of Tensorflow 'SAME' padding. This padding adds a runtime penalty (about 2% for forward) and a memory penalty (reducing max batch sizes by roughly 15-20%). I've natively trained the B0 through B2 models in PyTorch now, but haven't made progress on B3 and up (very slow to train).\n",
|
|
"\n",
|
|
"4. There are some nifty inference tricks, like test time pooling, that can breathe life into old models and allow them to be used outside of their standard resolutions without retraining. A few ResNets were run with TTP here at resolutions similar to the EffNet models as a comparison.\n",
|
|
"\n",
|
|
"## Considerations\n",
|
|
"\n",
|
|
"A few additional considerations:\n",
|
|
"* I'm only running the numbers on validation here to keep the Colab notebook sane. I have trained with all of the architectures, the relative differences in throughtput and memory usage/batch size limits fit my experience training as well.\n",
|
|
"\n",
|
|
"* This comparison is for PyTorch 1.0/1.1 with a CUDA backend. Future versions of PyTorch, CUDA, or the PyTorch XLA TPU backend may change things significantly. I'm hoping to compare these models with the PyTorch XLA impl at some point. Not sure if it's ready yet?\n",
|
|
"\n",
|
|
"* The analysis is for the ImageNet classification task. The extra resolution in all EfficientNet > b0 is arguably less beneficial for this task than say fine-grained classification, segmentation, object detection and other more interesting tasks. Since the input resolution is responsible for a large amount of the GPU memory use, and ResNets for those other tasks are also run at higher res, the comparisons made do highly depend on the task.\n",
|
|
"\n",
|
|
"## What's TIMM and where are the models?\n",
|
|
"\n",
|
|
"The `timm` module use here is a PyPi packaging of my PyTorch Image Models \n",
|
|
"- https://github.com/rwightman/pytorch-image-models\n",
|
|
"\n",
|
|
"Stand alone version of the EfficientNet, MobileNet-V3, MNasNet, etc can also be found at \n",
|
|
"- https://github.com/rwightman/gen-efficientnet-pytorch"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "0f8AXYsjtKs5",
|
|
"colab_type": "code",
|
|
"outputId": "c8a180e8-8b39-4905-aa46-f82c58b974a0",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 224
|
|
}
|
|
},
|
|
"source": [
|
|
"# Install necessary modules\n",
|
|
"!pip install timm"
|
|
],
|
|
"execution_count": 1,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Collecting timm\n",
|
|
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/1e/87/7de9e1175bda1151de177198bb2e99ac78cf0bdf97309b19f6d22b215b79/timm-0.1.6-py3-none-any.whl (83kB)\n",
|
|
"\u001b[K |████████████████████████████████| 92kB 28.0MB/s \n",
|
|
"\u001b[?25hRequirement already satisfied: torchvision in /usr/local/lib/python3.6/dist-packages (from timm) (0.3.0)\n",
|
|
"Requirement already satisfied: torch>=1.0 in /usr/local/lib/python3.6/dist-packages (from timm) (1.1.0)\n",
|
|
"Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from torchvision->timm) (4.3.0)\n",
|
|
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from torchvision->timm) (1.16.4)\n",
|
|
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from torchvision->timm) (1.12.0)\n",
|
|
"Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow>=4.1.1->torchvision->timm) (0.46)\n",
|
|
"Installing collected packages: timm\n",
|
|
"Successfully installed timm-0.1.6\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "1qh-__YFuWrS",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "_GEzMzggMxBw",
|
|
"colab_type": "code",
|
|
"outputId": "183aad75-69aa-4e00-c1bc-06f5b40baecf",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 306
|
|
}
|
|
},
|
|
"source": [
|
|
"# For our convenience, take a peek at what we're working with\n",
|
|
"!nvidia-smi"
|
|
],
|
|
"execution_count": 2,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Mon Jul 1 20:17:45 2019 \n",
|
|
"+-----------------------------------------------------------------------------+\n",
|
|
"| NVIDIA-SMI 418.67 Driver Version: 410.79 CUDA Version: 10.0 |\n",
|
|
"|-------------------------------+----------------------+----------------------+\n",
|
|
"| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n",
|
|
"| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n",
|
|
"|===============================+======================+======================|\n",
|
|
"| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |\n",
|
|
"| N/A 44C P8 15W / 70W | 0MiB / 15079MiB | 0% Default |\n",
|
|
"+-------------------------------+----------------------+----------------------+\n",
|
|
" \n",
|
|
"+-----------------------------------------------------------------------------+\n",
|
|
"| Processes: GPU Memory |\n",
|
|
"| GPU PID Type Process name Usage |\n",
|
|
"|=============================================================================|\n",
|
|
"| No running processes found |\n",
|
|
"+-----------------------------------------------------------------------------+\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "_69zvVb7v4cw",
|
|
"colab_type": "code",
|
|
"outputId": "3ca2e609-6c50-47e2-823d-d0e9a07f985f",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 51
|
|
}
|
|
},
|
|
"source": [
|
|
"# Import the core modules, check which GPU we end up with and scale batch size accordingly\n",
|
|
"import torch\n",
|
|
"\n",
|
|
"# Flipping this on/off will change the memory dynamics, since I usually\n",
|
|
"# validate and train with it on, will leave it on by default\n",
|
|
"torch.backends.cudnn.benchmark = True\n",
|
|
"\n",
|
|
"import timm\n",
|
|
"from timm.data import *\n",
|
|
"from timm.utils import *\n",
|
|
"\n",
|
|
"import pynvml\n",
|
|
"from collections import OrderedDict\n",
|
|
"import logging\n",
|
|
"import time\n",
|
|
"\n",
|
|
"def log_gpu_memory():\n",
|
|
" handle = pynvml.nvmlDeviceGetHandleByIndex(0)\n",
|
|
" info = pynvml.nvmlDeviceGetMemoryInfo(handle)\n",
|
|
" info.free = round(info.free / 1024**2)\n",
|
|
" info.used = round(info.used / 1024**2)\n",
|
|
" logging.info('GPU memory free: {}, memory used: {}'.format(info.free, info.used))\n",
|
|
" return info.used\n",
|
|
"\n",
|
|
"def get_gpu_memory_total():\n",
|
|
" handle = pynvml.nvmlDeviceGetHandleByIndex(0)\n",
|
|
" info = pynvml.nvmlDeviceGetMemoryInfo(handle)\n",
|
|
" info.total = round(info.total / 1024**2)\n",
|
|
" return info.total\n",
|
|
" \n",
|
|
"pynvml.nvmlInit()\n",
|
|
"setup_default_logging()\n",
|
|
"log_gpu_memory()\n",
|
|
"\n",
|
|
"total_gpu_mem = get_gpu_memory_total()\n",
|
|
"if total_gpu_mem > 12300:\n",
|
|
" logging.info('Running on a T4 GPU or other with > 12GB memory, setting batch size to 128')\n",
|
|
" batch_size = 128\n",
|
|
"else:\n",
|
|
" logging.info('Running on a K80 GPU or other with < 12GB memory, batch size set to 80')\n",
|
|
" batch_size = 80"
|
|
],
|
|
"execution_count": 3,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"GPU memory free: 15080, memory used: 0\n",
|
|
"Running on a T4 GPU or other with > 12GB memory, setting batch size to 128\n"
|
|
],
|
|
"name": "stderr"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "OVQORlCtNEkX",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# ImageNet-'V2' Validation\n",
|
|
"\n",
|
|
"If you're not aware, ImageNet-V2 (https://github.com/modestyachts/ImageNetV2) is a useful collection of 3 ImageNet-like validation sets that have been collected more recently, 10 years after the original ImageNet.\n",
|
|
"\n",
|
|
"Aside from being conveniently smaller and easier to deploy in a notebook, it's a useful test set to compare how models might generalize beyond the original ImageNet-1k data. We're going to use the 'Matched Frequency' version of the dataset. There is a markedly lower accuracy rate across the board for this test set. It's very interesting to see how different models fall relative to each other. I've included an analysis of those differences at the bottom.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "IfBJUXdPxa2C",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"# Download and extract the dataset (note it's not actually a gz like the file says)\n",
|
|
"if not os.path.exists('./imagenetv2-matched-frequency'):\n",
|
|
" !curl -s https://s3-us-west-2.amazonaws.com/imagenetv2public/imagenetv2-matched-frequency.tar.gz | tar x\n",
|
|
"dataset = Dataset('./imagenetv2-matched-frequency/')\n",
|
|
"for i in range(len(dataset)): # warmup\n",
|
|
" dummy = dataset[i]"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "yPPC-A50wUji",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"# A basic validation routine with timing and accuracy metrics\n",
|
|
"\n",
|
|
"def validate(model, loader):\n",
|
|
" batch_time = AverageMeter()\n",
|
|
" losses = AverageMeter()\n",
|
|
" top1 = AverageMeter()\n",
|
|
" top5 = AverageMeter()\n",
|
|
"\n",
|
|
" model.eval()\n",
|
|
" #torch.cuda.reset_max_memory_allocated()\n",
|
|
" #torch.cuda.reset_max_memory_cached()\n",
|
|
" gpu_used_baseline = log_gpu_memory()\n",
|
|
" gpu_used = 0\n",
|
|
" start = end = time.time()\n",
|
|
" num_batches = len(loader)\n",
|
|
" log_iter = round(0.25 * num_batches)\n",
|
|
" with torch.no_grad():\n",
|
|
" for i, (input, target) in enumerate(loader):\n",
|
|
" target = target.cuda()\n",
|
|
" input = input.cuda()\n",
|
|
"\n",
|
|
" output = model(input)\n",
|
|
"\n",
|
|
" prec1, prec5 = accuracy(output.data, target, topk=(1, 5))\n",
|
|
" top1.update(prec1.item(), input.size(0))\n",
|
|
" top5.update(prec5.item(), input.size(0))\n",
|
|
"\n",
|
|
" batch_time.update(time.time() - end)\n",
|
|
" end = time.time()\n",
|
|
"\n",
|
|
" if i and i % log_iter == 0:\n",
|
|
" if gpu_used == 0:\n",
|
|
" gpu_used = log_gpu_memory()\n",
|
|
" logging.info(\n",
|
|
" 'Test: [{0:>4d}/{1}] '\n",
|
|
" 'Time: {batch_time.val:.3f} ({batch_time.avg:.3f}) '\n",
|
|
" 'Rate: {rate_avg:.3f} img/sec '\n",
|
|
" 'Prec@1: {top1.val:>7.4f} ({top1.avg:>7.4f}) '\n",
|
|
" 'Prec@5: {top5.val:>7.4f} ({top5.avg:>7.4f})'.format(\n",
|
|
" i, len(loader), batch_time=batch_time,\n",
|
|
" rate_avg=input.size(0) / batch_time.avg,\n",
|
|
" loss=losses, top1=top1, top5=top5))\n",
|
|
" gpu_used = gpu_used - gpu_used_baseline\n",
|
|
" # These measures are less consistent than method being used wrt\n",
|
|
" # where the batch sizes can be pushed for each model\n",
|
|
" #gpu_used = torch.cuda.max_memory_allocated()\n",
|
|
" #gpu_cached = torch.cuda.max_memory_cached()\n",
|
|
" elapsed = time.time() - start\n",
|
|
" results = OrderedDict(\n",
|
|
" top1=round(top1.avg, 3), top1_err=round(100 - top1.avg, 3),\n",
|
|
" top5=round(top5.avg, 3), top5_err=round(100 - top5.avg, 3),\n",
|
|
" rate=len(loader.dataset) / elapsed, gpu_used=gpu_used,\n",
|
|
" )\n",
|
|
"\n",
|
|
" logging.info(' * Prec@1 {:.3f} ({:.3f}) Prec@5 {:.3f} ({:.3f}) Rate {:.3f}'.format(\n",
|
|
" results['top1'], results['top1_err'], results['top5'],\n",
|
|
" results['top5_err'], results['rate']))\n",
|
|
"\n",
|
|
" return results\n"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "9hj8cy16Wnju",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Model Selection\n",
|
|
"\n",
|
|
"As per the intro, one of the goals here is to compare EfficientNets with a more capable set of baseline models. I've gone through the various models included in my collection and selected several that I feel are more appropriate matches based on their Top-1 scores from much better training setups than originals.\n",
|
|
"\n",
|
|
"Here we will split them into 4 lists for analysis and charting:\n",
|
|
"* EfficientNet models with natively trained PyTorch weights and no padding hacks\n",
|
|
"* EfficientNet models with weights ported from Tensorflow and SAME padding hack\n",
|
|
"* ResNe(X)t (or DPN) models at 224x224 native resoultion with weights from myself, Gluon model zoo, or Facebook Instagram trained models\n",
|
|
"* ResNe(X)t models at non-native resolutions with Test Time Pooling enabled\n",
|
|
"\n",
|
|
"Note: I realize it's not entirely fair to include the IG ResNext model since it's not technically trained purely on ImageNet like the others. But, it's a truly impressive model, and actually quite a bit easier to work with in PyTorch than even the B4 EfficientNet."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "DCQg0hky5lVm",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"# Define the models and arguments that will be used for comparisons\n",
|
|
"\n",
|
|
"# include original ImageNet-1k validation results for comparison against ImageNet-V2 here\n",
|
|
"orig_top1 = dict(\n",
|
|
" efficientnet_b0=76.912,\n",
|
|
" efficientnet_b1=78.692,\n",
|
|
" efficientnet_b2=79.760,\n",
|
|
" tf_efficientnet_b1=78.554,\n",
|
|
" tf_efficientnet_b2=79.606,\n",
|
|
" tf_efficientnet_b3=80.874,\n",
|
|
" tf_efficientnet_b4=82.604,\n",
|
|
" dpn68b=77.514,\n",
|
|
" seresnext26_32x4d=77.104,\n",
|
|
" resnet50=78.486,\n",
|
|
" gluon_seresnext50_32x4d=79.912,\n",
|
|
" gluon_seresnext101_32x4d=80.902,\n",
|
|
" ig_resnext101_32x8d=82.688,\n",
|
|
")\n",
|
|
"\n",
|
|
"models_effnet = [\n",
|
|
" dict(model_name='efficientnet_b0'),\n",
|
|
" dict(model_name='efficientnet_b1'),\n",
|
|
" dict(model_name='efficientnet_b2'),\n",
|
|
"]\n",
|
|
"\n",
|
|
"models_effnet_tf = [\n",
|
|
" dict(model_name='tf_efficientnet_b2'), # overlapping between TF non-TF for comparison\n",
|
|
" dict(model_name='tf_efficientnet_b3'),\n",
|
|
" dict(model_name='tf_efficientnet_b4'),\n",
|
|
"]\n",
|
|
"\n",
|
|
"models_resnet = [\n",
|
|
" dict(model_name='dpn68b'), # b0, yes, not a ResNet, need to find a better b0 comparison\n",
|
|
" #dict(model_name='seresnext26_32x4d'), # b0, not the best b0 comparison either, a little slow\n",
|
|
" dict(model_name='resnet50'), # b1\n",
|
|
" dict(model_name='gluon_seresnext50_32x4d'), # b2-b3\n",
|
|
" dict(model_name='gluon_seresnext101_32x4d'), # b3\n",
|
|
" dict(model_name='ig_resnext101_32x8d'), # b4\n",
|
|
"]\n",
|
|
"\n",
|
|
"models_resnet_ttp = [\n",
|
|
" dict(model_name='resnet50', input_size=(3, 240, 240), ttp=True),\n",
|
|
" dict(model_name='resnet50', input_size=(3, 260, 260), ttp=True),\n",
|
|
" dict(model_name='gluon_seresnext50_32x4d', input_size=(3, 260, 260), ttp=True),\n",
|
|
" dict(model_name='gluon_seresnext50_32x4d', input_size=(3, 300, 300), ttp=True),\n",
|
|
" dict(model_name='gluon_seresnext101_32x4d', input_size=(3, 260, 260), ttp=True),\n",
|
|
" dict(model_name='gluon_seresnext101_32x4d', input_size=(3, 300, 300), ttp=True),\n",
|
|
" dict(model_name='ig_resnext101_32x8d', input_size=(3, 300, 300), ttp=True),\n",
|
|
"]"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "PPloo-oE545b",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Model Runner\n",
|
|
"\n",
|
|
"The runner creates each model, a matching data loader, and runs the validation. It uses several features of my image collection module for this.\n",
|
|
"\n",
|
|
"Test time pooling is enabled here if requested in the model_args. The pooling is implemented as a module the wraps the base network. It's important to set the crop factor for the images to 1.0 when enabling pooling."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "BX_CKBnM8XNO",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"from timm.models import TestTimePoolHead\n",
|
|
"\n",
|
|
"def model_runner(model_args):\n",
|
|
" model_name = model_args['model_name']\n",
|
|
" pretrained = True\n",
|
|
" checkpoint_path = ''\n",
|
|
" if 'model_url' in model_args and model_args['model_url']:\n",
|
|
" !wget -q {model_args['model_url']}\n",
|
|
" checkpoint_path = './' + os.path.basename(model_args['model_url'])\n",
|
|
" logging.info('Downloaded checkpoint {} from specified URL'.format(checkpoint_path))\n",
|
|
" pretrained = False\n",
|
|
" \n",
|
|
" model = timm.create_model(\n",
|
|
" model_name,\n",
|
|
" num_classes=1000,\n",
|
|
" in_chans=3,\n",
|
|
" pretrained=pretrained,\n",
|
|
" checkpoint_path=checkpoint_path)\n",
|
|
"\n",
|
|
" data_config = timm.data.resolve_data_config(model_args, model=model, verbose=True)\n",
|
|
" \n",
|
|
" ttp = False\n",
|
|
" if 'ttp' in model_args and model_args['ttp']:\n",
|
|
" ttp = True\n",
|
|
" logging.info('Applying test time pooling to model')\n",
|
|
" model = TestTimePoolHead(model, original_pool=model.default_cfg['pool_size'])\n",
|
|
" \n",
|
|
" model_key = [model_name, str(data_config['input_size'][-1])]\n",
|
|
" if ttp:\n",
|
|
" model_key += ['ttp']\n",
|
|
" model_key = '-'.join(model_key)\n",
|
|
" param_count = sum([m.numel() for m in model.parameters()])\n",
|
|
" logging.info('Model {} created, param count: {}. Running...'.format(model_key, param_count))\n",
|
|
"\n",
|
|
" model = model.cuda()\n",
|
|
"\n",
|
|
" loader = create_loader(\n",
|
|
" dataset,\n",
|
|
" input_size=data_config['input_size'],\n",
|
|
" batch_size=batch_size,\n",
|
|
" use_prefetcher=True,\n",
|
|
" interpolation='bicubic',\n",
|
|
" mean=data_config['mean'],\n",
|
|
" std=data_config['std'],\n",
|
|
" crop_pct=1.0 if ttp else data_config['crop_pct'],\n",
|
|
" num_workers=2)\n",
|
|
"\n",
|
|
" result = validate(model, loader)\n",
|
|
" \n",
|
|
" logging.info('Model {} done.\\n'.format(model_key))\n",
|
|
" result['param_count'] = param_count / 1e6\n",
|
|
" # add extra non-metric keys for comparisons \n",
|
|
" result['model_name'] = model_name\n",
|
|
" result['input_size'] = data_config['input_size']\n",
|
|
" result['ttp'] = ttp\n",
|
|
"\n",
|
|
" del model\n",
|
|
" del loader\n",
|
|
" torch.cuda.empty_cache()\n",
|
|
" \n",
|
|
" return model_key, result"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "xx-j8Z-z_EGo",
|
|
"colab_type": "code",
|
|
"outputId": "8c6571b5-131e-419d-b9e6-2366a45cda8e",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 1000
|
|
}
|
|
},
|
|
"source": [
|
|
"# Run validation on all the models, get a coffee (or two)\n",
|
|
"results_effnet = {}\n",
|
|
"results_effnet_tf = {}\n",
|
|
"results_resnet = {}\n",
|
|
"results_resnet_ttp = {}\n",
|
|
"\n",
|
|
"logging.info('Running validation on native PyTorch EfficientNet models')\n",
|
|
"for ma in models_effnet:\n",
|
|
" mk, mr = model_runner(ma)\n",
|
|
" results_effnet[mk] = mr\n",
|
|
" \n",
|
|
"logging.info('Running validation on ported Tensorflow EfficientNet models')\n",
|
|
"for ma in models_effnet_tf:\n",
|
|
" mk, mr = model_runner(ma)\n",
|
|
" results_effnet_tf[mk] = mr\n",
|
|
" \n",
|
|
"logging.info('Running validation on ResNe(X)t models')\n",
|
|
"for ma in models_resnet:\n",
|
|
" mk, mr = model_runner(ma)\n",
|
|
" results_resnet[mk] = mr\n",
|
|
" \n",
|
|
"logging.info('Running validation on ResNe(X)t models w/ Test Time Pooling enabled')\n",
|
|
"for ma in models_resnet_ttp:\n",
|
|
" mk, mr = model_runner(ma)\n",
|
|
" results_resnet_ttp[mk] = mr\n",
|
|
" \n",
|
|
"results = {**results_effnet, **results_effnet_tf, **results_resnet, **results_resnet_ttp}"
|
|
],
|
|
"execution_count": 8,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Running validation on native PyTorch EfficientNet models\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/efficientnet_b0-d6904d92.pth\" to /root/.cache/torch/checkpoints/efficientnet_b0-d6904d92.pth\n",
|
|
"100%|██████████| 21376958/21376958 [00:02<00:00, 8676444.76it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model efficientnet_b0-224 created, param count: 5288548. Running...\n",
|
|
"GPU memory free: 14276, memory used: 804\n",
|
|
"GPU memory free: 11346, memory used: 3734\n",
|
|
"Test: [ 20/79] Time: 0.190 (0.805) Rate: 159.098 img/sec Prec@1: 64.8438 (69.6801) Prec@5: 87.5000 (88.9509)\n",
|
|
"Test: [ 40/79] Time: 0.194 (0.800) Rate: 159.972 img/sec Prec@1: 51.5625 (68.8072) Prec@5: 79.6875 (88.5671)\n",
|
|
"Test: [ 60/79] Time: 0.186 (0.790) Rate: 162.028 img/sec Prec@1: 60.9375 (66.1501) Prec@5: 83.5938 (86.6035)\n",
|
|
" * Prec@1 64.580 (35.420) Prec@5 85.890 (14.110) Rate 165.732\n",
|
|
"Model efficientnet_b0-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/efficientnet_b1-533bc792.pth\" to /root/.cache/torch/checkpoints/efficientnet_b1-533bc792.pth\n",
|
|
"100%|██████████| 31502706/31502706 [00:03<00:00, 9936470.52it/s] \n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 240, 240)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.882\n",
|
|
"Model efficientnet_b1-240 created, param count: 7794184. Running...\n",
|
|
"GPU memory free: 14260, memory used: 820\n",
|
|
"GPU memory free: 10890, memory used: 4190\n",
|
|
"Test: [ 20/79] Time: 0.311 (0.919) Rate: 139.286 img/sec Prec@1: 69.5312 (73.9583) Prec@5: 86.7188 (90.7366)\n",
|
|
"Test: [ 40/79] Time: 0.310 (0.878) Rate: 145.851 img/sec Prec@1: 58.5938 (72.1799) Prec@5: 81.2500 (89.9200)\n",
|
|
"Test: [ 60/79] Time: 0.312 (0.867) Rate: 147.679 img/sec Prec@1: 67.1875 (69.0958) Prec@5: 81.2500 (87.9867)\n",
|
|
" * Prec@1 67.550 (32.450) Prec@5 87.290 (12.710) Rate 151.628\n",
|
|
"Model efficientnet_b1-240 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/efficientnet_b2-cf78dc4d.pth\" to /root/.cache/torch/checkpoints/efficientnet_b2-cf78dc4d.pth\n",
|
|
"100%|██████████| 36788101/36788101 [00:03<00:00, 11752398.17it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.89\n",
|
|
"Model efficientnet_b2-260 created, param count: 9109994. Running...\n",
|
|
"GPU memory free: 14258, memory used: 822\n",
|
|
"GPU memory free: 10266, memory used: 4814\n",
|
|
"Test: [ 20/79] Time: 0.416 (0.941) Rate: 136.036 img/sec Prec@1: 68.7500 (72.9539) Prec@5: 88.2812 (91.0714)\n",
|
|
"Test: [ 40/79] Time: 0.429 (0.914) Rate: 140.068 img/sec Prec@1: 58.5938 (71.9893) Prec@5: 82.0312 (90.4535)\n",
|
|
"Test: [ 60/79] Time: 0.527 (0.894) Rate: 143.120 img/sec Prec@1: 64.0625 (69.3904) Prec@5: 85.9375 (88.8960)\n",
|
|
" * Prec@1 67.800 (32.200) Prec@5 88.200 (11.800) Rate 144.201\n",
|
|
"Model efficientnet_b2-260 done.\n",
|
|
"\n",
|
|
"Running validation on ported Tensorflow EfficientNet models\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/tf_efficientnet_b2-e393ef04.pth\" to /root/.cache/torch/checkpoints/tf_efficientnet_b2-e393ef04.pth\n",
|
|
"100%|██████████| 36797929/36797929 [00:03<00:00, 11014399.83it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.89\n",
|
|
"Model tf_efficientnet_b2-260 created, param count: 9109994. Running...\n",
|
|
"GPU memory free: 14258, memory used: 822\n",
|
|
"GPU memory free: 9568, memory used: 5512\n",
|
|
"Test: [ 20/79] Time: 1.217 (0.960) Rate: 133.306 img/sec Prec@1: 66.4062 (72.7679) Prec@5: 87.5000 (90.4018)\n",
|
|
"Test: [ 40/79] Time: 0.522 (0.917) Rate: 139.645 img/sec Prec@1: 58.5938 (71.3986) Prec@5: 79.6875 (89.7675)\n",
|
|
"Test: [ 60/79] Time: 0.939 (0.908) Rate: 141.046 img/sec Prec@1: 64.8438 (68.9037) Prec@5: 85.1562 (88.2172)\n",
|
|
" * Prec@1 67.400 (32.600) Prec@5 87.580 (12.420) Rate 142.727\n",
|
|
"Model tf_efficientnet_b2-260 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/tf_efficientnet_b3-e3bd6955.pth\" to /root/.cache/torch/checkpoints/tf_efficientnet_b3-e3bd6955.pth\n",
|
|
"100%|██████████| 49381362/49381362 [00:03<00:00, 12584590.15it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 300, 300)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.904\n",
|
|
"Model tf_efficientnet_b3-300 created, param count: 12233232. Running...\n",
|
|
"GPU memory free: 14242, memory used: 838\n",
|
|
"GPU memory free: 5604, memory used: 9476\n",
|
|
"Test: [ 20/79] Time: 1.267 (1.161) Rate: 110.269 img/sec Prec@1: 66.4062 (73.8467) Prec@5: 90.6250 (91.6667)\n",
|
|
"Test: [ 40/79] Time: 0.833 (1.097) Rate: 116.649 img/sec Prec@1: 60.9375 (72.8087) Prec@5: 83.5938 (90.7393)\n",
|
|
"Test: [ 60/79] Time: 1.242 (1.082) Rate: 118.310 img/sec Prec@1: 67.1875 (70.1588) Prec@5: 84.3750 (89.1522)\n",
|
|
" * Prec@1 68.520 (31.480) Prec@5 88.700 (11.300) Rate 119.134\n",
|
|
"Model tf_efficientnet_b3-300 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/tf_efficientnet_b4-74ee3bed.pth\" to /root/.cache/torch/checkpoints/tf_efficientnet_b4-74ee3bed.pth\n",
|
|
"100%|██████████| 77989689/77989689 [00:06<00:00, 12751872.12it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 380, 380)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.922\n",
|
|
"Model tf_efficientnet_b4-380 created, param count: 19341616. Running...\n",
|
|
"GPU memory free: 14214, memory used: 866\n",
|
|
"GPU memory free: 2460, memory used: 12620\n",
|
|
"Test: [ 20/79] Time: 1.761 (2.057) Rate: 62.222 img/sec Prec@1: 69.5312 (76.4509) Prec@5: 91.4062 (92.6339)\n",
|
|
"Test: [ 40/79] Time: 1.740 (1.914) Rate: 66.889 img/sec Prec@1: 64.8438 (75.4954) Prec@5: 83.5938 (92.2637)\n",
|
|
"Test: [ 60/79] Time: 1.782 (1.866) Rate: 68.600 img/sec Prec@1: 71.0938 (72.8740) Prec@5: 85.1562 (90.6634)\n",
|
|
" * Prec@1 71.340 (28.660) Prec@5 90.110 (9.890) Rate 69.103\n",
|
|
"Model tf_efficientnet_b4-380 done.\n",
|
|
"\n",
|
|
"Running validation on ResNe(X)t models\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-dpn-pretrained/releases/download/v0.1/dpn68b_extra-84854c156.pth\" to /root/.cache/torch/checkpoints/dpn68b_extra-84854c156.pth\n",
|
|
"100%|██████████| 50765517/50765517 [00:04<00:00, 12271223.44it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.48627450980392156, 0.4588235294117647, 0.40784313725490196)\n",
|
|
"\tstd: (0.23482446870963955, 0.23482446870963955, 0.23482446870963955)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model dpn68b-224 created, param count: 12611602. Running...\n",
|
|
"GPU memory free: 14240, memory used: 840\n",
|
|
"GPU memory free: 11342, memory used: 3738\n",
|
|
"Test: [ 20/79] Time: 0.442 (0.876) Rate: 146.176 img/sec Prec@1: 54.6875 (70.2381) Prec@5: 85.9375 (88.9509)\n",
|
|
"Test: [ 40/79] Time: 1.007 (0.847) Rate: 151.177 img/sec Prec@1: 57.8125 (69.5122) Prec@5: 78.9062 (88.4337)\n",
|
|
"Test: [ 60/79] Time: 1.015 (0.834) Rate: 153.556 img/sec Prec@1: 60.1562 (66.8033) Prec@5: 78.9062 (86.5907)\n",
|
|
" * Prec@1 65.600 (34.400) Prec@5 85.940 (14.060) Rate 155.150\n",
|
|
"Model dpn68b-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/rw_resnet50-86acaeed.pth\" to /root/.cache/torch/checkpoints/rw_resnet50-86acaeed.pth\n",
|
|
"100%|██████████| 102488165/102488165 [00:07<00:00, 13755311.81it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model resnet50-224 created, param count: 25557032. Running...\n",
|
|
"GPU memory free: 14182, memory used: 898\n",
|
|
"GPU memory free: 12652, memory used: 2428\n",
|
|
"Test: [ 20/79] Time: 0.406 (0.859) Rate: 149.042 img/sec Prec@1: 66.4062 (72.6562) Prec@5: 90.6250 (90.4762)\n",
|
|
"Test: [ 40/79] Time: 0.662 (0.820) Rate: 156.156 img/sec Prec@1: 58.5938 (71.1128) Prec@5: 85.9375 (89.5960)\n",
|
|
"Test: [ 60/79] Time: 0.601 (0.807) Rate: 158.594 img/sec Prec@1: 61.7188 (68.3017) Prec@5: 82.0312 (87.7946)\n",
|
|
" * Prec@1 66.810 (33.190) Prec@5 87.000 (13.000) Rate 159.510\n",
|
|
"Model resnet50-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-pretrained-gluonresnet/releases/download/v0.1/gluon_seresnext50_32x4d-90cf2d6e.pth\" to /root/.cache/torch/checkpoints/gluon_seresnext50_32x4d-90cf2d6e.pth\n",
|
|
"100%|██████████| 110578827/110578827 [00:08<00:00, 12788555.61it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model gluon_seresnext50_32x4d-224 created, param count: 27559896. Running...\n",
|
|
"GPU memory free: 14180, memory used: 900\n",
|
|
"GPU memory free: 12510, memory used: 2570\n",
|
|
"Test: [ 20/79] Time: 1.013 (0.875) Rate: 146.238 img/sec Prec@1: 70.3125 (74.2188) Prec@5: 88.2812 (91.0714)\n",
|
|
"Test: [ 40/79] Time: 1.197 (0.859) Rate: 149.059 img/sec Prec@1: 60.9375 (72.8849) Prec@5: 82.8125 (90.4345)\n",
|
|
"Test: [ 60/79] Time: 1.185 (0.859) Rate: 148.930 img/sec Prec@1: 64.8438 (70.0307) Prec@5: 84.3750 (88.8064)\n",
|
|
" * Prec@1 68.670 (31.330) Prec@5 88.320 (11.680) Rate 150.435\n",
|
|
"Model gluon_seresnext50_32x4d-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://github.com/rwightman/pytorch-pretrained-gluonresnet/releases/download/v0.1/gluon_seresnext101_32x4d-cf52900d.pth\" to /root/.cache/torch/checkpoints/gluon_seresnext101_32x4d-cf52900d.pth\n",
|
|
"100%|██████████| 196505510/196505510 [00:12<00:00, 16164511.02it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model gluon_seresnext101_32x4d-224 created, param count: 48955416. Running...\n",
|
|
"GPU memory free: 14086, memory used: 994\n",
|
|
"GPU memory free: 12272, memory used: 2808\n",
|
|
"Test: [ 20/79] Time: 0.897 (1.016) Rate: 125.932 img/sec Prec@1: 72.6562 (75.5580) Prec@5: 88.2812 (91.6667)\n",
|
|
"Test: [ 40/79] Time: 0.899 (0.997) Rate: 128.324 img/sec Prec@1: 64.8438 (74.4284) Prec@5: 83.5938 (91.2538)\n",
|
|
"Test: [ 60/79] Time: 0.867 (0.986) Rate: 129.853 img/sec Prec@1: 67.1875 (71.7597) Prec@5: 89.0625 (89.6644)\n",
|
|
" * Prec@1 70.010 (29.990) Prec@5 88.910 (11.090) Rate 131.572\n",
|
|
"Model gluon_seresnext101_32x4d-224 done.\n",
|
|
"\n",
|
|
"Downloading: \"https://download.pytorch.org/models/ig_resnext101_32x8-c38310e5.pth\" to /root/.cache/torch/checkpoints/ig_resnext101_32x8-c38310e5.pth\n",
|
|
"100%|██████████| 356056638/356056638 [00:11<00:00, 31320647.42it/s]\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 224, 224)\n",
|
|
"\tinterpolation: bilinear\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Model ig_resnext101_32x8d-224 created, param count: 88791336. Running...\n",
|
|
"GPU memory free: 13946, memory used: 1134\n",
|
|
"GPU memory free: 10564, memory used: 4516\n",
|
|
"Test: [ 20/79] Time: 1.560 (1.664) Rate: 76.934 img/sec Prec@1: 76.5625 (78.9807) Prec@5: 93.7500 (94.2708)\n",
|
|
"Test: [ 40/79] Time: 1.450 (1.582) Rate: 80.907 img/sec Prec@1: 66.4062 (77.9535) Prec@5: 88.2812 (93.7881)\n",
|
|
"Test: [ 60/79] Time: 1.470 (1.540) Rate: 83.129 img/sec Prec@1: 74.2188 (75.0256) Prec@5: 91.4062 (92.6358)\n",
|
|
" * Prec@1 73.830 (26.170) Prec@5 92.280 (7.720) Rate 83.352\n",
|
|
"Model ig_resnext101_32x8d-224 done.\n",
|
|
"\n",
|
|
"Running validation on ResNe(X)t models w/ Test Time Pooling enabled\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 240, 240)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model resnet50-240-ttp created, param count: 25557032. Running...\n",
|
|
"GPU memory free: 14182, memory used: 898\n",
|
|
"GPU memory free: 12098, memory used: 2982\n",
|
|
"Test: [ 20/79] Time: 0.429 (0.892) Rate: 143.505 img/sec Prec@1: 67.1875 (72.7679) Prec@5: 89.0625 (90.3274)\n",
|
|
"Test: [ 40/79] Time: 0.757 (0.845) Rate: 151.416 img/sec Prec@1: 55.4688 (71.1128) Prec@5: 84.3750 (89.5198)\n",
|
|
"Test: [ 60/79] Time: 1.154 (0.831) Rate: 154.108 img/sec Prec@1: 61.7188 (68.4170) Prec@5: 82.8125 (87.6537)\n",
|
|
" * Prec@1 67.020 (32.980) Prec@5 87.040 (12.960) Rate 154.346\n",
|
|
"Model resnet50-240-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model resnet50-260-ttp created, param count: 25557032. Running...\n",
|
|
"GPU memory free: 14182, memory used: 898\n",
|
|
"GPU memory free: 11650, memory used: 3430\n",
|
|
"Test: [ 20/79] Time: 1.172 (1.097) Rate: 116.650 img/sec Prec@1: 68.7500 (72.9911) Prec@5: 87.5000 (90.5134)\n",
|
|
"Test: [ 40/79] Time: 0.902 (0.976) Rate: 131.211 img/sec Prec@1: 57.8125 (72.0084) Prec@5: 82.8125 (89.9581)\n",
|
|
"Test: [ 60/79] Time: 0.832 (0.940) Rate: 136.223 img/sec Prec@1: 60.1562 (69.2751) Prec@5: 85.9375 (88.2684)\n",
|
|
" * Prec@1 67.630 (32.370) Prec@5 87.630 (12.370) Rate 135.915\n",
|
|
"Model resnet50-260-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model gluon_seresnext50_32x4d-260-ttp created, param count: 27559896. Running...\n",
|
|
"GPU memory free: 14180, memory used: 900\n",
|
|
"GPU memory free: 11594, memory used: 3486\n",
|
|
"Test: [ 20/79] Time: 1.229 (1.147) Rate: 111.577 img/sec Prec@1: 71.8750 (74.4420) Prec@5: 86.7188 (91.2946)\n",
|
|
"Test: [ 40/79] Time: 1.056 (1.053) Rate: 121.593 img/sec Prec@1: 62.5000 (73.8567) Prec@5: 85.1562 (90.6822)\n",
|
|
"Test: [ 60/79] Time: 1.133 (1.015) Rate: 126.067 img/sec Prec@1: 68.7500 (71.1194) Prec@5: 86.7188 (89.0625)\n",
|
|
" * Prec@1 69.670 (30.330) Prec@5 88.620 (11.380) Rate 126.519\n",
|
|
"Model gluon_seresnext50_32x4d-260-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 300, 300)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model gluon_seresnext50_32x4d-300-ttp created, param count: 27559896. Running...\n",
|
|
"GPU memory free: 14180, memory used: 900\n",
|
|
"GPU memory free: 10880, memory used: 4200\n",
|
|
"Test: [ 20/79] Time: 1.041 (1.484) Rate: 86.250 img/sec Prec@1: 71.8750 (76.3021) Prec@5: 89.0625 (91.9271)\n",
|
|
"Test: [ 40/79] Time: 1.037 (1.287) Rate: 99.457 img/sec Prec@1: 64.0625 (75.0572) Prec@5: 86.7188 (91.3300)\n",
|
|
"Test: [ 60/79] Time: 1.064 (1.216) Rate: 105.295 img/sec Prec@1: 71.0938 (72.1952) Prec@5: 88.2812 (89.7285)\n",
|
|
" * Prec@1 70.470 (29.530) Prec@5 89.180 (10.820) Rate 104.694\n",
|
|
"Model gluon_seresnext50_32x4d-300-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 260, 260)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model gluon_seresnext101_32x4d-260-ttp created, param count: 48955416. Running...\n",
|
|
"GPU memory free: 14086, memory used: 994\n",
|
|
"GPU memory free: 11634, memory used: 3446\n",
|
|
"Test: [ 20/79] Time: 1.307 (1.413) Rate: 90.559 img/sec Prec@1: 71.8750 (76.3393) Prec@5: 89.0625 (92.0387)\n",
|
|
"Test: [ 40/79] Time: 1.307 (1.362) Rate: 93.981 img/sec Prec@1: 61.7188 (75.6479) Prec@5: 82.0312 (91.8826)\n",
|
|
"Test: [ 60/79] Time: 1.303 (1.343) Rate: 95.329 img/sec Prec@1: 74.2188 (72.8868) Prec@5: 87.5000 (90.1895)\n",
|
|
" * Prec@1 71.140 (28.860) Prec@5 89.470 (10.530) Rate 95.842\n",
|
|
"Model gluon_seresnext101_32x4d-260-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 300, 300)\n",
|
|
"\tinterpolation: bicubic\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model gluon_seresnext101_32x4d-300-ttp created, param count: 48955416. Running...\n",
|
|
"GPU memory free: 14086, memory used: 994\n",
|
|
"GPU memory free: 10834, memory used: 4246\n",
|
|
"Test: [ 20/79] Time: 1.691 (1.786) Rate: 71.683 img/sec Prec@1: 71.8750 (77.5298) Prec@5: 91.4062 (93.1176)\n",
|
|
"Test: [ 40/79] Time: 1.669 (1.732) Rate: 73.888 img/sec Prec@1: 63.2812 (76.2767) Prec@5: 85.1562 (92.5877)\n",
|
|
"Test: [ 60/79] Time: 1.693 (1.715) Rate: 74.635 img/sec Prec@1: 75.0000 (73.7193) Prec@5: 92.1875 (90.9964)\n",
|
|
" * Prec@1 71.990 (28.010) Prec@5 90.100 (9.900) Rate 74.874\n",
|
|
"Model gluon_seresnext101_32x4d-300-ttp done.\n",
|
|
"\n",
|
|
"Data processing configuration for current model + dataset:\n",
|
|
"\tinput_size: (3, 300, 300)\n",
|
|
"\tinterpolation: bilinear\n",
|
|
"\tmean: (0.485, 0.456, 0.406)\n",
|
|
"\tstd: (0.229, 0.224, 0.225)\n",
|
|
"\tcrop_pct: 0.875\n",
|
|
"Applying test time pooling to model\n",
|
|
"Model ig_resnext101_32x8d-300-ttp created, param count: 88791336. Running...\n",
|
|
"GPU memory free: 13946, memory used: 1134\n",
|
|
"GPU memory free: 9288, memory used: 5792\n",
|
|
"Test: [ 20/79] Time: 2.850 (3.122) Rate: 41.006 img/sec Prec@1: 75.0000 (79.3155) Prec@5: 93.7500 (94.8661)\n",
|
|
"Test: [ 40/79] Time: 2.855 (2.989) Rate: 42.826 img/sec Prec@1: 64.8438 (78.6966) Prec@5: 87.5000 (94.3979)\n",
|
|
"Test: [ 60/79] Time: 2.856 (2.945) Rate: 43.463 img/sec Prec@1: 74.2188 (76.2295) Prec@5: 89.0625 (93.0456)\n",
|
|
" * Prec@1 75.170 (24.830) Prec@5 92.660 (7.340) Rate 43.622\n",
|
|
"Model ig_resnext101_32x8d-300-ttp done.\n",
|
|
"\n"
|
|
],
|
|
"name": "stderr"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "URXdMbNaOYtq",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Results\n",
|
|
"\n",
|
|
"We're going walk through the results and look at several things:\n",
|
|
"\n",
|
|
"1. A look at the Top-1 accuracy % across all the models\n",
|
|
"2. Parameter efficiency\n",
|
|
"3. Model throughput (images/sec)\n",
|
|
"4. (Practical) GPU memory usage in PyTorch\n",
|
|
"5. A comparison of model-model pairings\n",
|
|
"6. ImageNet-V2 generalization"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "MvVqWbobe9Jo",
|
|
"colab_type": "code",
|
|
"colab": {}
|
|
},
|
|
"source": [
|
|
"# Setup common charting variables\n",
|
|
"import numpy as np\n",
|
|
"import matplotlib\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"matplotlib.rcParams['figure.figsize'] = [16, 10]\n",
|
|
"\n",
|
|
"def annotate(ax, xv, yv, names, xo=0., yo=0., align='left'):\n",
|
|
" for i, (x, y) in enumerate(zip(xv, yv)):\n",
|
|
" ax1.text(x + xo, y + yo, names[i], fontsize=9, ha=align)\n",
|
|
"\n",
|
|
"names_all = list(results.keys())\n",
|
|
"names_effnet = list(results_effnet.keys())\n",
|
|
"names_effnet_tf = list(results_effnet_tf.keys())\n",
|
|
"names_resnet = list(results_resnet.keys())\n",
|
|
"names_resnet_ttp = list(results_resnet_ttp.keys())\n",
|
|
"\n",
|
|
"acc_all = np.array([results[m]['top1'] for m in names_all])\n",
|
|
"acc_effnet = np.array([results[m]['top1'] for m in names_effnet])\n",
|
|
"acc_effnet_tf = np.array([results[m]['top1'] for m in names_effnet_tf])\n",
|
|
"acc_resnet = np.array([results[m]['top1'] for m in names_resnet])\n",
|
|
"acc_resnet_ttp = np.array([results[m]['top1'] for m in names_resnet_ttp])"
|
|
],
|
|
"execution_count": 0,
|
|
"outputs": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "P9vtQbVa48kW",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Top-1 accuracy\n",
|
|
"\n",
|
|
"We'll start by ranking the models by Top-1 accuracy on the ImageNet-V2 validation set. \n",
|
|
"\n",
|
|
"You'll notice that a well trained\n",
|
|
"* ResNet-50 is holding it's own against an EfficientNet-B1, much closer to that than the B0 it's paired with in the paper\n",
|
|
"* SE-ResNeXt50-32x4d can best the B2 and B3\n",
|
|
"* SE-ResNeXt101-32x4d is very close to the B4.\n",
|
|
"\n",
|
|
"The ResNeXt101-32x8d pretrained on Facebook's Instagram is in a class of it's own. Somewhat unfairly since pretrained on a larger dataset. However, since it generalizes better than any model I've seen to this dataset (see bottom) and runs faster with less memory overehead than the EfficientNet-B4 (despite it's 88M parameters), I've included it."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "MjM-eMtSalDS",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 340
|
|
},
|
|
"outputId": "3bdd1164-4395-47f8-d090-f4c5868027c6"
|
|
},
|
|
"source": [
|
|
"print('Results by top-1 accuracy:')\n",
|
|
"results_by_top1 = list(sorted(results.keys(), key=lambda x: results[x]['top1'], reverse=True))\n",
|
|
"for m in results_by_top1:\n",
|
|
" print(' Model: {:34}, Top-1 {:4.2f}, Top-5 {:4.2f}, Rate: {:4.2f}'.format(m, results[m]['top1'], results[m]['top5'], results[m]['rate']))"
|
|
],
|
|
"execution_count": 10,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Results by top-1 accuracy:\n",
|
|
" Model: ig_resnext101_32x8d-300-ttp , Top-1 75.17, Top-5 92.66, Rate: 43.62\n",
|
|
" Model: ig_resnext101_32x8d-224 , Top-1 73.83, Top-5 92.28, Rate: 83.35\n",
|
|
" Model: gluon_seresnext101_32x4d-300-ttp , Top-1 71.99, Top-5 90.10, Rate: 74.87\n",
|
|
" Model: tf_efficientnet_b4-380 , Top-1 71.34, Top-5 90.11, Rate: 69.10\n",
|
|
" Model: gluon_seresnext101_32x4d-260-ttp , Top-1 71.14, Top-5 89.47, Rate: 95.84\n",
|
|
" Model: gluon_seresnext50_32x4d-300-ttp , Top-1 70.47, Top-5 89.18, Rate: 104.69\n",
|
|
" Model: gluon_seresnext101_32x4d-224 , Top-1 70.01, Top-5 88.91, Rate: 131.57\n",
|
|
" Model: gluon_seresnext50_32x4d-260-ttp , Top-1 69.67, Top-5 88.62, Rate: 126.52\n",
|
|
" Model: gluon_seresnext50_32x4d-224 , Top-1 68.67, Top-5 88.32, Rate: 150.43\n",
|
|
" Model: tf_efficientnet_b3-300 , Top-1 68.52, Top-5 88.70, Rate: 119.13\n",
|
|
" Model: efficientnet_b2-260 , Top-1 67.80, Top-5 88.20, Rate: 144.20\n",
|
|
" Model: resnet50-260-ttp , Top-1 67.63, Top-5 87.63, Rate: 135.92\n",
|
|
" Model: efficientnet_b1-240 , Top-1 67.55, Top-5 87.29, Rate: 151.63\n",
|
|
" Model: tf_efficientnet_b2-260 , Top-1 67.40, Top-5 87.58, Rate: 142.73\n",
|
|
" Model: resnet50-240-ttp , Top-1 67.02, Top-5 87.04, Rate: 154.35\n",
|
|
" Model: resnet50-224 , Top-1 66.81, Top-5 87.00, Rate: 159.51\n",
|
|
" Model: dpn68b-224 , Top-1 65.60, Top-5 85.94, Rate: 155.15\n",
|
|
" Model: efficientnet_b0-224 , Top-1 64.58, Top-5 85.89, Rate: 165.73\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "ENtozBUwwdO-",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 745
|
|
},
|
|
"outputId": "c0834583-d1f3-4976-9c7b-c54ef4520e79"
|
|
},
|
|
"source": [
|
|
"sort_ix = np.argsort(acc_all)\n",
|
|
"acc_sorted = acc_all[sort_ix]\n",
|
|
"acc_min, acc_max = acc_sorted[0], acc_sorted[-1]\n",
|
|
"names_sorted = np.array(names_all)[sort_ix]\n",
|
|
"fig = plt.figure()\n",
|
|
"ax1 = fig.add_subplot(111)\n",
|
|
"ix = np.arange(len(acc_sorted))\n",
|
|
"ix_effnet = ix[np.in1d(names_sorted[ix], names_effnet)]\n",
|
|
"ix_effnet_tf = ix[np.in1d(names_sorted[ix], names_effnet_tf)]\n",
|
|
"ix_resnet = ix[np.in1d(names_sorted[ix], names_resnet)]\n",
|
|
"ix_resnet_ttp = ix[np.in1d(names_sorted[ix], names_resnet_ttp)]\n",
|
|
"ax1.bar(ix_effnet, acc_sorted[ix_effnet], color='r', label='EfficientNet')\n",
|
|
"ax1.bar(ix_effnet_tf, acc_sorted[ix_effnet_tf], color='#8C001A', label='TF-EfficientNet')\n",
|
|
"ax1.bar(ix_resnet, acc_sorted[ix_resnet], color='b', label='ResNet')\n",
|
|
"ax1.bar(ix_resnet_ttp, acc_sorted[ix_resnet_ttp], color='#43C6DB', label='ResNet + TTP')\n",
|
|
"plt.ylim([math.ceil(acc_min - .3*(acc_max - acc_min)),\n",
|
|
" math.ceil(acc_max + .3*(acc_max - acc_min))])\n",
|
|
"ax1.set_title('Top-1 Comparison')\n",
|
|
"ax1.set_ylabel('Top-1 Accuracy (%)')\n",
|
|
"ax1.set_xlabel('Network Architecture')\n",
|
|
"ax1.set_xticks(ix)\n",
|
|
"ax1.set_xticklabels(names_sorted, rotation='45', ha='right')\n",
|
|
"ax1.legend()\n",
|
|
"plt.show()"
|
|
],
|
|
"execution_count": 11,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"image/png": "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\nn1plnw899FAOP/zwNa7pwx/+cJ588snB42233TZ/8id/Mnh87bXX5phjjhm2j9mzZ+eGG25Y4xp6\nxRpYAABg/bC2R2NbW+0lG2+8cWbPnr1C+1VXXZXTTjstRx55ZJLk8ssvz6OPPppx48atts+tttoq\n11577XOvd8CHP/zhHHnkkZkwYcJg2x133JG77747O+yww4j6mD17dmbOnJmDDz54jevoBSOwAAAA\na9HHP/7xfO5zn8sZZ5yRI444IoceemieeOKJ7Lrrrrnmmmty5pln5vzzz0+SzJkzJ/vtt1923nnn\nTJkyJT/84Q8zd+7cTJo0KUny7LPPZvr06dltt90yefLkXHbZZUmSm266KXvttVcOP/zw/P7v/36O\nOOKItNZy0UUX5aGHHsree++dvffee7CmU045JWefffYKtS5cuDDHHntsdt999+yyyy754he/mKef\nfjrvfve7c80116Svry/XXHPNKHxrI2MEFgAAYA0tWrQofX19g8ennXZajj/++Hzzm9/MG9/4xsGp\nwJtsssngSO2ZZ545eP0RRxyRU089NYcddlieeuqp/OpXv8r8+fMHz19xxRXZbLPNcvvtt2fx4sXZ\nY489csABByRJ7rzzznz/+9/PVlttlT322CPf+ta38o53vCMf+tCH8vWvfz1bbLHFYD9/+qd/mo9+\n9KOZM2fOMvWfffbZ2WeffXLllVfmsccey+6775799tsv73vf+zJz5sz84z/+41r/zp4PARYAAGAN\nrWoK8Ug8/vjjmTdvXg477LAk/e9IXd6MGTNy1113DU4p/sUvfpH7778/G264YXbfffdsvfXWSZK+\nvr7MnTs3f/iHf7jSZ40bNy7Tp0/PBz7wgRx00EHL9P9v//ZvgyPCTz31VH7yk5+s0ecZDQIsAADA\nOqq1losvvjgHHnjgMu033XRTXvjCFw4ejxs3Ls8888ywfR111FH5wAc+MDg9eWn/n//85/PqV796\nmWtvvfXWtVD92mcNLAAAwBjYdNNNs/XWW+f6669PkixevHiZ3YOT5MADD8yll16aJUuWJEnuu+++\nLFy4cLX9Pv744yu0b7DBBjn55JNz4YUXLtP/xRdfnDawYdWdd945bB9jTYAFAABYQ0vXwC79OfXU\nU5/T/Z/+9Kdz0UUXZfLkyXnta1+bn/3sZ8ucP/7447PDDjtkypQpmTRpUk488cTVjrSecMIJef3r\nX7/MJk5LHXfcccvcf8YZZ2TJkiWZPHlydtxxx5xxxhlJkr333jt33333OreJU7URbA091qZOndpm\nzpw51mUAAADrkHvuuSfbb7/9WJfBc7Syv1tV3dFam7q6e43AAgAA0AkCLAAAAJ0gwAIAANAJAiwA\nAACdIMACAADQCQIsAAAAnSDAAgAArIFHHnlk8P2vL33pS/Oyl71s8Liqlnk/7Ny5c1e4/5hjjsl2\n2203eM1rX/vaJMnixYuz3377Db6D9eabb86OO+6Yvr6+zJs3L4cffviwdR1//PG5++671+gz3XTT\nTfn2t789eHzmmWdmwoQJmT9//mDbJptsstp+3v/+96/R81dnfE96BQAAGGUX1MvWan+ntHnDnt98\n880ze/bsJP1Bb5NNNsk73/nOJP0hb+m54Zx33nkrBNI777wzSQbvP+mkk3LaaaflyCOPTJJce+21\nw/b58Y9/fLXPXZWbbropm2yyyWCYTpItttgiF1xwQT74wQ+OuJ/3v//9+bu/+7s1rmNVjMACAACs\nI+bPn58jjzwyt99+e/r6+nLZZZflc5/7XM4444wcccQRmTt3biZNmpQkefbZZ/POd74zkyZNyuTJ\nk3PxxRcnSfbaa6/MnDkzSTJjxoxMmzYtU6ZMyZvf/OY88cQTSZJtt90273nPezJlypTstNNOuffe\nezN37tx87GMfy4UXXpi+vr7cfPPNSZJjjz0211xzTR599NEV6v3MZz6T3XffPX19fTnxxBPz7LPP\n5tRTT82iRYvS19eXI444Yq1+PwIsAADAWrY0wPX19eWwww5b5XXTp08fvO6II47IlltumY9//OPZ\nc889M3v27Jx44ok59NBDc9555+Wqq65a5t7LL788c+fOzezZs3PXXXetEBZ//vOf56yzzsqNN96Y\nWbNmZerUqfnQhz40eH6LLbbIrFmz8va3vz3nn39+tt1225x00kk5+eSTM3v27Oy5555J+keTjz32\n2HzkIx9Zpv977rkn11xzTb71rW9l9uzZGTduXK666qqcc8452XjjjTN79uwVan6+ejaFuKpeneSa\nIU2vSPLuJDcl+ViSjZI8k+R/t9Zu61UdAAAAo21pgFudlU0hHqkbb7wxJ510UsaP7491L3nJS5Y5\nf8stt+Tuu+/OHnvskSR5+umnM23atMHzf/zHf5wk2XXXXfOFL3xh2Ge94x3vSF9f3+AU6ST52te+\nljvuuCO77bZbkv7QvuWWW67RZxmpngXY1toPkvQlSVWNSzIvyXVJ/inJe1trX6mqg5Ocm2SvXtUB\nAACwLnjb296WO++8M1tttVVuuOGGnj+vtZb9998/V1999UrPv/CFL0ySjBs3Ls8888ywfb34xS/O\nW9/61lxyySXL9H/00UfnAx/4wNorejVGawrxvkl+2Fp7IElL8lsD7ZsleWiUagAAABgzn/jEJzJ7\n9uy1Fl7333//XHbZZYPhc/k1qq95zWvyrW99K3PmzEmSLFy4MPfdd9+wfW666aZ5/PHHV3rub/7m\nb5Z53r777ptrr712cIfiRx99NA888ECSZIMNNsiSJUvW/MOtwmgF2D9LsjT2/3WS86rqv5Ocn+S0\nUaoBAABgnTJ0DWxfX1+efvrpEd97/PHHZ5tttsnkyZOz884757Of/ewy5ydOnJh//ud/zlve8pZM\nnjw506ZNy7333jtsn4ccckiuu+66ZTZxWmqLLbbIYYcdlsWLFydJdthhh5x11lk54IADMnny5Oy/\n//756U9/miQ54YQTMnny5LW+iVO11tZqhys8oGrD9I+y7thae7iqLkryX621z1fVnyY5obW230ru\nOyHJCUmyzTbb7Lo0yQMAACT9mwhtv/32Y10Gz9HK/m5VdUdrberq7h2NEdiDksxqrT08cHx0kqUr\nhP81ye4ru6m1dnlrbWprberEiRNHoUwAAADWZaMRYN+SX08fTvpHY/9o4Pd9ktw/CjUAAADQcT3b\nhThJqupFSfZPcuKQ5j9P8pGqGp/kqQxMEwYAAIDh9DTAttYWJtl8ubZvJtm1l88FAABg/TNauxAD\nAADA8yLAAgAA0AkCLAAAwBoaN25c+vr6MmnSpBxyyCF57LHH1qifvfbaK1On/votMjNnzsxee+01\n7D1z585d4d2v6zsBFgAAWC9Urd2fkdh4440ze/bsfO9738tLXvKSXHLJJWtc//z58/OVr3xlxNcL\nsAAAAKyRadOmZd68eYPH5513XnbbbbdMnjw573nPe5IkCxcuzBve8IbsvPPOmTRpUq655prB66dP\nn56zzz57hX6fffbZTJ8+fbCvyy67LEly6qmn5uabb05fX18uvPDCHn+6dUNPdyEGAAD4TfDss8/m\na1/7Wo477rgkyYwZM3L//ffntttuS2sthx56aL7xjW9kwYIF2WqrrfLlL385SfKLX/xisI9p06bl\nuuuuy9e//vVsuummg+1XXHFFNttss9x+++1ZvHhx9thjjxxwwAE555xzcv755+dLX/rS6H7YMWQE\nFgAAYA0tWrQofX19eelLX5qHH344+++/f5L+ADtjxozssssumTJlSu69997cf//92WmnnfLVr341\n73rXu3LzzTdns802W6a/008/PWedddYybTNmzMinPvWp9PX15Q/+4A/yyCOP5P777x+1z7guEWAB\nAADW0NI1sA888EBaa4NrYFtrOe200zJ79uzMnj07c+bMyXHHHZdXvepVmTVrVnbaaaecfvrped/7\n3rdMf/vss08WLVqUW265ZbCttZaLL754sK8f//jHOeCAA0b1c64rBFgAAIDnacKECbnoootywQUX\n5JlnnsmBBx6YK6+8Mk888USSZN68eZk/f34eeuihTJgwIUceeWSmT5+eWbNmrdDX6aefnnPPPXfw\n+MADD8yll16aJUuWJEnuu+++LFy4MJtuumkef/zx0fmA6whrYAEAANaCXXbZJZMnT87VV1+do446\nKvfcc0+mTZuWJNlkk03ymc98JnPmzMn06dPzghe8IBtssEEuvfTSFfo5+OCDM3HixMHj448/PnPn\nzs2UKVPSWsvEiRNz/fXXZ/LkyRk3blx23nnnHHPMMTn55JNH7bOOlWqtjXUNqzV16tQ2c+bMsS4D\nAABYh9xzzz3Zfvvtx7oMnqOV/d2q6o7W2tRV3DLIFGIAAAA6QYAFAACgEwRYAAAAOkGABQAAoBME\nWAAAADpBgAUAAKATBFgAAIA1NG7cuPT19WXSpEk55JBD8thjj61RP3vttVemTv31W2RmzpyZvfba\na9h75s6dm89+9rNr9Lyh/uIv/iJ9fX3ZYYcdsvHGG6evry99fX3ZcccdV9p+7bXX5phjjsl2222X\nvr6+TJkyJd/5zneedx0jMX5UngIAANBj+31nzlrt78Zpr1ztNRtvvHFmz56dJDn66KNzySWX5O//\n/u/X6Hnz58/PV77ylRx00EEjun5pgH3rW9867HX//M//nLlz5+bMM89c6flLLrlksL83vvGNg59n\n6HOWb//Sl76U8847L4cffnhmzJiRE088MXfdddeI6n4+jMACAACsBdOmTcu8efMGj88777zstttu\nmTx5ct7znvckSRYuXJg3vOEN2XnnnTNp0qRcc801g9dPnz49Z5999gr9Pvvss5k+ffpgX5dddlmS\n5NRTT83NN9+cvr6+XHjhhT3+dKv2ute9LnPmrN3/eLAqRmABAACep2effTZf+9rXctxxxyVJZsyY\nkfvvvz+33XZbWms59NBD841vfCMLFizIVlttlS9/+ctJkl/84heDfUybNi3XXXddvv71r2fTTTcd\nbL/iiiuy2Wab5fbbb8/ixYuzxx575IADDsg555yT888/P1/60pdG98Mu59///d+z0047jcqzBFgA\nAIA1tGjRovT19WXevHnZfvvts//++yfpD7AzZszILrvskiR54okncv/992fPPffMKaeckne96115\n4xvfmD333HOZ/k4//fScddZZ+eAHPzjYNmPGjNx111259tprk/SH3vvvvz8bbrjhKut65JFHsu++\n+yZJHn300Tz99NO5/vrrkySf/vSn10rgnD59es4666xMnDgxV1xxxfPubyQEWAAAgDW0dA3sk08+\nmQMPPDCXXHJJ3vGOd6S1ltNOOy0nnnjiCvfMmjUrN9xwQ04//fTsu+++efe73z14bp999snpp5+e\nW265ZbCttZaLL744Bx544DL93HTTTausa/PNNx9cs7q6NbBrauka2NFkDSwAAMDzNGHChFx00UW5\n4IIL8swzz+TAAw/MlVdemSeeeCJJMm/evMyfPz8PPfRQJkyYkCOPPDLTp0/PrFmzVujr9NNPz7nn\nnjt4fOCBB+bSSy/NkiVLkiT33XdfFi5cmE033TSPP/746HzAdYQRWAAAgLVgl112yeTJk3P11Vfn\nqKOOyj333JNp06YlSTbZZJN85jOfyZw5czJ9+vS84AUvyAYbbJBLL710hX4OPvjgTJw4cfD4+OOP\nz9y5czNlypS01jJx4sRcf/31mTx5csaNG5edd945xxxzTE4++eRR+6xjpVprY13Dak2dOrXNnDlz\nrMsAAADWIffcc0+23377sS6D52hlf7equqO1NnUVtwwyhRgAAIBOEGABAADoBAEWAACAThBgAQCA\nzurCnj782vP9ewmwAABAJ2200UZ55JFHhNiOaK3lkUceyUYbbbTGfXiNDgAA0Elbb711HnzwwSxY\nsGCsS2GENtpoo2y99dZrfL8ACwAAdNIGG2yQ7bbbbqzLYBSZQgwAAEAnCLAAAAB0ggALAABAJwiw\nAAAAdIIACwAAQCcIsAAAAHSCAAsAAEAnCLAAAAB0ggALAABAJwiwAAAAdIIACwAAQCcIsAAAAHSC\n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\n",
|
|
"text/plain": [
|
|
"<Figure size 1152x720 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"tags": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "jpI0KfoM5lCZ",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Parameter Efficiency\n",
|
|
"\n",
|
|
"No surprises here, exactly as per the EfficientNet paper, they are in a class of their own in terms of parameter efficiency.\n",
|
|
"\n",
|
|
"The test time pooling effectively increases the parameter efficiency of the ResNet models, but at the cost of both throughput and memory efficency (see later graphs).\n",
|
|
"\n",
|
|
"I'm not going to repeat the FLOP differences as there are again no surprises, same as paper barring differences in the models being compare to. If you are looking at FLOP counts for the EfficientNet models, do keep in mind, their counts appear to be for inference optiized models with the BatcNorm layers fused. The counts will be higher if you're working with trainable models that still have their BN layers. You can see some counts I did on ONNX optimized models here (https://github.com/rwightman/gen-efficientnet-pytorch/blob/master/BENCHMARK.md)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "iE69A1asS4_n",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 621
|
|
},
|
|
"outputId": "ee70eb92-8618-42a5-a5af-d584821f471e"
|
|
},
|
|
"source": [
|
|
"params_effnet = np.array([results[m]['param_count'] for m in names_effnet])\n",
|
|
"params_effnet_tf = np.array([results[m]['param_count'] for m in names_effnet_tf])\n",
|
|
"params_resnet = np.array([results[m]['param_count'] for m in names_resnet])\n",
|
|
"params_resnet_ttp = np.array([results[m]['param_count'] for m in names_resnet_ttp])\n",
|
|
"\n",
|
|
"fig = plt.figure()\n",
|
|
"ax1 = fig.add_subplot(111)\n",
|
|
"ax1.scatter(params_effnet, acc_effnet, s=10, c='r', marker=\"s\", label='EfficientNet')\n",
|
|
"ax1.plot(params_effnet, acc_effnet, c='r')\n",
|
|
"annotate(ax1, params_effnet, acc_effnet, names_effnet, xo=-.5, align='right')\n",
|
|
"\n",
|
|
"ax1.scatter(params_effnet_tf, acc_effnet_tf, s=10, c='#8C001A', marker=\"v\", label='TF-EfficientNet')\n",
|
|
"ax1.plot(params_effnet_tf, acc_effnet_tf, c='#8C001A')\n",
|
|
"annotate(ax1, params_effnet_tf, acc_effnet_tf, names_effnet_tf, xo=.5, align='left')\n",
|
|
"\n",
|
|
"ax1.scatter(params_resnet, acc_resnet, s=10, c='b', marker=\"o\", label='ResNet')\n",
|
|
"ax1.plot(params_resnet, acc_resnet, c='b')\n",
|
|
"annotate(ax1, params_resnet, acc_resnet, names_resnet, xo=0.5, align='left')\n",
|
|
"\n",
|
|
"ax1.scatter(params_resnet_ttp, acc_resnet_ttp, s=10, c='#43C6DB', marker=\"x\", label='ResNet TTP')\n",
|
|
"ax1.plot(params_resnet_ttp, acc_resnet_ttp, c='#43C6DB')\n",
|
|
"annotate(ax1, params_resnet_ttp, acc_resnet_ttp, names_resnet_ttp, xo=0.3, align='left')\n",
|
|
"\n",
|
|
"ax1.set_title('Top-1 vs Parameter Count')\n",
|
|
"ax1.set_ylabel('Top-1 Accuracy (%)')\n",
|
|
"ax1.set_xlabel('Parameters (Millions)')\n",
|
|
"ax1.legend()\n",
|
|
"plt.show()"
|
|
],
|
|
"execution_count": 12,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABB4AAAJcCAYAAABe5mduAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl8VNX5x/HPk8meTELIoiIiiBsg\nMSAoiAsiEFSKdf25oCJCtbXFBaNQcWmLO4iiiFrcihut1qVWQwRFAatsUjdUUIMC6iSBkMmeTM7v\nj5mkAcIWgUng+3698iL33HvPfe6dAJlnznmOOecQEREREREREdkdIsIdgIiIiIiIiIjsvZR4EBER\nEREREZHdRokHEREREREREdltlHgQERERERERkd1GiQcRERERERER2W2UeBARERERERGR3UaJBxER\nERERERHZbZR4EBGRFs/MSht91ZlZRaPti3fxtRLM7J9mttrMnJn12ZX9b+WaV5lZbeh+SsxsmZkN\n2d3X/aXM7Egzq90N/caa2UQz+yb0TPLN7K9mdtCuvtZm1x1iZqt25zVERET2RUo8iIhIi+ecS6z/\nAr4HftWo7bldfTlgHnAhsGEX970t80L3lwK8APzDzBJ3pgMzizCzVvN/u5lFNtFmwKvAIOA8IBno\nAXwO9N+T8YmIiMiu0Wp+OREREdkaM4szs2lm9qOZrTGz+8wsKrRviJmtMrM/mdl6M/vOzM7bWl/O\nuXLn3FTn3AdA3Xaue5mZLdisbbyZ/T30/Zlm9qWZ+c3sBzMbs717cc4FgCeBRKCjmaWb2VtmVhCK\n/zUzO6DR9T40sz+b2UdAOdDOzK5sdN1VZjay0fH1z2OCmRWa2VozOz0U6zdmVmRmYxsd7zGzW8zs\n29Dxz5lZm9Du9wFPo9EnPULnXGlmX4Xi/beZHRhqjw2NIvmtmX0DfNbEIzgDOBE40zm3zDkXcM5t\ncM494JybGeqng5m9Ger/azO7rFG8L5rZhM3vt9H2T2Z2nZl9ZmYbQ/cTbWapwCvAIY3uJ3V7r5eI\niIhsnxIPIiKyN/gTkAl0B44h+Mn4jY32dwSigf2B0cAzZtZpF1z3FaCnmXVo1HYR8Hzo+yeBS51z\nXiALmL+9DkOjAK4ANgLfEfy/+lGgA1Af85TNThsOXAp4gZ+AH4HTgCTgKmCamXVrdHxHoIbg87g7\n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\nWloaYWFhfPrpp85+CqVLl6Zdu3Z06tSJd95557rzT5s2jd69e9OiRQsaN27MY489xpNPPklOTg4h\nISG0aNGCoUOHUrp06ULNPW7cOFJSUhgxYgQ2m433338fgF69enHy5EmefvppbDYbKSkpjBkzho0b\nN7J69Wqeeuop/v73vyt0EBERERGREsPk/evwnSI4ONjasWOHq8u4Nf/9LzRvDv/3f9Cpk6urua2W\nL4eePeHcOShdGj76CDp2vPb58+fPJzk5OV9fBhERERERKfmMMTstywp2dR3yC91q4U7u4B0tOnZ0\nhA1r18LTT18/dBAREREREZHiQ8GDO7HbHV0Vq1d3dSUu0bFj4QOH/v37F2ktIiIiIiIiUjjq8eBO\n7HZo2BA89MsmIiIiIiIi7kHfYN2FZTmChzvwNgsRERERERFxXwoe3MWxY5CaquBBRERERERE3IqC\nB3dxBzeWFBEREREREfel4MFdKHgQERERERERN6TgwV3Y7VCpEgQFuboSERERERERkUJT8OAu1FhS\nRERERERE3JCCB3eQnQ0JCQoeRERERERExO0oeHAHiYlw4YKCBxEREREREXE7Ch7cgRpLioiIiIiI\niJtS8OAO7Hbw8ID69V1diYiIiIiIiMhNUfDgDux2qFUL/PxcXYmIiIiIiIjITVHw4A60o4WIiIiI\niIi4KQUPxd3Zs3DggIIHERERERERcUsKHoq7hASwLAUPIiIiIiIi4pYUPBR3eTtaPPywa+sQERER\nERERuQUKHoo7ux1Kl4YaNVxdiYiIiIiIiMhNU/BQ3Nnt0KCBYztNERERERERETejb7PFnXa0EBER\nERERETem4KE4++knx38KHkRERERERMRNKXgozvIaSyp4EBERERERETel4KE4i493PCp4EBERERER\nETel4KE4s9vhnnsc/4mIiIiIiIi4IQUPxZkaS4qIiIiIiIibU/BQXGVnw7ffKngQERERERERt6bg\nobj64Qc4f17Bg4iIiIiIiLg1BQ/FlXa0EBERERERkRJAwUNxZbeDMdCggasrEREREREREbllCh6K\nK7sdataE0qVdXYmIiIiIiIjILVPwUFxpRwsREREREREpARQ8FEfnz0NiooIHERERERERcXsKHoqj\nhATIyVHwICIiIiIiIm5PwUNxpB0tREREREREpIRQ8FAc2e3g6wu1arm6EhEREREREZFfRcFDcWS3\nQ/364Onp6kpEREREREREfhUFD8WRdrQQERERERGREkLBQ3Fz8iQcO6bgQUREREREREoEBQ/FjRpL\nioiIiIiISAlyS8GDMaaSMSbOGLPJGONjjFlmjIkxxjQxxiy8zri2xpg+t3C9RsaYVrdY63XHxsTE\nMHDgwKuOX7hwgV69ehEaGkqvXr24cOHCVedMmjSJpk2b0rJlS4YOHYplWZw/f56nnnqKkJAQmjVr\nxueff55vzKZNmzDGkJycXHBBCh5ERERERESkBLnVFQ+tgbWWZbUGygNBlmXZLMv60rKsXtcaZFnW\nasuy/nUL12sE3FLwcKtj58+fT926ddmyZQt16tRh/vz5V50TERHB9u3b+eKLLzh+/DgbN27Ey8uL\nf/zjH2zdupWVK1cSFRXlPN+yLCZPnkxwcPC1L2y3Q4UKUKnSzZYsIiIiIiIiUuwUKngwxkw0xsTm\nrnLoB7wO9DXGzAPmAg/nrngoa4xJzB0TmLsSIjZ3ZUQlY0x/Y8xrua+H5b4WY4yZbRyqG2N2GmOi\njTFfG2PyvrWPBCJzz62S+zjVGLPWGLPBGOOTO+dQY8yW3DoHFjS2oPd34MABIiIiaNSoEUuWLAEg\nNjaW9u3bA9ChQwdiY2OvGle7dm3nzz4+Pnh5eVGqVCmqV68OgJ+fHx4ev3zES5YsoU2bNpQpU+ba\nH3ZeY0ljrvMrIiIiIiIiIuIevG50gjGmLRBoWVaYMaY0EAf8DahiWdYEY0x1YJ5lWU/mnp839E84\nVkXMyT3ucdmcBpgK2CzLSjPGTAHaAXuAe4FQIAf4Lve8yUBVy7ImXHaNGMuyoowxc4GnjDEHgLY4\nVjd4AFuMMZ9eObag1QYnTpxg3bp1nDt3juDgYLp06UJqaiqBgYEAlCtXjp9//vman1FsbCxHjx6l\nVav8CytGjBjBqFGjAMjMzGTevHmsXLmSpUuXFjyRvz9kZOR9SI7n6enXvK6IiIiIiIhIcXfD4AF4\nCAgzxsTkPvcBKhRiXEPgH3lPLMvKuSyUCAKqA//JPVYW2IcjePjOsqxzAMaY7OvMvzP38VBuPX5A\nfWBT7vEA4L5C1Mmjjz6Kl5cXAQEB3HPPPZw4cYLy5ctz+vRpANLS0ihfvjyJiYnOfhDz5s2jVq1a\nxMfHM3r0aFasWHF56MIbb7xBQEAA//M//wPA3Llz6d27N97e3tcuJC90yHPmTGHKFxERERERESm2\nChM8fItj5cJwAGOMN/A8UPUG4/YANmB/7rjLb+s4CfwAtLcsKyP39VJAFcAqYK5LBdR6+XkGx+qI\nb4AulmVZxphSlmVlGmPqFzA2n127dpGVlcX58+c5fvw4d999N2FhYaxatYpGjRqxatUqwsLCqFWr\nFjExMc5xiYmJDBgwgGXLlhEUFOQ8PnPmTPbv38+HH374y4exZw8HDhxg0aJFxMfH06dPHz7//HN8\nfX2vV5qIiIiIiIiIW7th8GBZ1ipjTIvcFQ8WkAxsKMTcE4F/GmN6A9k4woq8OS1jzEhgee5tFznA\nCOBa9xV8AbxsjGkIvHyNOvcYY9YDsbkrJc4bYzpeObZx48ZXja1cuTJdu3bl4MGDTJgwAQ8PD/r3\n78+AAQMIDQ2latWqfPDBB1eNi4qK4vTp0/Tr1w+AV199lccff5zhw4fTvHlzWrduDcCGDRuYNWuW\nc5zNZuNf//qXQgcREREREREp8YxlFbTAoOQKDg62duzY4eoyChYQkP/2CvV4EBERERERuSnGmJ2W\nZV1nK0G53Qpzq0WJYYyZVLZsWWw2GwDe3t6sXbvWtUVdTiGDiIiIiIiIlDBa8SAiIiIiIiIlhlY8\nFD8eNz5FREREREREROTWKHgQERERERERkSKj4EFEREREREREioyCBxEREREREREpMgoeRERERERE\nRKTIKHgQERERERERkSKj4EFEREREREREioyCBxEREREREREpMgoeRERERERERKTIKHgQERERERER\nkSKj4EFEREREREREioyCBxEREREREREpMgoeRERERERERKTIKHgQERERERERkSKj4EFERERERERE\nioyCBxEREREREREpMgoeRERERERERKTIKHgQERERERERkSKj4EFEREREREREioyCBxEREREREREp\nMsayLFfXcFsZY04A/9/encfKWZVxHP/+pJiyKAhowyaLgAiVtRAIaBAwIhJBg0ICCW4xGEwBNQjE\nYDFoIICIMaJIMajEooCAQIjKEvEPKmUtUBWCrIKlkbYie/v4x3tapqWXckPnzr29388/855l3nnm\nvTk5M889551HBx2H1AcbAfMGHYQ0YI4DyXEggeNgvNuiqt496CD0mnGXeJBWV0lmVdWUQcchDZLj\nQHIcSOA4kEYbt1pIkiRJkqS+MfEgSZIkSZL6xsSDtPq4cNABSKOA40ByHEjgOJBGFe/xIEmSJEmS\n+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\nTw6efx6gQyAAAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<Figure size 1152x720 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"tags": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "1VpRimNp5tuW",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# Image Throughput\n",
|
|
"\n",
|
|
"One of the first thing I noticed running batches through my first ported EfficientNet weights -- the image throughput does not scale with FLOP or parameter counts. Much larger ResNet, DPN, etc. models can match the throughput of EfficientNet models with far fewer parameters and FLOPS. I've trained on many of these models and training throughputs do -- in relative terms -- mirror the validation numbers here.\n",
|
|
"\n",
|
|
"This was surprising to me given the FLOP ratios. I'd like to see an in depth comparison with Tensorflow, XLA enabled, targeted for both GPU and TPU."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "iapzkrt2gBwR",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 357
|
|
},
|
|
"outputId": "f47bfaa1-d78a-4d2f-a325-8fe247acc46a"
|
|
},
|
|
"source": [
|
|
"print('Results by image rate:')\n",
|
|
"results_by_rate = list(sorted(results.keys(), key=lambda x: results[x]['rate'], reverse=True))\n",
|
|
"for m in results_by_rate:\n",
|
|
" print(' {:32} Rate: {:>6.2f}, Top-1 {:.2f}, Top-5: {:.2f}'.format(\n",
|
|
" m, results[m]['rate'], results[m]['top1'], results[m]['top5']))\n",
|
|
"print()\n"
|
|
],
|
|
"execution_count": 44,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Results by image rate:\n",
|
|
" efficientnet_b0-224 Rate: 165.73, Top-1 64.58, Top-5: 85.89\n",
|
|
" resnet50-224 Rate: 159.51, Top-1 66.81, Top-5: 87.00\n",
|
|
" dpn68b-224 Rate: 155.15, Top-1 65.60, Top-5: 85.94\n",
|
|
" resnet50-240-ttp Rate: 154.35, Top-1 67.02, Top-5: 87.04\n",
|
|
" efficientnet_b1-240 Rate: 151.63, Top-1 67.55, Top-5: 87.29\n",
|
|
" gluon_seresnext50_32x4d-224 Rate: 150.43, Top-1 68.67, Top-5: 88.32\n",
|
|
" efficientnet_b2-260 Rate: 144.20, Top-1 67.80, Top-5: 88.20\n",
|
|
" tf_efficientnet_b2-260 Rate: 142.73, Top-1 67.40, Top-5: 87.58\n",
|
|
" resnet50-260-ttp Rate: 135.92, Top-1 67.63, Top-5: 87.63\n",
|
|
" gluon_seresnext101_32x4d-224 Rate: 131.57, Top-1 70.01, Top-5: 88.91\n",
|
|
" gluon_seresnext50_32x4d-260-ttp Rate: 126.52, Top-1 69.67, Top-5: 88.62\n",
|
|
" tf_efficientnet_b3-300 Rate: 119.13, Top-1 68.52, Top-5: 88.70\n",
|
|
" gluon_seresnext50_32x4d-300-ttp Rate: 104.69, Top-1 70.47, Top-5: 89.18\n",
|
|
" gluon_seresnext101_32x4d-260-ttp Rate: 95.84, Top-1 71.14, Top-5: 89.47\n",
|
|
" ig_resnext101_32x8d-224 Rate: 83.35, Top-1 73.83, Top-5: 92.28\n",
|
|
" gluon_seresnext101_32x4d-300-ttp Rate: 74.87, Top-1 71.99, Top-5: 90.10\n",
|
|
" tf_efficientnet_b4-380 Rate: 69.10, Top-1 71.34, Top-5: 90.11\n",
|
|
" ig_resnext101_32x8d-300-ttp Rate: 43.62, Top-1 75.17, Top-5: 92.66\n",
|
|
"\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "Y2bawRNtfFmH",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 621
|
|
},
|
|
"outputId": "ba888805-c714-4fdf-9ea8-b84d6016b296"
|
|
},
|
|
"source": [
|
|
"rate_effnet = np.array([results[m]['rate'] for m in names_effnet])\n",
|
|
"rate_effnet_tf = np.array([results[m]['rate'] for m in names_effnet_tf])\n",
|
|
"rate_resnet = np.array([results[m]['rate'] for m in names_resnet])\n",
|
|
"rate_resnet_ttp = np.array([results[m]['rate'] for m in names_resnet_ttp])\n",
|
|
"\n",
|
|
"fig = plt.figure()\n",
|
|
"ax1 = fig.add_subplot(111)\n",
|
|
"ax1.scatter(rate_effnet, acc_effnet, s=10, c='r', marker=\"s\", label='EfficientNet')\n",
|
|
"ax1.plot(rate_effnet, acc_effnet, c='r')\n",
|
|
"annotate(ax1, rate_effnet, acc_effnet, names_effnet, xo=.5, align='left')\n",
|
|
"\n",
|
|
"ax1.scatter(rate_effnet_tf, acc_effnet_tf, s=10, c='#8C001A', marker=\"v\", label='TF-EfficientNet')\n",
|
|
"ax1.plot(rate_effnet_tf, acc_effnet_tf, c='#8C001A')\n",
|
|
"annotate(ax1, rate_effnet_tf, acc_effnet_tf, names_effnet_tf, xo=-.5, yo=-.2, align='right')\n",
|
|
"\n",
|
|
"ax1.scatter(rate_resnet, acc_resnet, s=10, c='b', marker=\"o\", label='ResNet')\n",
|
|
"ax1.plot(rate_resnet, acc_resnet, c='b')\n",
|
|
"annotate(ax1, rate_resnet, acc_resnet, names_resnet, xo=.3, align='left')\n",
|
|
"\n",
|
|
"ax1.scatter(rate_resnet_ttp, acc_resnet_ttp, s=10, c='#43C6DB', marker=\"x\", label='ResNet TPP')\n",
|
|
"ax1.plot(rate_resnet_ttp, acc_resnet_ttp, c='#43C6DB')\n",
|
|
"annotate(ax1, rate_resnet_ttp, acc_resnet_ttp, names_resnet_ttp, xo=0., yo=0., align='center')\n",
|
|
"\n",
|
|
"ax1.set_title('Top-1 vs Rate')\n",
|
|
"ax1.set_ylabel('Top-1 Accuracy (%)')\n",
|
|
"ax1.set_xlabel('Rate (Images / sec)')\n",
|
|
"ax1.legend()\n",
|
|
"plt.show()"
|
|
],
|
|
"execution_count": 48,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"image/png": "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\nZMoernbLLbfg5eUFwKFDh2jXrh0ffvghVapUceyzaNEi0tPT8fHxYX7mtxqWZeHj4wNAuXLlOHLk\nCABeXl4kJSUBFz/jxo0bExsbS2xsLJ6envz2228MHjyYr776Cnd3d8d5+vbti5+fX44vBOLj43n7\n7be577772LdvH48//niur1NEREQEbvAt6CL/1L2+XlTzcuPdhAO8k3CA1amneTHIB09n27UPFilg\nMTFw7pz954wMeOEF6NwZzp+Ht99+m2effRYfHx+8vb259dZbczXm6NGj6dGjh2P29tlnn6VatWr0\n7NkTZ2dnLly4wCeffMKuXbtyfXxYWBgzZsxgyZIlpKSk0K5dOxYvXkyLFi3o1asX33//PV9++SWT\nJk1i9uzZbN26lebNmzN58mSqVKlC9+7dadq0KcYYxo8fD9hnnx9++GG2bNnC5s2beeCBBxg6dOgl\n9WzatInevXtjs9k4f/4848aNA2DIkCEkJyc7AtA6dOhAmzZtGDhwID/99BPOzs40b96cOnXq8NJL\nL9GhQwemT5/OmTNnGDFihONa27Rpg7+/v6Ox/6vnnnsOgH//+9+OYyzLYvz48URERBAZGYmvry9z\n587lu+++cxwXHBzMnDlzcvU7ExEREclyw98Dnhf0HnDJsCxmJR1lZtIRypVwZsDt5anu5X7tA0UK\n0Pz58OSTcPo0uLlBw4YQGwtlysCgQen06OGCiwt06dKFVq1aXTMxXERERKSoKi7vAVcDLoXK5hNn\neGf7AVLSztM+oAxPK6BNbnLz59tnwlu2hLZtYd066NsXli5dh5vbywQGnqdOncp89tlnvPbaa6xa\ntcpxrKurKzExMQVYfd4aM2aM47bxLN98883ffmZcREREih414DcRNeCS3anzF5iw8yCLD52gupcb\n/YPL4+fmUtBlieSaZcGPP0JUFGzdCnffDaNHQ2Ymm4iIiEixU1wacIWwSaFT0tmJ/reX57Xby7Pz\n9Dm6KqBNChljoHVr2LABPvwQ/vgDwsPhqacgMbGgqxMRERGRG0UNuBRazXy8mBJSiSAPV95JOMDb\n2/dz8nxGQZclkmvOztC1K2zfDgMHwrffwl13wauvQrY3e4mIiIhIEaEGXAq1Cm4ujKlekU6VyhB7\n6CRdN+xh0/EzBV2WyN9yyy0wbJi9EX/iCRg5EoKDYcIESE8v6OpEREREJK+oAZdCz2YM7QPKMK5G\n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\nD2Ap/+Uzoo3LAAAAAElFTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<Figure size 1152x720 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"tags": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "Y6-2sm9W50JB",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# GPU Memory Usage\n",
|
|
"\n",
|
|
"Measuring the 'practical' GPU memory consumption is a bit of a challenge. By 'practical', what I want to capture is relative GPU memory usage that indicates what the likely maximum batch sizes will be. With `cudnn.benchmark = True` set, the torch memory allocator metrics didn't prove reliable. In the end, using pynvml (same output as nvidia-smi) and taking a sample part way through the validation set is the most consistent. \n",
|
|
"\n",
|
|
"I've verified the sampling by pushing batch sizes for several of the models to the point where they fail with OOM exception. The relative measures of the memory usage match the relative batch sizes -- I can roughly predict where the largest batch size will be from the measure. \n",
|
|
"\n",
|
|
"On a T4 colab instance I pushed:\n",
|
|
"- efficientnet_b2-260 to a batch size of 480\n",
|
|
"- tf_efficientnet_b2-260 to a batch size 448 (failed at 480)\n",
|
|
"- ig_resnext101_32x8d-224 to a batch size of 512\n",
|
|
"\n",
|
|
"Overall, the EfficientNets are not particularly memory efficient. The monster ResNext101-32x8d with 88M params is more memory efficient at 224x224 than the EfficientNet-B2 at 260x260 with 9.1M. This is especially true for the 'tf' variants with the 'SAME' padding hack enabled, there is up to a 20% penalty for this in memory churn that does impact the max useable batch size."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "Qmr4J7-EgifY",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 340
|
|
},
|
|
"outputId": "d8d0db4a-ccca-4ac2-85e6-011535f29c1e"
|
|
},
|
|
"source": [
|
|
"print('Results by GPU memory usage:')\n",
|
|
"results_by_mem = list(sorted(results.keys(), key=lambda x: results[x]['gpu_used'], reverse=False))\n",
|
|
"for m in results_by_mem:\n",
|
|
" print(' {:32} Mem: {}, Rate: {:>6.2f}, Top-1 {:.2f}, Top-5: {:.2f}'.format(\n",
|
|
" m, results[m]['gpu_used'], results[m]['rate'], results[m]['top1'], results[m]['top5']))"
|
|
],
|
|
"execution_count": 46,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Results by GPU memory usage:\n",
|
|
" resnet50-224 Mem: 1530, Rate: 159.51, Top-1 66.81, Top-5: 87.00\n",
|
|
" gluon_seresnext50_32x4d-224 Mem: 1670, Rate: 150.43, Top-1 68.67, Top-5: 88.32\n",
|
|
" gluon_seresnext101_32x4d-224 Mem: 1814, Rate: 131.57, Top-1 70.01, Top-5: 88.91\n",
|
|
" resnet50-240-ttp Mem: 2084, Rate: 154.35, Top-1 67.02, Top-5: 87.04\n",
|
|
" gluon_seresnext101_32x4d-260-ttp Mem: 2452, Rate: 95.84, Top-1 71.14, Top-5: 89.47\n",
|
|
" resnet50-260-ttp Mem: 2532, Rate: 135.92, Top-1 67.63, Top-5: 87.63\n",
|
|
" gluon_seresnext50_32x4d-260-ttp Mem: 2586, Rate: 126.52, Top-1 69.67, Top-5: 88.62\n",
|
|
" dpn68b-224 Mem: 2898, Rate: 155.15, Top-1 65.60, Top-5: 85.94\n",
|
|
" efficientnet_b0-224 Mem: 2930, Rate: 165.73, Top-1 64.58, Top-5: 85.89\n",
|
|
" gluon_seresnext101_32x4d-300-ttp Mem: 3252, Rate: 74.87, Top-1 71.99, Top-5: 90.10\n",
|
|
" gluon_seresnext50_32x4d-300-ttp Mem: 3300, Rate: 104.69, Top-1 70.47, Top-5: 89.18\n",
|
|
" efficientnet_b1-240 Mem: 3370, Rate: 151.63, Top-1 67.55, Top-5: 87.29\n",
|
|
" ig_resnext101_32x8d-224 Mem: 3382, Rate: 83.35, Top-1 73.83, Top-5: 92.28\n",
|
|
" efficientnet_b2-260 Mem: 3992, Rate: 144.20, Top-1 67.80, Top-5: 88.20\n",
|
|
" ig_resnext101_32x8d-300-ttp Mem: 4658, Rate: 43.62, Top-1 75.17, Top-5: 92.66\n",
|
|
" tf_efficientnet_b2-260 Mem: 4690, Rate: 142.73, Top-1 67.40, Top-5: 87.58\n",
|
|
" tf_efficientnet_b3-300 Mem: 8638, Rate: 119.13, Top-1 68.52, Top-5: 88.70\n",
|
|
" tf_efficientnet_b4-380 Mem: 11754, Rate: 69.10, Top-1 71.34, Top-5: 90.11\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "dLlD9SUufV4A",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 621
|
|
},
|
|
"outputId": "ab03124d-b28e-4615-d4d9-b3012a774328"
|
|
},
|
|
"source": [
|
|
"mem_effnet = np.array([results[m]['gpu_used'] for m in names_effnet])\n",
|
|
"mem_effnet_tf = np.array([results[m]['gpu_used'] for m in names_effnet_tf])\n",
|
|
"mem_resnet = np.array([results[m]['gpu_used'] for m in names_resnet])\n",
|
|
"mem_resnet_ttp = np.array([results[m]['gpu_used'] for m in names_resnet_ttp])\n",
|
|
"\n",
|
|
"fig = plt.figure()\n",
|
|
"ax1 = fig.add_subplot(111)\n",
|
|
"ax1.scatter(mem_effnet, acc_effnet, s=10, c='r', marker=\"s\", label='EfficientNet')\n",
|
|
"ax1.plot(mem_effnet, acc_effnet, c='r')\n",
|
|
"annotate(ax1, mem_effnet, acc_effnet, names_effnet, xo=-.3, align='right')\n",
|
|
"\n",
|
|
"ax1.scatter(mem_effnet_tf, acc_effnet_tf, s=10, c='#8C001A', marker=\"v\", label='TF-EfficientNet')\n",
|
|
"ax1.plot(mem_effnet_tf, acc_effnet_tf, c='#8C001A')\n",
|
|
"annotate(ax1, mem_effnet_tf, acc_effnet_tf, names_effnet_tf, xo=-.3, align='right')\n",
|
|
"\n",
|
|
"ax1.scatter(mem_resnet, acc_resnet, s=10, c='b', marker=\"o\", label='ResNet')\n",
|
|
"ax1.plot(mem_resnet, acc_resnet, c='b')\n",
|
|
"annotate(ax1, mem_resnet, acc_resnet, names_resnet, xo=.5, align='left')\n",
|
|
"\n",
|
|
"# Too busy\n",
|
|
"#ax1.scatter(mem_resnet_ttp, acc_resnet_ttp, s=10, c='#43C6DB', marker=\"o\", label='ResNet TTP')\n",
|
|
"#ax1.plot(mem_resnet_ttp, acc_resnet_ttp, c='#43C6DB')\n",
|
|
"#annotate(ax1, mem_resnet_ttp, acc_resnet_ttp, names_resnet_ttp, xo=.5, align='left')\n",
|
|
"\n",
|
|
"ax1.set_title('Top-1 vs GPU Memory')\n",
|
|
"ax1.set_ylabel('Top-1 Accuracy (%)')\n",
|
|
"ax1.set_xlabel('GPU Memory (MB)')\n",
|
|
"ax1.legend()\n",
|
|
"plt.show()"
|
|
],
|
|
"execution_count": 47,
|
|
"outputs": [
|
|
{
|
|
"output_type": "display_data",
|
|
"data": {
|
|
"image/png": "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\nBE0hFhEREREREY/gEVOI8+XLZ4sXL+50DBEREREREUkBO3fuPGmtzX+38zyigC1evDg7dtz21XEi\nIiIiIiLiwYwxhxJznqYQi4iIiIiIiEdQASsiIiIiIiIeQQWsiIiIiIiIeASPeAZWRERERETkRtHR\n0URGRnL58mWno0giZcuWjaJFi+Lt7Z2k9ipgRURERETEI0VGRpIrVy6KFy+OMcbpOHIX1lpOnTpF\nZGQkJUqUSFIfmkIsIiIiIiIe6fLly+TNm1fFq4cwxpA3b957GjFXASsiIiIiIh5LxatnudeflwpY\nERERERER8QgqYEVERERERJLIy8sLPz8/99eoUaMA2LhxI2XLlsXPz49Lly4RHBxM2bJlCQ4OZubM\nmcybN++2fR49epTnn38+yZkmTZrExYsX3dvFixenRYsW7u0lS5bQrl27O/YRFhbGypUrk5whpWgR\nJxERERERkSTKnj07YWFhN+1fsGABISEhtG7dGoAPPviA06dP4+Xlddc+CxcuzJIlS5KcadKkSbRu\n3ZocOXK49+3cuZN9+/ZRpkyZRPURFhbGjh07ePbZZ5OcIyVoBFZERERERCQZffTRR3z22WcMHDiQ\nV155hSZNmnD+/HkqVarEokWLGDJkCOPGjQPg4MGDBAUF8cQTT1CxYkV++eUXIiIiKFeuHACxsbEE\nBwfz5JNP4uvry/vvvw9AaGgogYGBPP/88zz++OO88sorWGuZPHkyR48epXbt2tSuXdud6c0332T4\n8OE3Zb1w4QLt27encuXKVKhQgWXLlnH16lUGDRrEokWL8PPzY9GiRanwqSWORmBFRERERCRjuO8+\nOHfu/7dz5YKzZ++py0uXLuHn5+feDgkJoUOHDmzatIlGjRq5pwL7+Pi4R2qHDBniPv+VV17hrbfe\nolmzZly+fJlr165x/Phx9/FZs2aRO3dutm/fzpUrVwgICKB+/foA7N69m71791K4cGECAgLYvHkz\nPXr0YMKECaxbt458+fK5+2nZsiXTp0/n4MGDCfIPHz6cOnXqMHv2bKKioqhcuTJBQUG8++677Nix\ng6lTp97T55PcUqyANcY8BsQv1UsCg6y1k+KOvwmMA/Jba0+mVA4REREREREgYfF6q+0kuN0U4sTF\nOceRI0do1qwZANmyZbvpnFWrVvHjjz+6pxT/9ddf/Pzzz2TJkoXKlStTtGhRAPz8/IiIiKBGjRq3\n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\ncOkSTJsGxjidRkRERERErlMBKxLPunUwfz706welSjmdRkRERERE4lMBKxLn6lXo0gVKlICQEKfT\niIiIiIjIjbSIk0icCRPgwAH46ivInt3pNCIiIiIiciONwIoAERGu1+U0awbPPut0GhERERERuRUV\nsCLAG29Apkzw3ntOJxEREREUo2TcAAAgAElEQVQRkdvRFGLJ8JYvd32NGQMPPuh0GhERERERuR2N\nwEqGdvEi9OgBZcpAz55OpxERERERkTvRCKxkaMOGwaFDsH49eHs7nUZERERERO5EI7CSYe3fD+PG\nQdu2ULOm02lERERERORuVMBKhmQtdO0KOXO6nn0VEREREZG0T1OIJUNauBDWrYMZM6BAAafTiIiI\niIhIYmgEVjKcqCjo3RuefBI6dnQ6jYiIiIiIJJZGYCXDGTgQTpyAr74CLy+n04iIiIiISGJpBFYy\nlJ07Yfp06NIFKlVyOo2IiIiIiPwdKmAlw4iNhc6dIX9+GDrU6TQiIiIiIvJ3aQqxZBgffgjbt8P8\n+XD//U6nERERERGRv0sjsJIhHD8OISFQuza8/LLTaUREREREJClUwEqG0LcvXLgA06aBMU6nERER\nERGRpFABK+nehg0wdy706QOlSzudRkREREREkkoFrKRr0dGuFYeLFYMBA5xOIyIiIiIi90KLOEm6\nNmkS7N0Ly5dDjhxOpxERERERkXuhEVhJtw4fhiFDoEkTaNzY6TQiIiIiInKvVMBKutWzJ1gL773n\ndBIREREREUkOmkIs6dLKlfDFFzByJBQv7nQaERERERFJDhqBlXTn0iXo1g0efxx693Y6jYiIiIiI\nJBeNwEq6M3Ik/PYbrF0LWbI4nUZERERERJKLRmAlXQkPh9Gj4ZVXoHZtp9OIiIiIiEhyUgEr6Ya1\n0LUrZM8O48Y5nUZERERERJKbphBLuvHZZ7B6NUydCgULOp1GRERERESSm0ZgJV04exZ69YKKFaFT\nJ6fTiIiIiIhIStAIrKQLgwbBsWOwbBl4eTmdRkREREREUoJGYMXjhYXBlCmukdcnn3Q6jYiIiIiI\npBQVsOLRrl2Dzp0hb14YPtzpNCIiIiIikpI0hVg82uzZsHUrzJ0LefI4nUZERERERFKSRmDFY508\nCf36Qc2a0KaN02lERERERCSlqYAVj9Wvn2v14enTwRin04iIiIiISEpTASseafNm1/Th3r2hbFmn\n04iIiIiISGpQASseJybGtXDTgw/CwIFOpxERERERkdSiRZzE40yeDHv2wNKl4OPjdBoREREREUkt\nGoEVjxIZCYMHQ8OG0LSp02lERERERCQ1qYAVj9K7t2sK8eTJWrhJRERERCSjUQErHuPbb2HxYujf\nH0qWdDqNiIiIiIikNhWw4hEuX4Zu3aBUKQgOdjqNiIiIiIg4IcUWcTLGPAYsirerJDAIKAI0Bq4C\nvwCvWmujUiqHpA+jR8PBg/Ddd5A1q9NpRERERETECSk2Amut/Z+11s9a6wdUAi4CS4HvgHLWWl8g\nHAhJqQySPhw8CCNHQqtWEBTkdBoREREREXFKak0hrgv8Yq09ZK1dZa2Nidu/FSiaShnEA1nrmjqc\nJQuMH+90GhERERERcVJqFbCtgIW32N8e+PpWDYwx/zLG7DDG7Dhx4kSKhpO06/PPXYs3DRsGhQs7\nnUZERERERJxkrLUpewFjsgBHgbLW2j/j7e8P+APN7V1C+Pv72x07dqRoTkl7zp2D0qUhf37Yvh0y\np9gT2yIiIiIi4iRjzE5rrf/dzkuNkuAZYNcNxWs7oBFQ927Fq2Rc77wDR47AkiUqXkVEREREJHUK\n2JeIN33YGPM00BeoZa29mArXFw/0448waRJ07AhVqzqdRkRERERE0oIUfQbWGJMTqAd8EW/3VCAX\n8J0xJswYMzMlM4jnuXYNOneGPHlcqw+LiIiIiIhACo/AWmsvAHlv2PdISl5TPN/cubBlC8yeDXnz\n3v18ERERERHJGFJrFWKRRDl1CoKDISAA2rZ1Oo2IiIiIiKQlKmAlTQkJgagomDEDMunfThERERER\niUclgqQZW7fChx9Cz55QvrzTaUREREREJK1RAStpQkyMa+GmIkVg8GCn04iIiIiISFqkt2tKmjB9\nOoSFweLFkCuX02lERERERCQt0gisOO7oURgwAJ5+Glq0cDqNiIiIiIikVSpgxXFvvglXr8KUKWCM\n02lERERERCStUgErjlq9Gj791LX68CN6Q7CIiIiIiNyBClhxzJUr0LWrq3Dt18/pNCIiIiIiktZp\nESdxzNixEB4O334L2bI5nUZERERERNI6jcCKI379FYYPhxdegPr1nU4jIiIiIiKeQAWspDproXt3\nyJwZJk50Oo2IiIiIiHgKTSGWVLdsGaxcCePHQ5EiTqcRERERERFPoRFYSVXnz0OPHuDr6/qniIiI\niIhIYmkEVlLV0KFw+DAsXOiaQiwiIiIiIpJYGoGVVLN3L0yYAO3bQ0CA02lERERERMTTqICVVGEt\ndOkC990Ho0c7nUZERERERDyRJnFKqvjkE9iwAT78EPLlczqNiIiIiIh4Io3ASoo7cwb69IGqVV3T\nh0VERERERJJCI7CS4vr3h1OnYNUqyKQ/mYiIiIiISBKpnJAUtW0bzJzpemWOn5/TaURERERExJOp\ngJUUExsLnTtDwYLwzjtOpxEREREREU+nKcSSYmbOhF274NNPXasPi4iIiIiI3AuNwEqKOHbM9exr\nUBC0bOl0GhERERERSQ9UwEqK6NMHLl2CadPAGKfTiIiIiEhqioqKYt68eQAcO3aMatWqUbt2ba5e\nvZroPrp160bNmjVZvnw58+fPp3Llyrz77ruMGjWKPXv23LbdK6+8kqTMkydPTlK7xLR95JFHbnss\nPDwcb29vNm3adMtj1atXJzAwkICAAP773/8C8Ouvv1KzZk0CAwOpXbs2kZGRAERERFCnTh0CAgIY\nMWJEku8nLTPWWqcz3JW/v7/dsWOH0zEkkdatgzp1YOBAePddp9OIiIiISGqLiIigQ4cOrF69moUL\nF3LgwAHe+ZuLopQqVYrw8HAAGjRowMyZMylRokRKxAVcRebBgwdTpO2djrdp04Y//viDIUOGUKNG\njQTHYmJi8PLywhjD2rVrmTFjBosXL6ZPnz6UL1+etm3bMmfOHPbv38/o0aNp1aoVXbt25amnniIo\nKIipU6fy+OOPJ+meUpsxZqe11v9u52kEVpLV1avQpQuUKAEhIU6nEREREREnTJgwgZ07d/Loo48y\naNAg5s2bR4cOHW557vr166lVqxaBgYF06tQJay3du3fn8OHDBAYG8v777/PDDz/w8ssvs2TJEtq1\na+cerXzvvfeoUqUKtWvXZu7cucD/j3b+9ddftGzZkrp161KnTh13ARkYGEjPnj2pX78+devW5cqV\nK0yYMIEjR44QGBjIrFmzmDNnDs899xzNmzenXLlybNy4EYA9e/YQFBREnTp1aNmyJZcuXbqp7e30\n6tWLWrVq0bp1a65duwbADz/8QMGCBSlatOgt22TOnBkTN53x7Nmz+Pr6AlC2bFmioqIAOHPmDAUK\nFAAgLCyMp556CoCGDRuyfv36xPy4PIu1Ns1/VapUyYpnGDnSWrD2q6+cTiIiIiIiTvntt99s3bp1\n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\ny0uebYGVJEmSyiQDrLRVbi4cdhgcfni6K5EkSZJUBAOstFVent2HJUmSpDLMACsBLFsGn35q92FJ\nkiSpDDPASvCf+19tgZUkSZLKLAOsBEmArVwZWrdOdyWSJEmSdsIAK0EygFOrVlC9erorkSRJkrQT\nBtc+NXQAABEdSURBVNhybOnSpXTo0IHOnTuzYcMGevbsSXZ2NlOmTKF379473W/cuHE89thje/x5\n06dP5+233/5Ote5u35ycHAYMGLDD8m+//ZbevXvTqVMnevfuzbfffrvDNn/6059o3749p512GoMG\nDSLGyDfffMMPfvADOnbsyCmnnMI//vGPbfZ56623CCGwaNEi2LwZ3n3X7sOSJElSGWeALcfeeust\nunbtyltvvcWXX37JihUryMnJoV27djz++OM73e/ss8/mkksu2ePPK80AuzMjRoygadOmTJw4kSZN\nmjBixIgdtunRoweTJ0/mn//8J8uWLePNN98kMzOTv/71r7zzzju89NJLDB48uGD7GCNDhgyhbdu2\nyYKZM2H9egdwkiRJkso4A2w5cuONN5KVlUWHDh149NFHufXWWxk5ciQDBgxg4MCBzJgxg+zsbNau\nXUvjxo0B+Oqrr+jZsydZWVl07tyZpUuXMmLECG6//XYAJkyYQFZWFtnZ2fz85z8nxsiCBQto06YN\nffr04aSTTuLuu+8GYMiQITz88MNkZ2ezePFisrOzGTx4MF27duWMM85gw4YNANx333106tSJDh06\nMHz48CL3Lconn3xCjx49aNWqFU899VRBfeeeey4A5513HhMmTNhhv2OPPbbgddWqVcnMzKRy5co0\natQIgOrVq1Op0n9O9aeeeoqzzjqLmjVrJgscwEmSJEkqFzLTXYCKZ9y4cXz11VdMmDCB9evX06FD\nB66//noWL17MzTffzIIFCxgwYACvv/76NvvdeeeddO3alZ/97GcA5OfnF6yLMTJ48GBycnLYb7/9\nuOaaa3j55Zdp2bIlS5YsYeLEiVSqVIlmzZoxePBgfvnLX7Jo0SJuvvnmgmNkZ2dz9913M3DgQMaP\nH88xxxzDuHHjePvtt8nPz6dTp0706NGjyH23t3z5csaPH8/69etp27YtPXv2ZOXKldSrVw+AunXr\n8uWXX+50/wkTJrBkyRJOP/30bZZfc801XHfddQBs2rSJ4cOH89JLL/H0009D06awbl2y4VFHQe3a\n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\nf8ob4+4BdmuoAAAAAElFTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<Figure size 1152x720 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"tags": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "vU-2SHss55jw",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# 1 on 1 Comparisons\n",
|
|
"A few model to model comparisons, pairing models that are a little more fair than the original paper when you consider all of accuracy, rate, and memory efficiency."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "SKA-MF-yShDW",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 187
|
|
},
|
|
"outputId": "83f55196-040a-4a2a-a49e-e6629c38ce83"
|
|
},
|
|
"source": [
|
|
"def compare_results(results, namea, nameb):\n",
|
|
" resa, resb = results[namea], results[nameb]\n",
|
|
" top1r = 100. * (resa['top1'] - resb['top1']) / resb['top1']\n",
|
|
" top5r = 100. * (resa['top5'] - resb['top5']) / resb['top5']\n",
|
|
" rater = 100. * (resa['rate'] - resb['rate']) / resb['rate']\n",
|
|
" memr = 100. * (resa['gpu_used'] - resb['gpu_used']) / resb['gpu_used']\n",
|
|
" print('{:22} vs {:28} top1: {:+4.2f}%, top5: {:+4.2f}%, rate: {:+4.2f}%, mem: {:+.2f}%'.format(\n",
|
|
" namea, nameb, top1r, top5r, rater, memr))\n",
|
|
" \n",
|
|
"#compare_results(results, 'efficientnet_b0-224', 'seresnext26_32x4d-224')\n",
|
|
"compare_results(results, 'efficientnet_b0-224', 'dpn68b-224')\n",
|
|
"compare_results(results, 'efficientnet_b1-240', 'resnet50-224')\n",
|
|
"compare_results(results, 'efficientnet_b1-240', 'resnet50-240-ttp')\n",
|
|
"compare_results(results, 'efficientnet_b2-260', 'gluon_seresnext50_32x4d-224')\n",
|
|
"compare_results(results, 'tf_efficientnet_b3-300', 'gluon_seresnext50_32x4d-224')\n",
|
|
"compare_results(results, 'tf_efficientnet_b3-300', 'gluon_seresnext101_32x4d-224')\n",
|
|
"compare_results(results, 'tf_efficientnet_b4-380', 'ig_resnext101_32x8d-224')\n",
|
|
"\n",
|
|
"print('\\nNote the cost of running with the SAME padding hack:')\n",
|
|
"compare_results(results, 'tf_efficientnet_b2-260', 'efficientnet_b2-260')"
|
|
],
|
|
"execution_count": 34,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"efficientnet_b0-224 vs dpn68b-224 top1: -1.55%, top5: -0.06%, rate: +6.82%, mem: +1.10%\n",
|
|
"efficientnet_b1-240 vs resnet50-224 top1: +1.11%, top5: +0.33%, rate: -4.94%, mem: +120.26%\n",
|
|
"efficientnet_b1-240 vs resnet50-240-ttp top1: +0.79%, top5: +0.29%, rate: -1.76%, mem: +61.71%\n",
|
|
"efficientnet_b2-260 vs gluon_seresnext50_32x4d-224 top1: -1.27%, top5: -0.14%, rate: -4.14%, mem: +139.04%\n",
|
|
"tf_efficientnet_b3-300 vs gluon_seresnext50_32x4d-224 top1: -0.22%, top5: +0.43%, rate: -20.81%, mem: +417.25%\n",
|
|
"tf_efficientnet_b3-300 vs gluon_seresnext101_32x4d-224 top1: -2.13%, top5: -0.24%, rate: -9.45%, mem: +376.19%\n",
|
|
"tf_efficientnet_b4-380 vs ig_resnext101_32x8d-224 top1: -3.37%, top5: -2.35%, rate: -17.10%, mem: +247.55%\n",
|
|
"\n",
|
|
"Note the cost of running with the SAME padding hack:\n",
|
|
"tf_efficientnet_b2-260 vs efficientnet_b2-260 top1: -0.59%, top5: -0.70%, rate: -1.02%, mem: +17.48%\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"id": "aSibvBwp5-CX",
|
|
"colab_type": "text"
|
|
},
|
|
"source": [
|
|
"# How are we generalizing to ImageNet-V2?\n",
|
|
"\n",
|
|
"This is often an interesting comparison. The results for the IG ResNeXt are impressive, it's the lowest gap between ImageNet-1k and ImageNet-V2 validation scores that I've seen (http://people.csail.mit.edu/ludwigs/papers/imagenet.pdf)."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"metadata": {
|
|
"id": "aahwcXGnSOab",
|
|
"colab_type": "code",
|
|
"colab": {
|
|
"base_uri": "https://localhost:8080/",
|
|
"height": 442
|
|
},
|
|
"outputId": "7a33b7ad-619e-4479-e585-ee9068a3bc13"
|
|
},
|
|
"source": [
|
|
"print('Results by absolute accuracy gap between ImageNet-V2 Matched-Frequency and original ImageNet top-1:')\n",
|
|
"no_ttp_keys = [k for k in results.keys() if 'ttp' not in k]\n",
|
|
"gaps = {x: (results[x]['top1'] - orig_top1[results[x]['model_name']]) for x in no_ttp_keys}\n",
|
|
"sorted_keys = list(sorted(no_ttp_keys, key=lambda x: gaps[x], reverse=True))\n",
|
|
"for m in sorted_keys:\n",
|
|
" print(' Model: {:34} {:4.2f}%'.format(m, gaps[m]))\n",
|
|
"print()\n",
|
|
"\n",
|
|
"print('Results by relative accuracy gap between ImageNet-V2 Matched-Frequency and original ImageNet top-1:')\n",
|
|
"gaps = {x: 100 * (results[x]['top1'] - orig_top1[results[x]['model_name']]) / orig_top1[results[x]['model_name']] for x in no_ttp_keys}\n",
|
|
"sorted_keys = list(sorted(no_ttp_keys, key=lambda x: gaps[x], reverse=True))\n",
|
|
"for m in sorted_keys:\n",
|
|
" print(' Model: {:34} {:4.2f}%'.format(m, gaps[m]))"
|
|
],
|
|
"execution_count": 18,
|
|
"outputs": [
|
|
{
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Results by absolute accuracy gap between ImageNet-V2 Matched-Frequency and original ImageNet top-1:\n",
|
|
" Model: ig_resnext101_32x8d-224 -8.86%\n",
|
|
" Model: gluon_seresnext101_32x4d-224 -10.89%\n",
|
|
" Model: efficientnet_b1-240 -11.14%\n",
|
|
" Model: gluon_seresnext50_32x4d-224 -11.24%\n",
|
|
" Model: tf_efficientnet_b4-380 -11.26%\n",
|
|
" Model: resnet50-224 -11.68%\n",
|
|
" Model: dpn68b-224 -11.91%\n",
|
|
" Model: efficientnet_b2-260 -11.96%\n",
|
|
" Model: tf_efficientnet_b2-260 -12.21%\n",
|
|
" Model: efficientnet_b0-224 -12.33%\n",
|
|
" Model: tf_efficientnet_b3-300 -12.35%\n",
|
|
"\n",
|
|
"Results by relative accuracy gap between ImageNet-V2 Matched-Frequency and original ImageNet top-1:\n",
|
|
" Model: ig_resnext101_32x8d-224 -10.71%\n",
|
|
" Model: gluon_seresnext101_32x4d-224 -13.46%\n",
|
|
" Model: tf_efficientnet_b4-380 -13.64%\n",
|
|
" Model: gluon_seresnext50_32x4d-224 -14.07%\n",
|
|
" Model: efficientnet_b1-240 -14.16%\n",
|
|
" Model: resnet50-224 -14.88%\n",
|
|
" Model: efficientnet_b2-260 -14.99%\n",
|
|
" Model: tf_efficientnet_b3-300 -15.28%\n",
|
|
" Model: tf_efficientnet_b2-260 -15.33%\n",
|
|
" Model: dpn68b-224 -15.37%\n",
|
|
" Model: efficientnet_b0-224 -16.03%\n"
|
|
],
|
|
"name": "stdout"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |