data
MaskFormerConfig
extends
ModelConfigMaskFormerConfig(num_classes: int = 150, in_channels: int = 3, backbone_layers: tuple[int, int, int, int] = (3, 4, 6, 3), backbone_block: Literal['basic', 'bottleneck'] = 'bottleneck', d_model: int = 256, n_head: int = 8, num_encoder_layers: int = 6, num_decoder_layers: int = 6, dim_feedforward: int = 2048, dropout: float = 0.1, num_queries: int = 100, fpn_out_channels: int = 256)Configuration for MaskFormer.
MaskFormer (Cheng et al., NeurIPS 2021) reformulates semantic segmentation as mask classification: N learnable queries each predict a class label and a binary mask. Predictions are matched to ground-truth segments via Hungarian matching during training.
Parameters
num_classesint= 150Number of semantic classes (background = class 0).
in_channelsint= 3Input image channels.
backbone_layerstuple[int, int, int, int]= (3, 4, 6, 3)ResNet layer counts (default ResNet-50: 3,4,6,3).
d_modelint= 256Transformer embedding dimension.
n_headint= 8Number of attention heads.
num_encoder_layersint= 6Pixel decoder transformer encoder depth.
num_decoder_layersint= 6Query transformer decoder depth.
dim_feedforwardint= 2048FFN inner dimension in each transformer layer.
dropoutfloat= 0.1Dropout probability.
num_queriesint= 100Number of learnable object queries N.
fpn_out_channelsint= 256FPN lateral / output channel width.
Notes
Image → ResNet backbone → [C2, C3, C4, C5] → FPN Pixel Decoder → per-pixel embeddings (B, d_model, H/4, W/4) → Transformer Decoder (N queries attend to pixel embeddings) → Class head: Linear(d_model, num_classes+1) per query → Mask head: query-dot-pixel → binary mask per query
seg_logits[b, k, h, w] = sum_n softmax(class_logits)[b,n,k] * sigmoid(mask_logits)[b,n,h,w] Upsampled to input resolution and argmaxed for final prediction.
Used by 3
Constructors
1dunder
__init__
→None__init__(num_classes: int = 150, in_channels: int = 3, backbone_layers: tuple[int, int, int, int] = (3, 4, 6, 3), backbone_block: Literal['basic', 'bottleneck'] = 'bottleneck', d_model: int = 256, n_head: int = 8, num_encoder_layers: int = 6, num_decoder_layers: int = 6, dim_feedforward: int = 2048, dropout: float = 0.1, num_queries: int = 100, fpn_out_channels: int = 256)