{
  "$schema": "https://ambiqai.github.io/helia-ui/schema/reference-model-1.json",
  "generatedFrom": {
    "sourceCommit": "f341fb11f7f5d77a4974ba8273c4cd55d67c21f0",
    "tool": "pyref",
    "version": "1.7.3"
  },
  "language": "python",
  "modules": [
    {
      "description": "# EfficientNetV2\n\n## Overview\n\nEfficientNetV2 is an improvement to EfficientNet that incorporates additional optimizations to reduce both computation and memory.\nIn particular, the architecture leverages both fused and non-fused MBConv blocks, non-uniform layer scaling, and training-aware NAS.\n\nFor more info, refer to the original paper [EfficientNetV2: Smaller Models and Faster Training](https://arxiv.org/abs/2104.00298).\n\nParameters are in ``helia_edge.models.efficientnet_params``.\n\n**Functions**\n\n| Name | Description |\n| --- | --- |\n| `build` | EfficientNetV2 model from ``EfficientNetParams`` |\n| `efficientnetv2_layer` | EfficientNetV2 layer |\n\n## Additions\n\nThe EfficientNetV2 architecture has been modified to allow the following:\n\n* Enable 1D and 2D variants.\n\n## Usage\n\n```python\nfrom helia_edge.layers import MBConvParams\nfrom helia_edge.models import EfficientNetParams, ModelSpec, build\n\nparams = EfficientNetParams(\n    input_filters=24,\n    input_kernel_size=(1, 7),\n    input_strides=(1, 2),\n    blocks=[\n        MBConvParams(filters=32, depth=2, kernel_size=(1, 7), strides=(1, 2), ex_ratio=1, se_ratio=2),\n        MBConvParams(filters=48, depth=2, kernel_size=(1, 7), strides=(1, 2), ex_ratio=1, se_ratio=2),\n        MBConvParams(filters=64, depth=2, kernel_size=(1, 7), strides=(1, 2), ex_ratio=1, se_ratio=2),\n        MBConvParams(filters=72, depth=1, kernel_size=(1, 7), strides=(1, 2), ex_ratio=1, se_ratio=2),\n    ],\n    output_filters=0,\n    include_top=True,\n    num_classes=5,\n    dropout=0.2,\n    drop_connect_rate=0.2,\n)\nmodel = build(ModelSpec(params=params, input_shape=(1, 800, 1)))\n```",
      "name": "efficientnet",
      "path": "helia_edge.models.efficientnet",
      "submodules": [],
      "summary": "EfficientNetV2",
      "symbols": [
        {
          "description": "EfficientNet core",
          "examples": [],
          "id": "helia_edge.models.efficientnet.efficientnet_core",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "efficientnet_core",
          "params": [
            {
              "description": "MBConv params",
              "name": "blocks",
              "type": "list[MBConvParam]"
            },
            {
              "default": "0",
              "description": "Drop connect rate. Defaults to 0.",
              "name": "drop_connect_rate",
              "type": "float"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "keras.Layer: Core",
              "type": "keras.Layer"
            }
          ],
          "signature": "efficientnet_core(blocks: list[MBConvParams], drop_connect_rate: float = 0) -> keras.Layer",
          "source": {
            "line": 61,
            "path": "helia_edge/models/efficientnet.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/efficientnet.py#L61"
          },
          "summary": "EfficientNet core"
        },
        {
          "description": "Create EfficientNet V2 TF functional model",
          "examples": [],
          "id": "helia_edge.models.efficientnet.efficientnetv2_layer",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "efficientnetv2_layer",
          "params": [
            {
              "description": "Input tensor",
              "name": "x",
              "type": "keras.KerasTensor"
            },
            {
              "description": "Model parameters.",
              "name": "params",
              "type": "EfficientNetParams"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "keras.KerasTensor: Output tensor",
              "type": "keras.KerasTensor"
            }
          ],
          "signature": "efficientnetv2_layer(x: keras.KerasTensor, params: EfficientNetParams) -> keras.KerasTensor",
          "source": {
            "line": 100,
            "path": "helia_edge/models/efficientnet.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/efficientnet.py#L100"
          },
          "summary": "Create EfficientNet V2 TF functional model"
        },
        {
          "description": "Build a EfficientNetV2 model.",
          "examples": [],
          "id": "helia_edge.models.efficientnet.build",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "build",
          "params": [
            {
              "description": "Model parameters.",
              "name": "params",
              "type": "EfficientNetParams"
            },
            {
              "description": "Input shape without the batch axis; None for a variable axis.",
              "name": "input_shape",
              "type": "tuple[int | None, ...]"
            },
            {
              "default": "None",
              "description": "Static batch size; None for a dynamic batch.",
              "name": "batch_size",
              "type": "int | None"
            },
            {
              "default": "None",
              "description": "Model name; the family when None.",
              "name": "name",
              "type": "str | None"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "keras.Model: The model, named ``efficientnet`` unless ``name`` is given.",
              "type": "keras.Model"
            }
          ],
          "signature": "build(\n    params: EfficientNetParams,\n    input_shape: tuple[int | None, ...],\n    *,\n    batch_size: int | None = None,\n    name: str | None = None,\n) -> keras.Model",
          "source": {
            "line": 161,
            "path": "helia_edge/models/efficientnet.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/efficientnet.py#L161"
          },
          "summary": "Build a EfficientNetV2 model."
        }
      ]
    }
  ],
  "name": "helia_edge"
}
