(tutaj początkujący pyton)W Pytorch, jak dodać regulator L1 do aktywacji?
Chciałbym dodać regulator L1 do wyjścia aktywacji z ReLU. Bardziej ogólnie, w jaki sposób można dodać regularyzator tylko do określonej warstwy w sieci?
Ten post może być związane z: Adding L1/L2 regularization in PyTorch? Jednak ani nie jest powiązany, albo ja nie rozumiem odpowiedź:
odnosić do regularizer L2 stosowanej w optymalizacji, która jest inna sprawa. Innymi słowy, jeżeli pożądana całkowita strata jest
crossentropy + lambda1*L1(layer1) + lambda2*L1(layer2) + ...
wierzę parametr dostarczany do torch.optim.Adagrad jest stosowany tylko do poprzecznego entropii strat. A może dotyczy wszystkich parametrów (ciężarów) w sieci. Ale w każdym razie nie wydaje się pozwalać na zastosowanie regulatora do pojedynczej warstwy aktywacji, i nie zapewnia utraty L1.
Innym istotnym tematem jest nn.modules.loss, który obejmuje L1Loss(). Z dokumentacji nie rozumiem jeszcze, jak z tego korzystać.
Wreszcie, nie jest to moduł https://github.com/pytorch/pytorch/blob/master/torch/legacy/nn/L1Penalty.py co wydaje się najbliżej bramki, ale to się nazywa „Legacy”. Dlaczego?
rozwiązania stosunkowo wysokim poziomie, można spojrzeć na [LINK] (https://github.com/ncullen93/torchsample). Daje to interfejs podobny do kerasów do robienia wielu rzeczy z łatwością w pytorch, a konkretnie do dodawania różnych regularyzatorów. –