Allow user to control extent of weight sharing for spherical targets #458
Labels
Discussion
Issues to be discussed by the contributors
Infrastructure: Miscellaneous
General infrastructure issues
SOAP BPNN
SOAP BPNN experimental architecture
When learning multiple angular channels of a target decomposed on a spherical basis, often it is useful to train independent models for each
o3_lambda
with little to no weight sharing. It would be useful to be able to control how models per block are initialised.As far as I understand, currently different
L
channels in a spherical target share the same weights until the head, where theTensorBasis
builds the specific equivariant of orderL
with a transformation that contains (relative to the rest of the architecture) minimal weights.This is also connected to learning on a basis that depends on atomic types (i.e. for the electron density), where each combination of
o3_lambda
andcenter_type
(and in generalo3_sigma
) can be learned with different models, and is therefore linked to issue #444 .For example, we could include an option along the lines of
"weight_share_by"
(or alternatively a negation like"separate_weights_for"
) that takes a list of key dimensions. Passing a targetTensorMap
with keys["o3_lambda", "o3_sigma", "center_type"]
with option"weight_share_by": []
would mean that separate SOAP-BPNN models are initialised for each block.The text was updated successfully, but these errors were encountered: