RTMDet-S

Click a block to read its description, or select it with Tab and Enter.

RTMDet-SDetection; 640 × 640 RGB; 80 classes; batch 1; unfused native PyTorch eval.LibreYOLORTMDet-SDetection; 640 × 640 RGB; 80 classes; batch 1; unfused native PyTorch eval.CSPNeXt backboneInput3 × 640 × 640ConvBNAct 3×3, s=216 × 320 × 320ConvBNAct 3×316 × 320 × 320ConvBNAct 3×332 × 320 × 320ConvBNAct 3×3, s=264 × 160 × 160CSPLayer B264 × 160 × 160; n=1ConvBNAct 3×3, s=2128 × 80 × 80CSPLayer B3128 × 80 × 80; n=2ConvBNAct 3×3, s=2256 × 40 × 40CSPLayer B4256 × 40 × 40; n=2ConvBNAct 3×3, s=2512 × 20 × 20SPPBottleneck512 × 20 × 20CSPLayer B5 (no residual)512 × 20 × 20; n=1Backbone CSP layers include channel attention.CSPNeXtPAFPNConvBNAct 1×1256 × 20 × 20Nearest upsample ×2256 × 40 × 40Concat with B4512 × 40 × 40CSPLayer256 × 40 × 40; n=1ConvBNAct 1×1128 × 40 × 40Nearest upsample ×2128 × 80 × 80Concat with B3256 × 80 × 80CSPLayer128 × 80 × 80; n=1ConvBNAct 3×3, s=2128 × 40 × 40Concat with red256 × 40 × 40CSPLayer256 × 40 × 40; n=1ConvBNAct 3×3, s=2256 × 20 × 20Concat with lat512 × 20 × 20CSPLayer512 × 20 × 20; n=1B5B4B3redlatNeck CSP: no residuals and no channel attention.ConvBNAct 3×3P3: 128 × 80 × 80N3 continuationConvBNAct 3×3P4: 128 × 40 × 40Nout4 continuationConvBNAct 3×3P5: 128 × 20 × 20Nout5 continuationThese three output projections make every head input 128 channels.Detection headRun separately at P3/P4/P5: grids 80/40/20, strides 8/16/32.Pyramid feature128 channelsConvBNAct 3×3128 channelsConvBNAct 3×3128 channelsConv2d 1×180 output channels; bias=TrueRaw class output80 channels; no activationPyramid feature128 channelsConvBNAct 3×3128 channelsConvBNAct 3×3128 channelsConv2d 1×14 output channels; bias=TrueMultiply by stride (linear)4 l/t/r/b distances in canvas pixelsClass/reg 3×3 conv weights are shared across levels; BN is per level.Class and regression towers have separate parameters.No per-level learned Scale modules. No DFL bins.Total locations: 8,400. Classes remain logits in native outputs.ConvBNActConv2dk/stride/padding/channels from occurrence; no biasBatchNorm2deps=0.00001; momentum=0.1SiLUx × sigmoid(x)Unmarked strides/groups are 1. Conv 3×3 uses p=1; Conv 1×1 p=0.DepthwiseSeparableConvBNAct depthwise 5×5p=2; groups=Q; 32/64/128/256 channelsConvBNAct pointwise 1×132/64/128/256 channelsBoth depthwise and pointwise convolutions have BN and SiLU.CSPNeXtBlockInput32/64/128/256 channelsConvBNAct 3×332/64/128/256 channelsDepthwiseSeparable 5×532/64/128/256 channels+Identity addition only in backbone B2/B3/B4.CSPLayerInputOutput width from stageConvBNAct 1×132/64/128/256 hidden channelsConvBNAct 1×132/64/128/256 hidden channelsCSPNeXtBlock repeated n timesn from backbone stage; r in neckConcat two branches64/128/256/512 channelsChannelAttention (backbone only)Neck bypasses this operationConvBNAct 1×1Output channels from stageneck bypassChannelAttentionInputBackbone stage output widthAdaptiveAvgPool2d1 ×1 spatial outputConv2d 1×1Same channels; bias=TrueHardsigmoidClamp(x+3,0,6) /6; range[0,1]Multiply original input by gateBroadcast channel weightsSPPConvBNAct 1×1256 × 20 × 20MaxPool5×5s=1; p=2MaxPool9×9s=1; p=4MaxPool13×13s=1; p=6Concat input and three parallel pools1024 channelsConvBNAct 1×1512 × 20 × 20Box decode: zero-offset grid points (0,8,16,... or stride 16/32) minus l/t and plus r/b. Sigmoid class logits; threshold; class NMS.Source: models/rtmdet/nn.py; postprocess/rtmdet.py. Revision a4d0ecc9e17f.libreyolo.com