Squeeze and Excitation#

pydantic model vision_architectures.blocks.se.SEBlock3DConfig[source]#

Bases: CNNBlockConfig

Show JSON schema
{
   "title": "SEBlock3DConfig",
   "type": "object",
   "properties": {
      "in_channels": {
         "default": null,
         "description": "determined by dim and r",
         "title": "In Channels",
         "type": "null"
      },
      "out_channels": {
         "default": null,
         "description": "determined by dim and r",
         "title": "Out Channels",
         "type": "null"
      },
      "kernel_size": {
         "default": 1,
         "description": "Kernel size for the convolutional layers in the SE block.",
         "title": "Kernel Size",
         "type": "integer"
      },
      "padding": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "items": {
                  "type": "integer"
               },
               "type": "array"
            },
            {
               "type": "string"
            }
         ],
         "default": "same",
         "description": "Padding for the convolution. Can be 'same' or an integer/tuple of integers.",
         "title": "Padding"
      },
      "stride": {
         "default": 1,
         "description": "Stride for the convolution",
         "title": "Stride",
         "type": "integer"
      },
      "conv_kwargs": {
         "additionalProperties": true,
         "default": {},
         "description": "Additional keyword arguments for the convolution layer",
         "title": "Conv Kwargs",
         "type": "object"
      },
      "transposed": {
         "default": false,
         "description": "Whether to perform ConvTranspose instead of Conv",
         "title": "Transposed",
         "type": "boolean"
      },
      "normalization": {
         "default": "batchnorm3d",
         "description": "Normalization layer to use in the SE block.",
         "title": "Normalization",
         "type": "string"
      },
      "normalization_pre_args": {
         "default": [],
         "description": "Arguments for the normalization layer before providing the dimension. Useful when using GroupNorm layers are being used to specify the number of groups.",
         "items": {},
         "title": "Normalization Pre Args",
         "type": "array"
      },
      "normalization_post_args": {
         "default": [],
         "description": "Arguments for the normalization layer after providing the dimension.",
         "items": {},
         "title": "Normalization Post Args",
         "type": "array"
      },
      "normalization_kwargs": {
         "additionalProperties": true,
         "default": {},
         "description": "Additional keyword arguments for the normalization layer",
         "title": "Normalization Kwargs",
         "type": "object"
      },
      "activation": {
         "default": "silu",
         "description": "Activation function to use in the SE block.",
         "title": "Activation",
         "type": "string"
      },
      "activation_kwargs": {
         "additionalProperties": true,
         "default": {},
         "description": "Additional keyword arguments for the activation function.",
         "title": "Activation Kwargs",
         "type": "object"
      },
      "sequence": {
         "default": "CNA",
         "description": "Sequence of operations in the block.",
         "enum": [
            "C",
            "AC",
            "CA",
            "CD",
            "CN",
            "DC",
            "NC",
            "ACD",
            "ACN",
            "ADC",
            "ANC",
            "CAD",
            "CAN",
            "CDA",
            "CDN",
            "CNA",
            "CND",
            "DAC",
            "DCA",
            "DCN",
            "DNC",
            "NAC",
            "NCA",
            "NCD",
            "NDC",
            "ACDN",
            "ACND",
            "ADCN",
            "ADNC",
            "ANCD",
            "ANDC",
            "CADN",
            "CAND",
            "CDAN",
            "CDNA",
            "CNAD",
            "CNDA",
            "DACN",
            "DANC",
            "DCAN",
            "DCNA",
            "DNAC",
            "DNCA",
            "NACD",
            "NADC",
            "NCAD",
            "NCDA",
            "NDAC",
            "NDCA"
         ],
         "title": "Sequence",
         "type": "string"
      },
      "drop_prob": {
         "default": 0.0,
         "description": "Dropout probability.",
         "title": "Drop Prob",
         "type": "number"
      },
      "dim": {
         "description": "Number of input channels.",
         "title": "Dim",
         "type": "integer"
      },
      "r": {
         "description": "Reduction ratio for the number of channels in the SE block.",
         "title": "R",
         "type": "number"
      }
   },
   "required": [
      "dim",
      "r"
   ]
}

Config:
  • arbitrary_types_allowed: bool = True

  • extra: str = ignore

  • validate_default: bool = True

  • validate_assignment: bool = True

  • validate_return: bool = True

Fields:
Validators:

field dim: int [Required]#

Number of input channels.

Validated by:
field r: float [Required]#

Reduction ratio for the number of channels in the SE block.

Validated by:
field kernel_size: int = 1#

Kernel size for the convolutional layers in the SE block.

Validated by:
field normalization: str = 'batchnorm3d'#

Normalization layer to use in the SE block.

Validated by:
field activation: str = 'silu'#

Activation function to use in the SE block.

Validated by:
field in_channels: None = None#

determined by dim and r

Validated by:
field out_channels: None = None#

determined by dim and r

Validated by:
class vision_architectures.blocks.se.SEBlock3D(config={}, checkpointing_level=0, **kwargs)[source]#

Bases: Module

A Squeeze-and-Excitation (SE) block for 3D data. This class is designed for 3D input eg. medical images, videos etc.

__init__(config={}, checkpointing_level=0, **kwargs)[source]#

Initialize an SEBlock3D block. Activation checkpointing level 2.

Parameters:
  • config (SEBlock3DConfig) – An instance of the Config class that contains all the configuration parameters. It can also be passed as a dictionary and the instance will be created automatically.

  • checkpointing_level (int) – The level of checkpointing to use for activation checkpointing. Refer to ActivationCheckpointing for more details.

  • **kwargs – Additional keyword arguments for configuration.

forward(x, channels_first=True)[source]#

Forward pass of the SEBlock3D block.

Parameters:
  • x (Tensor) – Tensor of shape (B, C, Z, Y, X) or (B, Z, Y, X, C) representing the input features.

  • channels_first (bool) – Whether the inputs are in channels first format (B, C, …) or not (B, …, C).

Return type:

Tensor

Returns:

Tensor of shape (B, C, Z, Y, X) or (B, Z, Y, X, C) representing the output features.