{"id":13578350,"url":"https://github.com/leondgarse/keras_efficientnet_v2","last_synced_at":"2025-10-11T14:44:57.055Z","repository":{"id":41544531,"uuid":"356193168","full_name":"leondgarse/keras_efficientnet_v2","owner":"leondgarse","description":"self defined efficientnetV2 according to official version. Including converted ImageNet/21K/21k-ft1k weights.","archived":false,"fork":false,"pushed_at":"2022-01-13T09:48:57.000Z","size":461,"stargazers_count":79,"open_issues_count":0,"forks_count":19,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-17T13:41:43.982Z","etag":null,"topics":["efficientnetv2","keras","progressive-train","tensorflow","tensorflow2","tf","tf2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leondgarse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-09T08:19:45.000Z","updated_at":"2025-02-18T14:24:17.000Z","dependencies_parsed_at":"2022-09-06T08:00:56.511Z","dependency_job_id":null,"html_url":"https://github.com/leondgarse/keras_efficientnet_v2","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leondgarse%2Fkeras_efficientnet_v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leondgarse%2Fkeras_efficientnet_v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leondgarse%2Fkeras_efficientnet_v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leondgarse%2Fkeras_efficientnet_v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leondgarse","download_url":"https://codeload.github.com/leondgarse/keras_efficientnet_v2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244094273,"owners_count":20397020,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["efficientnetv2","keras","progressive-train","tensorflow","tensorflow2","tf","tf2"],"created_at":"2024-08-01T15:01:29.704Z","updated_at":"2025-10-11T14:44:52.014Z","avatar_url":"https://github.com/leondgarse.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# ___Keras EfficientNetV2___\n***\n- **As `EfficientNetV2` is included in `keras.application` now, merged this project into [Github leondgarse/keras_cv_attention_models/efficientnet](https://github.com/leondgarse/keras_cv_attention_models/tree/main/keras_cv_attention_models/efficientnet). Package `keras-efficientnet-v2` moved into `stable` status**.\n\n## Table of Contents\n\u003c!-- TOC depthFrom:1 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 --\u003e\n\n- [___Keras EfficientNetV2___](#keras-efficientnetv2)\n  - [Table of Contents](#table-of-contents)\n  - [Summary](#summary)\n  - [Usage](#usage)\n  - [Training detail from article](#training-detail-from-article)\n  - [Detailed conversion procedure](#detailed-conversion-procedure)\n  - [Progressive train test on cifar10](#progressive-train-test-on-cifar10)\n  - [Related Projects](#related-projects)\n\n\u003c!-- /TOC --\u003e\n***\n\n## Summary\n  - My own keras implementation of [Official efficientnetv2](https://github.com/google/automl/tree/master/efficientnetv2). Article [arXiv 2104.00298 EfficientNetV2: Smaller Models and Faster Training](https://arxiv.org/abs/2104.00298) by Mingxing Tan, Quoc V. Le.\n  - `h5` model weights converted from official publication.\n  - `effv2-t-imagenet.h5` model weights converted from [Github rwightman/pytorch-image-models](https://github.com/rwightman/pytorch-image-models#july-5-9-2021). which claimed both faster and better accuracy than `b3`. Please notice that `PyTorch` using different `bn_epsilon` and `padding` strategy.\n\n  | V2 Model    | Params | Top1 | Input | ImageNet21K | Imagenet21k-ft1k | Imagenet |\n  | ----------- | ------ | ---- | ----- | ----------- | ---------------- | -------- |\n  | EffV2B0 | 7.1M  | 78.7 | 224 | [v2b0-21k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b0-21k.h5)|[v2b0-21k-ft1k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b0-21k-ft1k.h5)|[v2b0-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b0-imagenet.h5)|\n  | EffV2B1 | 8.1M  | 79.8 | 240 | [v2b1-21k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b1-21k.h5)|[v2b1-21k-ft1k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b1-21k-ft1k.h5)|[v2b1-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b1-imagenet.h5)|\n  | EffV2B2 | 10.1M | 80.5 | 260 | [v2b2-21k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b2-21k.h5)|[v2b2-21k-ft1k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b2-21k-ft1k.h5)|[v2b2-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b2-imagenet.h5)|\n  | EffV2B3 | 14.4M | 82.1 | 300 | [v2b3-21k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b3-21k.h5)|[v2b3-21k-ft1k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b3-21k-ft1k.h5)|[v2b3-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-b3-imagenet.h5)|\n  | EffV2T | 13.6M | 82.5 | 320 |  | |[v2t-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-t-imagenet.h5)|\n  | EffV2S   | 21.5M | 84.9 | 384 | [v2s-21k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-s-21k.h5) |[v2s-21k-ft1k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-s-21k-ft1k.h5)|[v2s-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-s-imagenet.h5)|\n  | EffV2M   | 54.1M | 86.2 | 480 | [v2m-21k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-m-21k.h5) |[v2m-21k-ft1k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-m-21k-ft1k.h5)|[v2m-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-m-imagenet.h5)|\n  | EffV2L   | 119.5M| 86.9 | 480 | [v2l-21k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-l-21k.h5) |[v2l-21k-ft1k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-l-21k-ft1k.h5)|[v2l-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-l-imagenet.h5)|\n  | EffV2XL  | 206.8M| 87.2 | 512 | [v2xl-21k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-xl-21k.h5)|[v2xl-21k-ft1k.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv2_pretrained/efficientnetv2-xl-21k-ft1k.h5)|  |\n\n  - **EfficientNetV1 noisy_student models** from [Github tensorflow/tpu/efficientnet](https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet). Paper [PDF 1911.04252 Self-training with Noisy Student improves ImageNet classification](https://arxiv.org/pdf/1911.04252.pdf). Parameter `include_preprocessing=False` is added, and the default `False` value makes expecting input value in range `[-1, 1]`, same with `EfficientNetV2`. Default `pretrained` is `noisy_student`.\n\n  | V1 Model       | Params  | Top1 | Input | noisy_student | Imagenet |\n  | -------------- | ------- | ---- | ----- | ------------- | -------- |\n  | EffV1B0    | 5.3M    | 78.8 | 224 | [v1-b0-noisy_student.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b0-noisy_student.h5) | [v1-b0-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b0-imagenet.h5) |\n  | EffV1B1    | 7.8M    | 81.5 | 240 | [v1-b1-noisy_student.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b1-noisy_student.h5) | [v1-b1-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b1-imagenet.h5) |\n  | EffV1B2    | 9.1M    | 82.4 | 260 | [v1-b2-noisy_student.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b2-noisy_student.h5) | [v1-b2-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b2-imagenet.h5) |\n  | EffV1B3    | 12.2M   | 84.1 | 300 | [v1-b3-noisy_student.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b3-noisy_student.h5) | [v1-b3-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b3-imagenet.h5) |\n  | EffV1B4    | 19.3M   | 85.3 | 380 | [v1-b4-noisy_student.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b4-noisy_student.h5) | [v1-b4-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b4-imagenet.h5) |\n  | EffV1B5    | 30.4M   | 86.1 | 456 | [v1-b5-noisy_student.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b5-noisy_student.h5) | [v1-b5-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b5-imagenet.h5) |\n  | EffV1B6    | 43.0M   | 86.4 | 528 | [v1-b6-noisy_student.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b6-noisy_student.h5) | [v1-b6-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b6-imagenet.h5) |\n  | EffV1B7    | 66.3M   | 86.9 | 600 | [v1-b7-noisy_student.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b7-noisy_student.h5) | [v1-b7-imagenet.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-b7-imagenet.h5) |\n  | EffV1L2    | 480.3M  | 88.4 | 800 | [v1-l2-noisy_student.h5](https://github.com/leondgarse/keras_efficientnet_v2/releases/download/effnetv1_pretrained/efficientnetv1-l2-noisy_student.h5) |  |\n\n  - **Self tested imagenet accuracy**\n    - `rescale_mode` `torch` means `(image - [0.485, 0.456, 0.406]) / [[0.229, 0.224, 0.225]]`, `tf` means `(image - 0.5) / 0.5`\n    - All `resize_method` is `bicubic`.\n    - Some testing detail is not clear, so not exactly matching official reported results.\n    - Testing Detail is [EfficientNetV2 self tested imagenet accuracy](https://github.com/leondgarse/keras_cv_attention_models/discussions/19).\n\n  | model        | input | rescale_mode | central_crop | top 1   | top 5   | Reported top1     |\n  | ------------ | ----- | ------------ | ------------ | ------- | ------- | ----------------- |\n  | EffV2B0      | 224   | torch        | 0.875        | 0.78748 | 0.94386 | 0.787             |\n  | EffV2B1      | 240   | torch        | 0.95         | 0.7987  | 0.94936 | 0.798             |\n  | EffV2B2      | 260   | torch        | 0.95         | 0.80642 | 0.95262 | 0.805             |\n  | EffV2B3      | 300   | torch        | 0.95         | 0.82098 | 0.95896 | 0.821             |\n  | EffV2T       | 320   | torch        | 0.99         | 0.82506 | 0.96228 | 0.823 (input 288) |\n  | EffV2S       | 384   | tf           | 0.99         | 0.8386  | 0.967   | 0.839             |\n  | EffV2M       | 480   | tf           | 0.99         | 0.8509  | 0.973   | 0.852             |\n  | EffV2L       | 480   | tf           | 0.99         | 0.855   | 0.97324 | 0.857             |\n  | EffV2S ft1k  | 384   | tf           | 0.99         | 0.84328 | 0.97254 | 0.849             |\n  | EffV2M ft1k  | 480   | tf           | 0.99         | 0.85606 | 0.9775  | 0.862             |\n  | EffV2L ft1k  | 480   | tf           | 0.99         | 0.86294 | 0.9799  | 0.869             |\n  | EffV2XL ft1k | 512   | tf           | 0.99         | 0.86532 | 0.97866 | 0.872             |\n## Usage\n  - This repo can be installed as a pip package, or just `git clone` it.\n    ```py\n    pip install -U keras-efficientnet-v2\n    # Or\n    pip install -U git+https://github.com/leondgarse/keras_efficientnet_v2\n    ```\n  - **Define model and load pretrained weights** Parameter `pretrained` is added in value `[None, \"imagenet\", \"imagenet21k\", \"imagenet21k-ft1k\"]`, default is `imagenet`. Model input value should be in range `[-1, 1]`.\n    ```py\n    # Will download and load `imagenet` pretrained weights.\n    # Model weight is loaded with `by_name=True, skip_mismatch=True`.\n    import keras_efficientnet_v2\n    model = keras_efficientnet_v2.EfficientNetV2S(pretrained=\"imagenet\")\n\n    # Run prediction\n    import tensorflow as tf\n    from tensorflow import keras\n    from skimage.data import chelsea\n    imm = tf.image.resize(chelsea(), model.input_shape[1:3]) # Chelsea the cat\n    pred = model(tf.expand_dims(imm / 128. - 1., 0)).numpy()\n    print(keras.applications.imagenet_utils.decode_predictions(pred)[0])\n    # [('n02124075', 'Egyptian_cat', 0.8642886), ('n02123159', 'tiger_cat', 0.030793495), ...]\n    ```\n    Or download `h5` model and load directly\n    ```py\n    mm = keras.models.load_model('efficientnetv2-b3-21k-ft1k.h5')\n    ```\n    For `\"imagenet21k\"` pre-trained model, actual `num_classes` is `21843`.\n  - **Exclude model top layers** by set `num_classes=0`.\n    ```py\n    import keras_efficientnet_v2\n    model = keras_efficientnet_v2.EfficientNetV2B0(dropout=1e-6, num_classes=0, pretrained=\"imagenet21k\")\n    print(model.output_shape)\n    # (None, 7, 7, 1280)\n\n    model.save('efficientnetv2-b0-21k-notop.h5')\n    ```\n  - **Use dynamic input resolution** by set `input_shape=(None, None, 3)`.\n    ```py\n    import keras_efficientnet_v2\n    model = keras_efficientnet_v2.EfficientNetV2M(input_shape=(None, None, 3), drop_connect_rate=0.2, num_classes=0, pretrained=\"imagenet21k-ft1k\")\n\n    print(model(np.ones([1, 224, 224, 3])).shape)\n    # (1, 7, 7, 1280)\n    print(model(np.ones([1, 512, 512, 3])).shape)\n    # (1, 16, 16, 1280)\n    ```\n  - **`include_preprocessing`** set `True` will add pre-processing `Rescale + Normalization` after `Input`. Means using input value in range `[0, 255]`. Default value `False` means in range `[-1, 1]`. Works both for `EfficientNetV2` and `EfficientNetV1`.\n    ```py\n    import keras_efficientnet_v2\n    model = keras_efficientnet_v2.EfficientNetV1B4(pretrained=\"noisy_student\", include_preprocessing=True)\n\n    from skimage.data import chelsea\n    imm = tf.image.resize(chelsea(), model.input_shape[1:3]) # Chelsea the cat\n    pred = model(tf.expand_dims(imm, 0)).numpy()  # value in range [0, 255]\n    print(keras.applications.imagenet_utils.decode_predictions(pred)[0])\n    # [('n02124075', 'Egyptian_cat', 0.68414235), ('n02123159', 'tiger_cat', 0.04486668), ...]\n    ```\n## Training detail from article\n  - **Training configures**, `Eval size` is used as the default `input_shape` for each model type.\n\n    | Model   | Train size | Eval size | Dropout | Randaug | Mixup |\n    | ------- | ---------- | --------- | ------- | ------- | ----- |\n    | EffV2B0 | 192        | 224       | 0.2     | 0       | 0     |\n    | EffV2B1 | 192        | 240       | 0.2     | 0       | 0     |\n    | EffV2B2 | 208        | 260       | 0.3     | 0       | 0     |\n    | EffV2B3 | 240        | 300       | 0.3     | 0       | 0     |\n    | EffV2S  | 300        | 384       | 0.2     | 10      | 0     |\n    | EffV2M  | 384        | 480       | 0.3     | 15      | 0.2   |\n    | EffV2L  | 384        | 480       | 0.4     | 20      | 0.5   |\n    | EffV2XL | 384        | 512       | 0.4     | 20      | 0.5   |\n\n  - EfficientNetV2-S architecture\n\n    | Stage | Operator               | Stride | #Channels | #Layers |\n    | ----- | ---------------------- | ------ | --------- | ------- |\n    | 0     | Conv3x3                | 2      | 24        | 1       |\n    | 1     | Fused-MBConv1, k3x3    | 1      | 24        | 2       |\n    | 2     | Fused-MBConv4, k3x3    | 2      | 48        | 4       |\n    | 3     | Fused-MBConv4, k3x3    | 2      | 64        | 4       |\n    | 4     | MBConv4, k3x3, SE0.25  | 2      | 128       | 6       |\n    | 5     | MBConv6, k3x3, SE0.25  | 1      | 160       | 9       |\n    | 6     | MBConv6, k3x3, SE0.25  | 2      | 256       | 15      |\n    | 7     | Conv1x1 \u0026 Pooling \u0026 FC | -      | 1280      | 1       |\n\n  - Progressive training settings for EfficientNetV2\n\n    |              | S min | S max | M min | M max | L min | M max |\n    | ------------ | ----- | ----- | ----- | ----- | ----- | ----- |\n    | Image Size   | 128   | 300   | 128   | 380   | 128   | 380   |\n    | RandAugment  | 5     | 15    | 5     | 20    | 5     | 25    |\n    | Mixup alpha  | 0     | 0     | 0     | 0.2   | 0     | 0.4   |\n    | Dropout rate | 0.1   | 0.3   | 0.1   | 0.4   | 0.1   | 0.5   |\n\n  - Imagenet training detail\n    - RMSProp optimizer with decay 0.9 and momentum 0.9\n    - batch norm momentum 0.99; weight decay 1e-5\n    - Each model is trained for 350 epochs with total batch size 4096\n    - Learning rate is first warmed up from 0 to 0.256, and then decayed by 0.97 every 2.4 epochs\n    - We use exponential moving average with 0.9999 decay rate\n    - RandAugment (Cubuk et al., 2020)\n    - Mixup (Zhang et al., 2018)\n    - Dropout (Srivastava et al., 2014)\n    - and stochastic depth (Huang et al., 2016) with 0.8 survival probability\n## Detailed conversion procedure\n  - [convert_effnetv2_model.py](convert_effnetv2_model.py) is a modified version of [the orignal effnetv2_model.py](https://github.com/google/automl/blob/master/efficientnetv2/effnetv2_model.py). Check detail by `vimdiff convert_effnetv2_model.py ../automl/efficientnetv2/effnetv2_model.py`\n    - Delete some `names`, as they may cause confliction in keras.\n    - Use `.call` directly calling `se` modules and other blocks, so they will not be `blocks` in `model.summary()`\n    - Just use `Add` layer instead of `utils.drop_connect`, as when `is_training=False`, `utils.drop_connect` functions like `Add`.\n    - Add a `num_classes` parameter outside of `mconfig`.\n    - Add `__main__` part, which makes this can be run as a script. Refer to it for converting detail.\n  - Depends on official repo\n    ```sh\n    ../\n    ├── automl  # Official repo\n    ├── keras_efficientnet_v2  # This one\n    ```\n  - **Procedure**\n    ```py\n    # See help info\n    CUDA_VISIBLE_DEVICES='-1' python convert_effnetv2_model.py -h\n\n    # Convert by specific model_type and dataset type\n    CUDA_VISIBLE_DEVICES='-1' python convert_effnetv2_model.py -m b0 -d imagenet21k\n\n    # Convert by specific model_type and all its datasets ['imagenet', 'imagenet21k', 'imagenetft']\n    CUDA_VISIBLE_DEVICES='-1' python convert_effnetv2_model.py -m s -d all\n\n    # Convert all model_types and and all datasets\n    CUDA_VISIBLE_DEVICES='-1' python convert_effnetv2_model.py -m all -d all\n    ```\n## Progressive train test on cifar10\n  - [Colab efficientnetV2_basic_test.ipynb](https://colab.research.google.com/drive/1vmAEfF9tUgK2gkrS5qVftadTyUcX343D?usp=sharing)\n  ```py\n  import keras_efficientnet_v2\n  from tensorflow import keras\n  from keras_efficientnet_v2 import progressive_train_test\n\n  model = keras_efficientnet_v2.EfficientNetV2S(input_shape=(None, None, 3), num_classes=10, classifier_activation='softmax', dropout=0.1)\n  model.compile(loss=\"categorical_crossentropy\", optimizer=\"adam\", metrics=[\"accuracy\"])\n\n  hhs = progressive_train_test.progressive_with_dropout_randaug(\n      model,\n      data_name=\"cifar10\",\n      lr_scheduler=None,\n      total_epochs=36,\n      batch_size=64,\n      dropout_layer=-2,\n      target_shapes=[128, 160, 192, 224], # [128, 185, 242, 300] for final shape (300, 300)\n      dropouts=[0.1, 0.2, 0.3, 0.4],\n      magnitudes=[5, 8, 12, 15],\n  )\n\n  with open(\"history_ev2s_imagenet_progressive_224.json\", \"w\") as ff:\n      json.dump(hhs, ff)\n  ```\n  ![](cifar10_progressive_train.svg)\n## Related Projects\n  - [tfa.layers.StochasticDepth](https://www.tensorflow.org/addons/api_docs/python/tfa/layers/StochasticDepth)\n  - [Official efficientnetv2](https://github.com/google/automl/tree/master/efficientnetv2)\n  - [Github rwightman/pytorch-image-models](https://github.com/rwightman/pytorch-image-models#july-5-9-2021)\n***\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleondgarse%2Fkeras_efficientnet_v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleondgarse%2Fkeras_efficientnet_v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleondgarse%2Fkeras_efficientnet_v2/lists"}