# tfl.lattice_lib.laplacian_regularizer

Stay organized with collections Save and categorize content based on your preferences.

Returns Laplacian regularization loss for `Lattice` layer.

Laplacian regularizer penalizes the difference between adjacent vertices in multi-cell lattice (see publication).

Consider a 3 x 2 lattice with weights `w`:

``````w[3]-----w[4]-----w[5]
|        |        |
|        |        |
w[0]-----w[1]-----w[2]
``````

where the number at each node represents the weight index. In this case, the laplacian regularizer is defined as:

``````l1[0] * (|w[1] - w[0]| + |w[2] - w[1]| +
|w[4] - w[3]| + |w[5] - w[4]|) +
l1[1] * (|w[3] - w[0]| + |w[4] - w[1]| + |w[5] - w[2]|) +

l2[0] * ((w[1] - w[0])^2 + (w[2] - w[1])^2 +
(w[4] - w[3])^2 + (w[5] - w[4])^2) +
l2[1] * ((w[3] - w[0])^2 + (w[4] - w[1])^2 + (w[5] - w[2])^2)
``````

`weights` `Lattice` weights tensor of shape: `(prod(lattice_sizes), units)`.
`lattice_sizes` List or tuple of integers which represents lattice sizes.
`l1` l1 regularization amount. Either single float or list or tuple of floats to specify different regularization amount per dimension.
`l2` l2 regularization amount. Either single float or list or tuple of floats to specify different regularization amount per dimension.

Laplacian regularization loss.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]