Compression Schemes

Composition

class condensa.schemes.Compose(schemes)

Composes two or more schemes together.

__init__(schemes)

Creates a Compose instance.

Parameters

schemes (list) – List of schemes to compose.

delta(module)

Applies de-compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

pi(module)

Applies compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

Unstructured Pruning

class condensa.schemes.Prune(density)

Prunes network to given density.

__init__(density)

Creates a Prune instance.

Parameters

density (float) – Target density.

delta(module)

Applies de-compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

pi(module)

Applies compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

threshold(module)

Computes magnitude threshold.

Parameters

module (torch.nn.Module) – PyTorch module.

Quantization

class condensa.schemes.Quantize(dtype=<condensa.dtypes.DType object>)

Quantizes network to given data-type.

__init__(dtype=<condensa.dtypes.DType object>)

Creates Quantize class instance.

Parameters

dtype – Target data type (default: float16).

delta(module)

Applies de-compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

pi(module)

Applies compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

Neuron Pruning

class condensa.schemes.NeuronPrune(density, align=None, criteria=<function l2norm>, prune_bias=True)

Prunes neurons from fully-connected layers.

__init__(density, align=None, criteria=<function l2norm>, prune_bias=True)

Creates an instance of NeuronPrune.

Parameters
  • density (float) – Target density.

  • align (int) – Tensor alignment in compressed model.

  • criteria (condensa.functional) – Neuron aggregation criteria (default: l2norm).

  • prune_bias (bool) – Whether to prune corresponding biases (default: True).

delta(module)

Applies de-compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

pi(module)

Applies compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

threshold(module)

Computes magnitude threshold.

Parameters

module (torch.nn.Module) – PyTorch module.

Filter Pruning

class condensa.schemes.FilterPrune(density, align=None, criteria=<function l2norm>, prune_bias=True)

Prunes filters from convolutional layers.

__init__(density, align=None, criteria=<function l2norm>, prune_bias=True)

Creates an instance of FilterPrune.

Parameters
  • density (float) – Target density.

  • align (int) – Tensor alignment in compressed model.

  • criteria (condensa.functional) – Filter aggregation criteria (default: l2norm).

  • prune_bias (bool) – Whether to prune corresponding biases (default: True).

delta(module)

Applies de-compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

pi(module)

Applies compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

threshold(module)

Computes magnitude threshold.

Parameters

module (torch.nn.Module) – PyTorch module.

Structured Pruning

class condensa.schemes.StructurePrune(density, align=None, criteria=<function l2norm>, prune_bias=True)

Combines neuron and filter pruning using a single threshold value.

__init__(density, align=None, criteria=<function l2norm>, prune_bias=True)

Creates an instance of StructurePrune.

Parameters
  • density (float) – Target density.

  • align (int) – Tensor alignment in compressed model.

  • criteria (condensa.functional) – Structure aggregation criteria (default: l2norm).

  • prune_bias (bool) – Whether to prune corresponding biases (default: True).

delta(module)

Applies de-compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

pi(module)

Applies compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

threshold(module)

Computes magnitude threshold.

Parameters

module (torch.nn.Module) – PyTorch module.

Block Pruning

class condensa.schemes.BlockPrune(density, block_size, criteria=<function l2norm>)

Prunes blocks in Linear layers.

__init__(density, block_size, criteria=<function l2norm>)

Creates an instance of BlockPrune.

Parameters
  • density (float) – Target density.

  • block_size (Tuple) – Target block size.

  • criteria (condensa.functional) – Structure aggregation criteria (default: l2norm).

delta(module)

Applies de-compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

pi(module)

Applies compression scheme to module.

Parameters

module (torch.nn.Module) – PyTorch module.

threshold(module)

Computes magnitude threshold.

Parameters

module (torch.nn.Module) – PyTorch module.