TangencyInitialiser#

tangency_init#

hypercoil.init.semidefinite.tangency_init(init_data: Tensor, *, mean_specs: Sequence[Callable], std: float = 0.0, key: PRNGKey | None = None) Tensor[source]#

Initialise points of tangency for projection between the positive semidefinite cone and a tangent subspace.

Dimension:

init_data : \((N, *, D, D)\) or \((N, *, obs, C)\) N denotes the number of observations over which each mean is computed. If the axis attribute of the mean specifications are configured appropriately, N need not correspond to the first axis of the input dataset.

Parameters:
init_dataTensor

Input dataset over which each mean is to be estimated.

mean_specslist(_SemidefiniteMean objects)

List of specifications for estimating a measure of central tendency in the positive semidefinite cone. _SemidefiniteMean subclasses are found at hypercoil.init.semidefinite.

stdfloat

Standard deviation of the positive semidefinite noise added to each channel of the weight matrix. This can be used to ensure that different channels initialised from the same mean receive different gradients and differentiate from one another.

Returns:
Tensor

The initialised tensor.

TangencyInitialiser#

class hypercoil.init.semidefinite.TangencyInitialiser(init_data: Tensor, mean_specs: Sequence[Callable], std: float = 0.0, mapper: Type[MappedParameter] | None = None)[source]#

Initialise points of tangency for projection between the positive semidefinite cone and a tangent subspace.

See tangency_init() for argument details.

Methods

init(model, *[, mapper, std, where, key])

Initialise a parameter using the specified initialiser and mapper.