Python API#

Each component in a config is a dict whose type is a name registered here; pimm builds the class with the dict’s other keys. Summaries are the first paragraph of each class’s docstring. To add a name, see Add a component.

Registry

Names

Used for

Models

54

model.type and nested backbone.type

Datasets

7

data.<split>.type

Transforms

46

entries of transform lists

Losses

14

entries of criteria lists

Hooks

26

entries of hooks

Trainers

5

train.type

Testers

2

test.type

Optimizers

3

optimizer.type

Schedulers

6

scheduler.type

Models#

Name

Class

Summary

DefaultClassifier

pimm.models.default.DefaultClassifier

—

DefaultInsSegmentor

pimm.models.default.DefaultInsSegmentor

—

DefaultSegmentor

pimm.models.default.DefaultSegmentor

—

DefaultSegmentorV2

pimm.models.default.DefaultSegmentorV2

—

DefaultSegmentorV3

pimm.models.default.DefaultSegmentorV3

—

detector-v3m2

pimm.models.panda_detector.detector_v3m2.MultiLabelDetectorV3M2

Shared-backbone Panda detector with one batched query decoder for all labels.

detector-v4

pimm.models.panda_detector.detector_v4.UnifiedDetector

Unified Panda detector: arbitrary per-query heads, optional pre-attention point removal, configurable queries, and per-label overlap.

detector-v5

pimm.models.panda_detector.detector_v5.UnifiedDetector

Backbone, shared query decoder, losses, and panoptic postprocessing.

detector-v5m2

pimm.models.panda_detector.detector_v5m2.UnifiedDetector

Backbone, shared query decoder, losses, and panoptic postprocessing.

DINOEnhancedSegmentor

pimm.models.default.DINOEnhancedSegmentor

—

LitePT

pimm.models.litept.litept.LitePT

—

LoRAAdapter

pimm.models.lora.LoRAAdapter

Freeze a built model and LoRA-tune its attention blocks.

MinkUNet101

pimm.models.sparse_unet.mink_unet.MinkUNet101

—

MinkUNet14

pimm.models.sparse_unet.mink_unet.MinkUNet14

—

MinkUNet14A

pimm.models.sparse_unet.mink_unet.MinkUNet14A

—

MinkUNet14B

pimm.models.sparse_unet.mink_unet.MinkUNet14B

—

MinkUNet14C

pimm.models.sparse_unet.mink_unet.MinkUNet14C

—

MinkUNet14D

pimm.models.sparse_unet.mink_unet.MinkUNet14D

—

MinkUNet18

pimm.models.sparse_unet.mink_unet.MinkUNet18

—

MinkUNet18A

pimm.models.sparse_unet.mink_unet.MinkUNet18A

—

MinkUNet18B

pimm.models.sparse_unet.mink_unet.MinkUNet18B

—

MinkUNet18D

pimm.models.sparse_unet.mink_unet.MinkUNet18D

—

MinkUNet34

pimm.models.sparse_unet.mink_unet.MinkUNet34

—

MinkUNet34A

pimm.models.sparse_unet.mink_unet.MinkUNet34A

—

MinkUNet34B

pimm.models.sparse_unet.mink_unet.MinkUNet34B

—

MinkUNet34C

pimm.models.sparse_unet.mink_unet.MinkUNet34C

—

MinkUNet50

pimm.models.sparse_unet.mink_unet.MinkUNet50

—

PG-v1m1

pimm.models.point_group.point_group_v1m1_base.PointGroup

—

PointTransformer-Cls26

pimm.models.point_transformer.point_transformer_cls.PointTransformerCls26

—

PointTransformer-Cls38

pimm.models.point_transformer.point_transformer_cls.PointTransformerCls38

—

PointTransformer-Cls50

pimm.models.point_transformer.point_transformer_cls.PointTransformerCls50

—

PointTransformer-PartSeg26

pimm.models.point_transformer.point_transformer_partseg.PointTransformerSeg26

—

PointTransformer-PartSeg38

pimm.models.point_transformer.point_transformer_partseg.PointTransformerSeg38

—

PointTransformer-PartSeg50

pimm.models.point_transformer.point_transformer_partseg.PointTransformerSeg50

—

PointTransformer-Seg26

pimm.models.point_transformer.point_transformer_seg.PointTransformerSeg26

—

PointTransformer-Seg38

pimm.models.point_transformer.point_transformer_seg.PointTransformerSeg38

—

PointTransformer-Seg50

pimm.models.point_transformer.point_transformer_seg.PointTransformerSeg50

—

PoLAr-MAE

pimm.models.polarmae.polarmae.PoLArMAE

Self-contained PoLAr-MAE for pimm’s DefaultTrainer.

PoLArMAE-SemSeg

pimm.models.polarmae.polarmae_semseg.PoLArMAESemSeg

PoLAr-MAE semantic segmentation for pimm’s DefaultTrainer.

PT-v2m1

pimm.models.point_transformer_v2.point_transformer_v2m1_origin.PointTransformerV2

—

PT-v2m2

pimm.models.point_transformer_v2.point_transformer_v2m2_base.PointTransformerV2

—

PT-v2m3

pimm.models.point_transformer_v2.point_transformer_v2m3_pdnorm.PointTransformerV2

—

PT-v3m1

pimm.models.point_transformer_v3.point_transformer_v3m1_base.PointTransformerV3

—

PT-v3m2

pimm.models.point_transformer_v3.point_transformer_v3m2_sonata.PointTransformerV3

—

PT-v3m4

pimm.models.point_transformer_v3.point_transformer_v3m8.PointTransformerV3

Point Transformer V3 with 3D RoPE and bottleneck CPE.

PT-v3m8

pimm.models.point_transformer_v3.point_transformer_v3m8.PointTransformerV3

Point Transformer V3 with 3D RoPE and bottleneck CPE.

Sonata-v1m1

pimm.models.sonata.sonata_v1m1_base.Sonata

—

Sonata-v1m2

pimm.models.sonata.sonata_v1m2_uni_teacher_head.Sonata

—

SpUNet-v1m1

pimm.models.sparse_unet.spconv_unet_v1m1_base.SpUNetBase

—

SpUNet-v1m2

pimm.models.sparse_unet.spconv_unet_v1m2_bn_momentum.SpUNetBase

—

SpUNet-v1m3

pimm.models.sparse_unet.spconv_unet_v1m3_pdnorm.SpUNetBase

—

SpUNetNoSkipBase

pimm.models.sparse_unet.spconv_unet_v1m1_base.SpUNetNoSkipBase

—

Volt-v1m1

pimm.models.volt.volt_v1m1.VoltBackbone

Flat Volt encoder for Sonata pretraining.

Volt-v1m2

pimm.models.volt.volt_v1m2.VoltBackboneV2

Flat Volt encoder + transposed-conv decoder, returning per-input-point features.

Datasets#

Name

Class

Summary

ConcatDataset

pimm.datasets.defaults.ConcatDataset

Concatenate several configured datasets into a single index space.

DefaultDataset

pimm.datasets.defaults.DefaultDataset

Generic point-cloud dataset over preprocessed per-event .npy assets.

JAXTPCDataset

pimm.datasets.jaxtpc_dataset.JAXTPCDataset

Multimodal LArTPC simulation dataset over co-indexed JAXTPC HDF5 files.

LUCiDDataset

pimm.datasets.lucid_dataset.LUCiDDataset

Water Cherenkov detector dataset over co-indexed LUCiD HDF5 files.

PILArNetH5Dataset

pimm.datasets.pilarnet.h5.PILArNetH5Dataset

PILArNet-M LArTPC dataset read directly from clustered HDF5 shards.

PILArNetParquetDataset

pimm.datasets.pilarnet.parquet.PILArNetParquetDataset

Map-style PILArNet reader backed by parquet (Arrow-mmap).

PILArNetParquetIterableDataset

pimm.datasets.pilarnet.parquet.PILArNetParquetIterableDataset

Streaming PILArNet reader for large-scale pretraining.

Transforms#

Name

Class

Summary

CenterShift

pimm.datasets.transform.spatial.CenterShift

Center coord on the midpoint of its bounding box per axis.

ChromaticAutoContrast

pimm.datasets.transform.color.ChromaticAutoContrast

Randomly auto-contrast the per-point RGB color.

ChromaticJitter

pimm.datasets.transform.color.ChromaticJitter

Add independent per-point Gaussian noise to RGB channels.

ChromaticTranslation

pimm.datasets.transform.color.ChromaticTranslation

Randomly shift all RGB channels by a shared offset.

ClipGaussianJitter

pimm.datasets.transform.spatial.ClipGaussianJitter

Add isotropic clipped multivariate-Gaussian noise to coord.

Collect

pimm.datasets.transform.base.Collect

Final projection of a sample dict into the model-facing batch contract.

ComputeAnchors

pimm.datasets.transform.instance.ComputeAnchors

Compute geometric anchors once per event and attach them to the sample.

ConditionalRandomTransform

pimm.datasets.transform.spatial.ConditionalRandomTransform

Wall-aware random translation that keeps points inside fixed bounds.

ContrastiveViewsGenerator

pimm.datasets.transform.multiview.ContrastiveViewsGenerator

Generate two independently-augmented views for contrastive SSL.

Copy

pimm.datasets.transform.base.Copy

Duplicate keys in the sample dict under new names.

CropBoundary

pimm.datasets.transform.spatial.CropBoundary

Drop points whose segment label is 0 or 1.

ElasticDistortion

pimm.datasets.transform.spatial.ElasticDistortion

Apply smooth random elastic warping to coord.

EnergeticTranslation

pimm.datasets.transform.color.EnergeticTranslation

Randomly shift per-point energy by a shared scalar offset.

EnergyJitter

pimm.datasets.transform.color.EnergyJitter

Apply multiplicative per-point jitter to energy.

GridSample

pimm.datasets.transform.spatial.GridSample

Voxel-downsample a point cloud onto a hash grid.

HardExampleCrop

pimm.datasets.transform.spatial.HardExampleCrop

Spherical crop biased toward rare (“hard”) segment labels.

HueSaturationTranslation

pimm.datasets.transform.color.HueSaturationTranslation

Randomly translate hue and scale saturation of point colors.

InstanceParser

pimm.datasets.transform.instance.InstanceParser

Compact instance ids and derive per-instance bounding boxes and centroids.

LocalCovarianceFeatures

pimm.datasets.transform.instance.LocalCovarianceFeatures

Per-point local-neighborhood covariance eigen-features.

LogTransform

pimm.datasets.transform.color.LogTransform

Compress scalar features (e.g. energy) onto [-1, 1].

MixedScaleGeometryMultiViewGenerator

pimm.datasets.transform.multiview.MixedScaleGeometryMultiViewGenerator

Multi-view generator with coarse locals plus extra fine local crops.

MomentumTransform

pimm.datasets.transform.color.MomentumTransform

Log10-compress strictly-positive momentum values.

MultiplicativeRandomJitter

pimm.datasets.transform.spatial.MultiplicativeRandomJitter

Multiply one or more keys by clipped Gaussian noise around 1.

MultiViewGenerator

pimm.datasets.transform.multiview.MultiViewGenerator

Generate multiple global and local crops for DINO/iBOT-style SSL.

NormalizeColor

pimm.datasets.transform.color.NormalizeColor

Scale per-point colors from [0, 255] into [0, 1].

NormalizeCoord

pimm.datasets.transform.spatial.NormalizeCoord

Recenter and rescale coord into a normalized frame.

PDGToSemantic

pimm.datasets.transform.detector.PDGToSemantic

Fallback semantic labels derived from PDG codes.

PointClip

pimm.datasets.transform.spatial.PointClip

Clamp coord to an axis-aligned point-cloud range.

PositiveShift

pimm.datasets.transform.spatial.PositiveShift

Translate coord so its minimum corner sits at the origin.

RandomColorDrop

pimm.datasets.transform.color.RandomColorDrop

Randomly drop (zero out or attenuate) per-point color.

RandomColorGrayScale

pimm.datasets.transform.color.RandomColorGrayScale

Randomly convert per-point RGB color to grayscale.

RandomColorJitter

pimm.datasets.transform.color.RandomColorJitter

Randomly jitter brightness, contrast, saturation, and hue of point colors.

RandomDrop

pimm.datasets.transform.spatial.RandomDrop

Randomly overwrite a fraction of one key’s rows with a constant.

RandomDropout

pimm.datasets.transform.spatial.RandomDropout

Randomly drop a fraction of points from the sample.

RandomFlip

pimm.datasets.transform.spatial.RandomFlip

Randomly mirror the cloud across one or more axes.

RandomJitter

pimm.datasets.transform.spatial.RandomJitter

Add clipped Gaussian noise to one or more point-aligned keys.

RandomRotate

pimm.datasets.transform.spatial.RandomRotate

Rotate the cloud by a random angle about one axis.

RandomRotateTargetAngle

pimm.datasets.transform.spatial.RandomRotateTargetAngle

Rotate the cloud by a random angle drawn from a discrete set.

RandomScale

pimm.datasets.transform.spatial.RandomScale

Scale coord by a random factor.

RandomShift

pimm.datasets.transform.spatial.RandomShift

Translate coord by a uniform random per-axis offset.

RelativeLogNormalize

pimm.datasets.transform.color.RelativeLogNormalize

Per-event relative log normalization (e.g. for hit times).

SetRandomValue

pimm.datasets.transform.spatial.SetRandomValue

Overwrite one or more keys with clipped Gaussian noise.

ShufflePoint

pimm.datasets.transform.spatial.ShufflePoint

Randomly permute the point ordering of the sample.

SphereCrop

pimm.datasets.transform.spatial.SphereCrop

Crop to the nearest points around a center to cap the point count.

ToTensor

pimm.datasets.transform.base.ToTensor

Recursively convert numpy arrays and numeric leaves to torch tensors.

Update

pimm.datasets.transform.base.Update

Inject constant key-value pairs into the sample dict.

Losses#

Name

Class

Summary

BinaryFocalLoss

pimm.models.losses.misc.BinaryFocalLoss

Binary focal loss for class-imbalanced binary targets.

CrossEntropyHeadLoss

pimm.models.losses.misc.CrossEntropyHeadLoss

Cross-entropy for an extra categorical per-query head.

CrossEntropyLoss

pimm.models.losses.misc.CrossEntropyLoss

Standard multi-class cross-entropy over per-point class logits.

DiceLoss

pimm.models.losses.misc.DiceLoss

Soft multi-class Dice loss over per-point class probabilities.

FastInstanceSegmentationLoss

pimm.models.losses.instance_fast.FastInstanceSegmentationLoss

Mask2Former-style instance segmentation loss (cached, vectorized).

FastInstanceSegmentationRegressionLoss

pimm.models.losses.instance_regression_fast.FastInstanceSegmentationRegressionLoss

Instance segmentation loss plus configurable per-instance regressions.

FastUnifiedInstanceLoss

pimm.models.losses.instance_unified_fast.FastUnifiedInstanceLoss

Combine instance mask/class losses with configured query-head losses.

FocalLoss

pimm.models.losses.misc.FocalLoss

Multi-class focal loss over per-point class logits.

InstanceSegmentationLoss

pimm.models.losses.instance_fast.InstanceSegmentationLoss

DEPRECATED alias for :class:FastInstanceSegmentationLoss.

L1RegressionLoss

pimm.models.losses.misc.L1RegressionLoss

Mean-absolute-error (L1) regression loss for continuous targets.

LovaszLoss

pimm.models.losses.lovasz.LovaszLoss

Lovasz loss: a direct surrogate for the IoU (Jaccard) metric.

MSERegressionLoss

pimm.models.losses.misc.MSERegressionLoss

Mean-squared-error (L2) regression loss for continuous targets.

SmoothCELoss

pimm.models.losses.misc.SmoothCELoss

Label-smoothed cross-entropy with NaN-robust averaging.

SmoothL1RegressionLoss

pimm.models.losses.misc.SmoothL1RegressionLoss

Smooth-L1 (Huber) regression loss for continuous targets.

Hooks#

Name

Class

Summary

AttentionMaskAnnealingHook

pimm.engines.hooks.diagnostics.AttentionMaskAnnealingHook

Drive and log attention-mask annealing for the Panda detector decoder.

CheckpointLoader

pimm.engines.hooks.checkpoint.CheckpointLoader

Load model weights and, when requested, resume optimizer/train state.

CheckpointSaver

pimm.engines.hooks.checkpoint.CheckpointSaver

Save epoch/metric-oriented checkpoints during and after training.

CheckpointSaverIteration

pimm.engines.hooks.checkpoint.CheckpointSaverIteration

Save iteration-oriented checkpoints on a pure global-step cadence.

DtypeOverrider

pimm.engines.hooks.diagnostics.DtypeOverrider

Force matched layers to compute (and optionally store params) in a dtype.

FeatureStdMonitor

pimm.engines.hooks.diagnostics.FeatureStdMonitor

Monitor feature standard deviation to detect representation collapse.

FinalEvaluator

pimm.engines.hooks.eval.final_tester.FinalEvaluator

Run the configured tester once after training, usually on model_best.

GarbageHandler

pimm.engines.hooks.resources.GarbageHandler

Control Python garbage collection (and CUDA cache) on a step cadence.

GradientNormLogger

pimm.engines.hooks.diagnostics.GradientNormLogger

Log model gradient norms to the writer after each training step.

InformationWriter

pimm.engines.hooks.logging.InformationWriter

Assemble per-step console logs and write scalar train metrics.

InstanceSegmentationEvaluator

pimm.engines.hooks.eval.instance_segmentation.InstanceSegmentationEvaluator

Instance-level segmentation metrics including ARI and detection/class stats.

IterationTimer

pimm.engines.hooks.logging.IterationTimer

Measure data/batch latency and append timing and ETA to iteration logs.

LogitEntropyLogger

pimm.engines.hooks.diagnostics.LogitEntropyLogger

Log the entropy of teacher logits using Sonata’s temperature schedule.

MAEEvaluator

pimm.engines.hooks.eval.pretrain.mae.MAEEvaluator

Validation hook for masked-autoencoder (MAE) pretraining.

ModelHook

pimm.engines.hooks.default.ModelHook

Bridge that forwards lifecycle calls to a model implementing HookBase.

ParameterCounter

pimm.engines.hooks.diagnostics.ParameterCounter

Log a parameter-count breakdown of the model at the start of training.

PretrainEvaluator

pimm.engines.hooks.eval.pretrain.semantic_segmentation_pretrain.PretrainEvaluator

Evaluate frozen pretraining features with downstream linear probes.

PrototypeUsageLogger

pimm.engines.hooks.diagnostics.PrototypeUsageLogger

Monitor prototype utilization in Sonata-style clustering heads.

PushToHub

pimm.engines.hooks.export.PushToHub

Push model checkpoints to the Hugging Face Hub during and/or after training.

ResourceUtilizationLogger

pimm.engines.hooks.resources.ResourceUtilizationLogger

Log GPU and CPU/RAM utilization to the writer over the course of training.

RuntimeProfiler

pimm.engines.hooks.profiling.RuntimeProfiler

Run a short torch.profiler trace before normal training proceeds.

SemSegEvaluator

pimm.engines.hooks.eval.semantic_segmentation.SemSegEvaluator

Evaluate point-wise semantic segmentation on the validation loader.

SimulateCrash

pimm.engines.hooks.diagnostics.SimulateCrash

Hard-exit the process after a fixed number of steps to simulate a crash.

WandbNamer

pimm.engines.hooks.logging.WandbNamer

Auto-generate cfg.wandb_run_name from selected config values.

WeightDecayExclusion

pimm.engines.hooks.optimizer.WeightDecayExclusion

Rewrite optimizer param groups to exclude selected params from weight decay.

WeightDecayScheduler

pimm.engines.hooks.optimizer.WeightDecayScheduler

Apply a cosine schedule to optimizer parameter-group weight decay.

Trainers#

Name

Class

Summary

DefaultTrainer

pimm.engines.train.Trainer

Default single-dataset supervised/SSL trainer.

GRPOTrainer

pimm.engines.train.GRPOTrainer

Reinforcement-learning trainer implementing GRPO at the trainer level.

ImageClassTrainer

pimm.engines.train.ImageClassTrainer

Trainer for dense 2D image batches (e.g. rasterized ring images).

InsegTrainer

pimm.engines.train.InsegTrainer

Trainer for instance segmentation with instance-aware collation.

MultiDatasetTrainer

pimm.engines.train.MultiDatasetTrainer

Trainer that draws mixed batches from several datasets.

Testers#

Name

Class

Summary

InstanceSegTester

pimm.engines.test.InstanceSegTester

Panoptic/Instance segmentation tester following InstanceSegmentationEvaluator pattern.

SemSegTester

pimm.engines.test.SemSegTester

Semantic segmentation tester following SemSegEvaluator pattern.

Optimizers#

Name

Class

Summary

Adam

torch.optim.adam.Adam

Implements Adam algorithm.

AdamW

torch.optim.adamw.AdamW

Implements AdamW algorithm, where weight decay does not accumulate in the momentum nor variance.

SGD

torch.optim.sgd.SGD

Implements stochastic gradient descent (optionally with momentum).

Schedulers#

Name

Class

Summary

CosineAnnealingLR

pimm.utils.scheduler.CosineAnnealingLR

Cosine annealing scheduler using total training steps as T_max.

ExpLR

pimm.utils.scheduler.ExpLR

Exponential decay scheduler normalized by total training steps.

MultiStepLR

pimm.utils.scheduler.MultiStepLR

Multi-step scheduler that accepts milestone ratios of total steps.

MultiStepWithWarmupLR

pimm.utils.scheduler.MultiStepWithWarmupLR

Multi-step decay with linear warmup expressed as total-step ratios.

OneCycleLR

pimm.utils.scheduler.OneCycleLR

torch.optim.lr_scheduler.OneCycleLR, Block total_steps

PolyLR

pimm.utils.scheduler.PolyLR

Polynomial decay scheduler over a fixed number of steps.