Sonata#

class Sonata(backbone, head_in_channels, head_hidden_channels=4096, head_embed_channels=512, head_num_prototypes=4096, teacher_custom=None, num_global_view=2, num_local_view=4, mask_size_start=0.1, mask_size_base=0.4, mask_size_warmup_ratio=0.05, mask_ratio_start=0.3, mask_ratio_base=0.7, mask_ratio_warmup_ratio=0.05, mask_jitter=None, mask_jitter_start=0.0, mask_jitter_base=0.01, mask_jitter_warmup_ratio=0.05, teacher_temp_start=0.04, teacher_temp_base=0.07, teacher_temp_warmup_ratio=0.05, student_temp=0.1, mask_loss_weight=0.25, roll_mask_loss_weight=0.25, unmask_loss_weight=0.5, momentum_base=0.996, momentum_final=1, match_max_k=8, match_max_r=0.08, up_cast_level=2, representation_fusion_channels=None, representation_fusion_hidden_channels=None, representation_fusion_dropout=0.0, representation_fusion_residual=True, representation_fusion_output_norm=True)[source]#

Bases: PointModel

after_step()[source]#
before_step()[source]#
before_train()[source]#
fuse_representation(point, model_dict)[source]#
generate_mask(coord, offset)[source]#
match_neighbour(view1_coord, view1_offset, view2_coord, view2_offset)[source]#
roll_point(point)[source]#
static sinkhorn_knopp(feat, temp, num_iter=3)[source]#
up_cast(point)[source]#
upsample_to_original(point)[source]#
Sonata.forward(data_dict, return_point=False)[source]#