DeepLabv3 R50
Fit diagram
Read at 100%
Clear selection
Download SVG
Download PNG
Click a block to read its description, or select it with Tab and Enter.
DeepLabv3 R50
Semantic segmentation, 21 classes, 520 × 520 RGB, native eval. Shapes exclude batch.
LibreYOLO
DeepLabv3 R50
Semantic segmentation, 21 classes, 520 × 520 RGB, native eval. Shapes exclude batch.
Dilated ResNet backbone
Input RGB
3 × 520 × 520
Normalized input
Normalization occurs in preprocessing
Conv2d 7×7, stride 2
3 to 64; padding 3
BatchNorm2d + ReLU
64 × 260 × 260
MaxPool2d 3×3, stride 2
64 × 130 × 130; padding 1
Bottleneck stage 1, n=3
256 × 130 × 130; width 64
Bottleneck stage 2, n=4
512 × 65 × 65; width 128
Bottleneck stage 3, n=6
1024 × 65 × 65; width 256
Bottleneck stage 4, n=3
2048 × 65 × 65; width 512
Output stride 8. Stage 3/4 replace spatial strides with dilation.
B
Stage 1 bottlenecks (n=3)
First block
Input
64 channels
Conv2d 1×1
64 to 64, stride 1
BatchNorm2d
64 channels
ReLU
Conv2d 3×3
64 to 64; s=1, d=p=1
BatchNorm2d
64 channels
ReLU
Conv2d 1×1
64 to 256, stride 1
BatchNorm2d
256 channels
+
Conv 1×1
64 to 256; s=1
BatchNorm
256 channels
ReLU
Conv bias=False; addition precedes final ReLU.
Repeated block, n=2
Input
256 channels
Conv2d 1×1
256 to 64, stride 1
BatchNorm2d
64 channels
ReLU
Conv2d 3×3
64 to 64; s=1, d=p=1
BatchNorm2d
64 channels
ReLU
Conv2d 1×1
64 to 256, stride 1
BatchNorm2d
256 channels
+
ReLU
Conv bias=False; addition precedes final ReLU.
s: stride; d: dilation; p: padding. First block projects the residual branch.
Stage 2 bottlenecks (n=4)
First block
Input
256 channels
Conv2d 1×1
256 to 128, stride 1
BatchNorm2d
128 channels
ReLU
Conv2d 3×3
128 to 128; s=2, d=p=1
BatchNorm2d
128 channels
ReLU
Conv2d 1×1
128 to 512, stride 1
BatchNorm2d
512 channels
+
Conv 1×1
256 to 512; s=2
BatchNorm
512 channels
ReLU
Conv bias=False; addition precedes final ReLU.
Repeated block, n=3
Input
512 channels
Conv2d 1×1
512 to 128, stride 1
BatchNorm2d
128 channels
ReLU
Conv2d 3×3
128 to 128; s=1, d=p=1
BatchNorm2d
128 channels
ReLU
Conv2d 1×1
128 to 512, stride 1
BatchNorm2d
512 channels
+
ReLU
Conv bias=False; addition precedes final ReLU.
s: stride; d: dilation; p: padding. First block projects the residual branch.
Stage 3 bottlenecks (n=6)
First block
Input
512 channels
Conv2d 1×1
512 to 256, stride 1
BatchNorm2d
256 channels
ReLU
Conv2d 3×3
256 to 256; s=1, d=p=1
BatchNorm2d
256 channels
ReLU
Conv2d 1×1
256 to 1024, stride 1
BatchNorm2d
1024 channels
+
Conv 1×1
512 to 1024; s=1
BatchNorm
1024 channels
ReLU
Conv bias=False; addition precedes final ReLU.
Repeated block, n=5
Input
1024 channels
Conv2d 1×1
1024 to 256, stride 1
BatchNorm2d
256 channels
ReLU
Conv2d 3×3
256 to 256; s=1, d=p=2
BatchNorm2d
256 channels
ReLU
Conv2d 1×1
256 to 1024, stride 1
BatchNorm2d
1024 channels
+
ReLU
Conv bias=False; addition precedes final ReLU.
s: stride; d: dilation; p: padding. First block projects the residual branch.
Stage 4 bottlenecks (n=3)
First block
Input
1024 channels
Conv2d 1×1
1024 to 512, stride 1
BatchNorm2d
512 channels
ReLU
Conv2d 3×3
512 to 512; s=1, d=p=2
BatchNorm2d
512 channels
ReLU
Conv2d 1×1
512 to 2048, stride 1
BatchNorm2d
2048 channels
+
Conv 1×1
1024 to 2048; s=1
BatchNorm
2048 channels
ReLU
Conv bias=False; addition precedes final ReLU.
Repeated block, n=2
Input
2048 channels
Conv2d 1×1
2048 to 512, stride 1
BatchNorm2d
512 channels
ReLU
Conv2d 3×3
512 to 512; s=1, d=p=4
BatchNorm2d
512 channels
ReLU
Conv2d 1×1
512 to 2048, stride 1
BatchNorm2d
2048 channels
+
ReLU
Conv bias=False; addition precedes final ReLU.
s: stride; d: dilation; p: padding. First block projects the residual branch.
ConvNormActivation definition
Conv2d
Numeric channels, kernel, stride and dilation at occurrence
BatchNorm2d
One normalization parameter set per output channel
ReLU or Hardswish
Actual activation named at occurrence
A projection marked no activation stops after BatchNorm2d.
ASPP and dense prediction head
B denotes the backbone output: 2048 × 65 × 65. All five branches consume B.
B
2048 channels
Conv2d 1×1
2048 to 256; d=1
BatchNorm2d
256 channels
ReLU
256 × 65 × 65
B
2048 channels
Atrous Conv2d 3×3
2048 to 256; d=12
BatchNorm2d
256 channels
ReLU
256 × 65 × 65
B
2048 channels
Atrous Conv2d 3×3
2048 to 256; d=24
BatchNorm2d
256 channels
ReLU
256 × 65 × 65
B
2048 channels
Atrous Conv2d 3×3
2048 to 256; d=36
BatchNorm2d
256 channels
ReLU
256 × 65 × 65
B
2048 channels
AdaptiveAvgPool2d(1)
2048 × 1 × 1
Conv2d 1×1
2048 to 256
BatchNorm2d
256 channels
ReLU
Bilinear resize
256 × 65 × 65
Concat five 256-channel branches
1280 × 65 × 65
Conv2d 1×1
1280 to 256; bias=False
BatchNorm2d
256 channels
ReLU
Dropout 0.5
Identity in eval
Conv2d 3×3
256 to 256; s=1, p=1, bias=False
BatchNorm2d
256 channels
ReLU
Conv2d 1×1
256 to 21; bias=True
Bilinear resize to 520 × 520
align_corners=False
Semantic logits
21 × 520 × 520
No auxiliary FCN head in this native inference graph. ASPP conv padding equals dilation.
Source: libreyolo/models/deeplabv3/nn.py and model.py. Revision a4d0ecc9e17f.
libreyolo.com