pytorch where is Embedding "max_norm" implemented?
The "embedding" class documentation https://pytorch.org/docs/stable/nn.html says 

max_norm (float, optional) – If given, will renormalize the embedding vectors to have a norm lesser than this before extracting.

1) In my model, I use this embedding class as a parameter, not just as an input (the model learns the embedding.) In this case, I assume every time when updates happen, the embedding gets renormalized, not only when it's initialized. Is my understanding correct?

2) I wanted to confirm 1) by looking at the source, but I couldn't find the implementation in pytorch embedding class. https://pytorch.org/docs/stable/_modules/torch/nn/modules/sparse.html 
Can someone point me to the max_norm implementation?

If you see forward function in Embedding class here, there is a reference to torch.nn.functional.embedding which uses embedding_renorm_ which is in the cpp documentation here which means it is a cpp implementation. Some github search on pytorch repo pointed to this files (1, 2).

Answer to 1 is yes. Answer to 2 is above. 
