I am creating a class for my model using nn.Module. It’s a simple model with only a set of linear filters as parameters. The parameters are `self.f`

, defined by `self.f = nn.Parameter(f_init)`

where `self.f`

has shape `(n_filters, n_dims)`

.

The issue is that I want to constrain the filters to have unit norm. So far I am doing this with the wonderful `geotorch`

package, using the call `geotorch.sphere(self, "f")`

. Then I don’t have to think of this constraint when doing back-propagation.

My question is whether there is a simple way of implementing this constraint without `geotorch`

, since it seems simple enough, and to avoid an extra required package that is not in pip. Naively, it occurs to me that I could just divide `self.f`

by its norm after every update step. It is not obvious to me though whether this would mess with my gradient and learning somehow, although I don’t see why they should.

So, does it sound right to impose the unit-length constrain by dividing the vectors after each update step?