{
  "$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": "# ResNet\n\n## Overview\n\nResNet is a type of convolutional neural network (CNN) that is commonly used for image classification tasks. ResNet is a fully convolutional network that consists of a series of convolutional layers and pooling layers. The pooling layers are used to downsample the input while the convolutional layers are used to upsample the input. The skip connections between the pooling layers and convolutional layers allow ResNet to preserve spatial/temporal information while also allowing for faster training and inference times.\n\nFor more info, refer to the original paper [Deep Residual Learning for Image Recognition](https://doi.org/10.1109/CVPR.2016.90).\n\nParameters are in ``helia_edge.models.resnet_params``.\n\n**Functions**\n\n| Name | Description |\n| --- | --- |\n| `build` | ResNet model from ``ResNetParams`` |\n| `generate_bottleneck_block` | Generate functional bottleneck block |\n| `generate_residual_block` | Generate functional residual block |\n| `resnet_layer` | Generate functional ResNet model |\n\n## Additions\n\n* Enable 1D and 2D variants.",
      "name": "resnet",
      "path": "helia_edge.models.resnet",
      "submodules": [],
      "summary": "ResNet",
      "symbols": [
        {
          "description": "Generate functional bottleneck block.",
          "examples": [],
          "id": "helia_edge.models.resnet.generate_bottleneck_block",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "generate_bottleneck_block",
          "params": [
            {
              "description": "Filter size",
              "name": "filters",
              "type": "int"
            },
            {
              "default": "3",
              "description": "Kernel size. Defaults to 3.",
              "name": "kernel_size",
              "type": "int | tuple[int, int]"
            },
            {
              "default": "1",
              "description": "Stride length. Defaults to 1.",
              "name": "strides",
              "type": "int | tuple[int, int]"
            },
            {
              "default": "4",
              "description": "Expansion factor. Defaults to 4.",
              "name": "expansion",
              "type": "int"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "keras.Layer: TF functional layer",
              "type": "keras.Layer"
            }
          ],
          "signature": "generate_bottleneck_block(\n    filters: int,\n    kernel_size: int | tuple[int, int] = 3,\n    strides: int | tuple[int, int] = 1,\n    expansion: int = 4,\n    activation: str = 'relu6',\n) -> keras.Layer",
          "source": {
            "line": 31,
            "path": "helia_edge/models/resnet.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/resnet.py#L31"
          },
          "summary": "Generate functional bottleneck block."
        },
        {
          "description": "Generate functional residual block",
          "examples": [],
          "id": "helia_edge.models.resnet.generate_residual_block",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "generate_residual_block",
          "params": [
            {
              "description": "Filter size",
              "name": "filters",
              "type": "int"
            },
            {
              "default": "3",
              "description": "Kernel size. Defaults to 3.",
              "name": "kernel_size",
              "type": "int | tuple[int, int]"
            },
            {
              "default": "1",
              "description": "Stride length. Defaults to 1.",
              "name": "strides",
              "type": "int | tuple[int, int]"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "keras.Layer: TF functional layer",
              "type": "keras.Layer"
            }
          ],
          "signature": "generate_residual_block(\n    filters: int,\n    kernel_size: int | tuple[int, int] = 3,\n    strides: int | tuple[int, int] = 1,\n    activation: str = 'relu6',\n) -> keras.Layer",
          "source": {
            "line": 75,
            "path": "helia_edge/models/resnet.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/resnet.py#L75"
          },
          "summary": "Generate functional residual block"
        },
        {
          "description": "Generate functional ResNet model.\nArgs:\n    x (keras.KerasTensor): Inputs\n    params (ResNetParams): Model parameters.",
          "examples": [],
          "id": "helia_edge.models.resnet.resnet_layer",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "resnet_layer",
          "params": [],
          "raises": [],
          "returns": [
            {
              "description": "keras.KerasTensor: Output tensor",
              "type": "keras.KerasTensor"
            }
          ],
          "signature": "resnet_layer(x: keras.KerasTensor, params: ResNetParams) -> keras.KerasTensor",
          "source": {
            "line": 111,
            "path": "helia_edge/models/resnet.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/resnet.py#L111"
          },
          "summary": "Generate functional ResNet model."
        },
        {
          "description": "Build a ResNet model.",
          "examples": [],
          "id": "helia_edge.models.resnet.build",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "build",
          "params": [
            {
              "description": "Model parameters.",
              "name": "params",
              "type": "ResNetParams"
            },
            {
              "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 ``resnet`` unless ``name`` is given.",
              "type": "keras.Model"
            }
          ],
          "signature": "build(\n    params: ResNetParams,\n    input_shape: tuple[int | None, ...],\n    *,\n    batch_size: int | None = None,\n    name: str | None = None,\n) -> keras.Model",
          "source": {
            "line": 169,
            "path": "helia_edge/models/resnet.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/resnet.py#L169"
          },
          "summary": "Build a ResNet model."
        }
      ]
    }
  ],
  "name": "helia_edge"
}
