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 toActivationCheckpointing
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.