Core building blocks#

The shared abstractions used across pimm: config-driven builders, Point, Config, Registry, and checkpoint/resume primitives.

Builders#

Construct registered objects from config dictionaries. See the per-registry pages (Models, Datasets, …) for what each registry contains.

build_model

Build models.

Builder registries#

MODELS: Registry#

Registry used by build_model() to resolve model.type strings.

LOSSES: Registry#

Registry used by build_criteria() to resolve each criteria[].type string.

Point structures & base modules#

Point

Point-cloud batch container used across pimm backbones.

PointModule

placeholder, all module subclass from this will take Point in PointSequential.

PointSequential

A sequential container.

PointModel

placeholder, PointModel can be customized as a pimm hook.

Configuration & registry#

Config

A facility for config and config files.

Registry

A registry to map strings to classes.

Checkpointing & resume#

The checkpoint manager and the resume-state schema. See Checkpoints and resume.

CheckpointManager

Own checkpoint format, save/load backends, and trainer resume semantics.

TrainState

Serializable resume point for trainer, sampler, dataloader, and RNG state.

Data loading & collation#

The transform composition and collation helpers that turn samples into packed point-cloud batches, the packed/padded conversion used by PoLAr-MAE, and the checkpointable sampler that lets the training loader resume mid-epoch. See Add a dataset and ../data/custom.

Compose

Build a transform pipeline from config dicts and run it in order.

collate_fn

Recursively collate tensors, mappings, and list-style point samples.

packed_to_batched

Convert pimm packed format to PoLAr-MAE padded/batched format.

StatefulRandomSampler

Rank-aware map-style sampler with checkpointable epoch and position.

Engine setup#

Derive per-rank loader settings, initialize reproducibility controls, and materialize the runtime config used by the trainer.

default_setup

Derive per-rank settings and seed this process.

Hook lifecycle#

The base lifecycle interface shared by every registered training hook. Concrete hook implementations are listed in Hooks registry.

HookBase

Base class for all training hooks registered with the trainer.

Distributed helpers#

Process-group setup and small collectives (pimm.utils.comm).

get_world_size

Return the initialized distributed world size, or 1.

get_rank

Return the initialized distributed rank, or 0.

is_main_process

Return whether this process is global rank zero.

synchronize

Helper function to synchronize (barrier) among all processes when using distributed training

all_gather

Run all_gather on arbitrary picklable data (not necessarily tensors).

reduce_dict

Reduce the values in the dictionary from all processes so that process with rank 0 has the reduced results.