Concerto
Concerto pretrained encoders and linear-probing segmentation model.

Classes:
-
ConcertoSegmentation–Concerto linear-probing segmentation model.
ConcertoSegmentation
¶
ConcertoSegmentation(
in_channels: int,
num_classes: int,
serialization_orders: Sequence[SerializationOrder] = (
"z",
"z-trans",
"hilbert",
"hilbert-trans",
),
shuffle_serialization_orders: bool = True,
strides: Sequence[int] = (2, 2, 2, 2),
encoder_depths: Sequence[int] = (3, 3, 3, 12, 3),
encoder_channels: Sequence[int] = (
64,
128,
256,
512,
768,
),
encoder_num_heads: Sequence[int] = (4, 8, 16, 32, 48),
encoder_patch_size: Sequence[int] = (
1024,
1024,
1024,
1024,
1024,
),
norm: Union[str, Callable] = "layer_norm",
act: Union[str, Callable] = "gelu",
mlp_ratio: float = 4.0,
qkv_bias: bool = True,
qk_scale: Optional[float] = None,
attn_drop: float = 0.0,
proj_drop: float = 0.0,
drop_path: float = 0.3,
attn_kind: AttentionKind = "default",
use_flash_attn: bool = True,
upcast_attn: bool = False,
upcast_softmax: bool = False,
dropout: float = 0.0,
pooling: str = "grid",
stem_type: str = "linear",
act_kwargs: Optional[Dict[str, Any]] = None,
norm_kwargs: Optional[Dict[str, Any]] = None,
legacy: bool = False,
)
Bases: SegmentationModel
Concerto linear-probing segmentation model.
Linear-probe variant from Concerto: Joint 2D-3D Self-Supervised Learning (Zhang et al., NeurIPS 2025). The pretrained PT-V3 encoder is run with intermediate features captured at every encoder stage; those features are successively unpooled through the saved pooling inverses, concatenated with each parent stage, then projected by a single linear segmentation head.
Architecturally identical to Sonata's linear-probe head, only the encoder scale differs (Concerto-large uses \(C = (64, 128, 256, 512, 768)\) versus Sonata's \((48, 96, 192, 384, 512)\)).
Note
The default (and registered) configuration enables flash attention (use_flash_attn=True),
which requires the flash-attn package and a CUDA device; pass use_flash_attn=False to
run without it. The xCPE sparse convolution still needs a spconv build matching the
device; the standard CUDA wheel cannot run the forward on CPU.
Methods:
-
configure_encoder–Build the
PointTransformerV3Encoderbackbone.
Attributes:
-
num_features(int) –Channel count \(C\) entering the head: every encoder stage unpooled and concatenated.
num_features
property
¶
Channel count \(C\) entering the head: every encoder stage unpooled and concatenated.
configure_encoder
¶
configure_encoder() -> PointTransformerV3Encoder
Build the PointTransformerV3Encoder backbone.