# tfl.lattice_lib.laplacian_regularizer

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":"必要な情報がない" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"複雑すぎる / 手順が多すぎる" },{ "type": "thumb-down", "id": "outOfDate", "label":"最新ではない" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"その他" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"わかりやすい" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"問題の解決に役立った" },{ "type": "thumb-up", "id": "otherUp", "label":"その他" }]