Reference for ultralytics/nn/modules/block.py
Note
This file is available at https://github.com/ultralytics/ultralytics/blob/main/ultralytics/nn/modules/block.py. If you spot a problem please help fix it by contributing a Pull Request 🛠️. Thank you 🙏!
ultralytics.nn.modules.block.DFL
Bases: Module
Integral module of Distribution Focal Loss (DFL).
Proposed in Generalized Focal Loss https://ieeexplore.ieee.org/document/9792391
Source code in ultralytics/nn/modules/block.py
__init__(c1=16)
Initialize a convolutional layer with a given number of input channels.
Source code in ultralytics/nn/modules/block.py
forward(x)
Applies a transformer layer on input tensor 'x' and returns a tensor.
ultralytics.nn.modules.block.Proto
Bases: Module
YOLOv8 mask Proto module for segmentation models.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c_=256, c2=32)
Initializes the YOLOv8 mask Proto module with specified number of protos and masks.
Input arguments are ch_in, number of protos, number of masks.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.HGStem
Bases: Module
StemBlock of PPHGNetV2 with 5 convolutions and one maxpool2d.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/backbones/hgnet_v2.py
Source code in ultralytics/nn/modules/block.py
__init__(c1, cm, c2)
Initialize the SPP layer with input/output channels and specified kernel sizes for max pooling.
Source code in ultralytics/nn/modules/block.py
forward(x)
Forward pass of a PPHGNetV2 backbone layer.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.HGBlock
Bases: Module
HG_Block of PPHGNetV2 with 2 convolutions and LightConv.
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/backbones/hgnet_v2.py
Source code in ultralytics/nn/modules/block.py
__init__(c1, cm, c2, k=3, n=6, lightconv=False, shortcut=False, act=nn.ReLU())
Initializes a CSP Bottleneck with 1 convolution using specified input and output channels.
Source code in ultralytics/nn/modules/block.py
forward(x)
ultralytics.nn.modules.block.SPP
Bases: Module
Spatial Pyramid Pooling (SPP) layer https://arxiv.org/abs/1406.4729.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, k=(5, 9, 13))
Initialize the SPP layer with input/output channels and pooling kernel sizes.
Source code in ultralytics/nn/modules/block.py
forward(x)
ultralytics.nn.modules.block.SPPF
Bases: Module
Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocher.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, k=5)
Initializes the SPPF layer with given input/output channels and kernel size.
This module is equivalent to SPP(k=(5, 9, 13)).
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.C1
Bases: Module
CSP Bottleneck with 1 convolution.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1)
Initializes the CSP Bottleneck with configurations for 1 convolution with arguments ch_in, ch_out, number.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.C2
Bases: Module
CSP Bottleneck with 2 convolutions.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1, shortcut=True, g=1, e=0.5)
Initializes the CSP Bottleneck with 2 convolutions module with arguments ch_in, ch_out, number, shortcut, groups, expansion.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.C2f
Bases: Module
Faster Implementation of CSP Bottleneck with 2 convolutions.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1, shortcut=False, g=1, e=0.5)
Initialize CSP bottleneck layer with two convolutions with arguments ch_in, ch_out, number, shortcut, groups, expansion.
Source code in ultralytics/nn/modules/block.py
forward(x)
forward_split(x)
Forward pass using split() instead of chunk().
ultralytics.nn.modules.block.C3
Bases: Module
CSP Bottleneck with 3 convolutions.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1, shortcut=True, g=1, e=0.5)
Initialize the CSP Bottleneck with given channels, number, shortcut, groups, and expansion values.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.C3x
Bases: C3
C3 module with cross-convolutions.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1, shortcut=True, g=1, e=0.5)
Initialize C3TR instance and set default parameters.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.RepC3
Bases: Module
Rep C3.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=3, e=1.0)
Initialize CSP Bottleneck with a single convolution using input channels, output channels, and number.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.C3TR
Bases: C3
C3 module with TransformerBlock().
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1, shortcut=True, g=1, e=0.5)
Initialize C3Ghost module with GhostBottleneck().
ultralytics.nn.modules.block.C3Ghost
Bases: C3
C3 module with GhostBottleneck().
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1, shortcut=True, g=1, e=0.5)
Initialize 'SPP' module with various pooling sizes for spatial pyramid pooling.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.GhostBottleneck
Bases: Module
Ghost Bottleneck https://github.com/huawei-noah/ghostnet.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, k=3, s=1)
Initializes GhostBottleneck module with arguments ch_in, ch_out, kernel, stride.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.Bottleneck
Bases: Module
Standard bottleneck.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, shortcut=True, g=1, k=(3, 3), e=0.5)
Initializes a bottleneck module with given input/output channels, shortcut option, group, kernels, and expansion.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.BottleneckCSP
Bases: Module
CSP Bottleneck https://github.com/WongKinYiu/CrossStagePartialNetworks.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1, shortcut=True, g=1, e=0.5)
Initializes the CSP Bottleneck given arguments for ch_in, ch_out, number, shortcut, groups, expansion.
Source code in ultralytics/nn/modules/block.py
forward(x)
ultralytics.nn.modules.block.ResNetBlock
Bases: Module
ResNet block with standard convolution layers.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, s=1, e=4)
Initialize convolution with given parameters.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.ResNetLayer
Bases: Module
ResNet layer with multiple ResNet blocks.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, s=1, is_first=False, n=1, e=4)
Initializes the ResNetLayer given arguments.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.MaxSigmoidAttnBlock
Bases: Module
Max Sigmoid attention block.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, nh=1, ec=128, gc=512, scale=False)
Initializes MaxSigmoidAttnBlock with specified arguments.
Source code in ultralytics/nn/modules/block.py
forward(x, guide)
Forward process.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.C2fAttn
Bases: Module
C2f module with an additional attn module.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1, ec=128, nh=1, gc=512, shortcut=False, g=1, e=0.5)
Initialize CSP bottleneck layer with two convolutions with arguments ch_in, ch_out, number, shortcut, groups, expansion.
Source code in ultralytics/nn/modules/block.py
forward(x, guide)
Forward pass through C2f layer.
forward_split(x, guide)
Forward pass using split() instead of chunk().
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.ImagePoolingAttn
Bases: Module
ImagePoolingAttn: Enhance the text embeddings with image-aware information.
Source code in ultralytics/nn/modules/block.py
__init__(ec=256, ch=(), ct=512, nh=8, k=3, scale=False)
Initializes ImagePoolingAttn with specified arguments.
Source code in ultralytics/nn/modules/block.py
forward(x, text)
Executes attention mechanism on input tensor x and guide tensor.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.ContrastiveHead
Bases: Module
Contrastive Head for YOLO-World compute the region-text scores according to the similarity between image and text features.
Source code in ultralytics/nn/modules/block.py
__init__()
Initializes ContrastiveHead with specified region-text similarity parameters.
Source code in ultralytics/nn/modules/block.py
forward(x, w)
Forward function of contrastive learning.
ultralytics.nn.modules.block.BNContrastiveHead
Bases: Module
Batch Norm Contrastive Head for YOLO-World using batch norm instead of l2-normalization.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
embed_dims |
int
|
Embed dimensions of text and image features. |
required |
Source code in ultralytics/nn/modules/block.py
__init__(embed_dims)
Initialize ContrastiveHead with region-text similarity parameters.
Source code in ultralytics/nn/modules/block.py
forward(x, w)
Forward function of contrastive learning.
ultralytics.nn.modules.block.RepBottleneck
Bases: Bottleneck
Rep bottleneck.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, shortcut=True, g=1, k=(3, 3), e=0.5)
Initializes a RepBottleneck module with customizable in/out channels, shortcut option, groups and expansion ratio.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.RepCSP
Bases: C3
Rep CSP Bottleneck with 3 convolutions.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, n=1, shortcut=True, g=1, e=0.5)
Initializes RepCSP layer with given channels, repetitions, shortcut, groups and expansion ratio.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.RepNCSPELAN4
Bases: Module
CSP-ELAN.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, c3, c4, n=1)
Initializes CSP-ELAN layer with specified channel sizes, repetitions, and convolutions.
Source code in ultralytics/nn/modules/block.py
forward(x)
forward_split(x)
Forward pass using split() instead of chunk().
ultralytics.nn.modules.block.ADown
Bases: Module
ADown.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2)
Initializes ADown module with convolution layers to downsample input from channels c1 to c2.
Source code in ultralytics/nn/modules/block.py
forward(x)
Forward pass through ADown layer.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.SPPELAN
Bases: Module
SPP-ELAN.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2, c3, k=5)
Initializes SPP-ELAN block with convolution and max pooling layers for spatial pyramid pooling.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.Silence
Bases: Module
Silence.
Source code in ultralytics/nn/modules/block.py
__init__()
ultralytics.nn.modules.block.CBLinear
Bases: Module
CBLinear.
Source code in ultralytics/nn/modules/block.py
__init__(c1, c2s, k=1, s=1, p=None, g=1)
Initializes the CBLinear module, passing inputs unchanged.
Source code in ultralytics/nn/modules/block.py
ultralytics.nn.modules.block.CBFuse
Bases: Module
CBFuse.
Source code in ultralytics/nn/modules/block.py
__init__(idx)
forward(xs)
Forward pass through CBFuse layer.