1 vin.modules.pooling

vin.modules.pooling

Pose-conditioned pooling modules for VIN scene fields.

This module owns candidate-query attention over shared voxel-grid tokens.

1.1 Classes

Name Description
PoseConditionedGlobalPool Attend over a coarse voxel field with candidate pose queries.

1.1.1 PoseConditionedGlobalPool

vin.modules.pooling.PoseConditionedGlobalPool(
    field_dim,
    pose_dim,
    pool_size,
    num_heads,
    pos_grid_encoder,
)

Attend over a coarse voxel field with candidate pose queries.

The module summarizes a projected voxel field into one descriptor per candidate pose. It down-samples the field into tokens, encodes each token’s normalized position grid, and uses candidate pose embeddings as attention queries over voxel content.

Positional embeddings are added only to keys. Values stay pure field-content projections, so attention weights depend on position while the returned descriptors remain content summaries conditioned by pose.

Each candidate query attends to the same voxel-token set independently; queries never attend to one another. Permuting the N_q pose rows thus permutes the N_q outputs. The normalized position encoder makes the block reference-frame-aware, but does not enforce SE(3) equivariance or a graph-isomorphism invariant.

1.1.1.1 Methods

Name Description
forward Return pose-conditioned global field descriptors.
1.1.1.1.1 forward
vin.modules.pooling.PoseConditionedGlobalPool.forward(
    field,
    pose_enc,
    *,
    pos_grid,
)

Return pose-conditioned global field descriptors.

1.1.1.1.1.1 Parameters
Name Type Description Default
field Tensor Tensor["B C D H W"] projected voxel field. required
pose_enc Tensor Tensor["B N_q E", float32] candidate pose embeddings. required
pos_grid Tensor Tensor["B 3 D H W"] normalized voxel positions. required
1.1.1.1.1.2 Returns
Name Type Description
Tensor Tensor["B N_q C", float32] global features for each candidate.
Back to top