(यहां पिटोरच शुरुआती)पायटोरच में, सक्रियताओं के लिए एल 1 नियमितकर्ता को कैसे जोड़ना है?
मैं एक आरएलयू से सक्रियण आउटपुट में एल 1 नियमितकर्ता जोड़ना चाहता हूं। अधिक आम तौर पर, नेटवर्क में किसी विशेष परत के लिए केवल एक नियमितकर्ता कैसे जोड़ता है?
इस पोस्ट से संबंधित हो सकता है: Adding L1/L2 regularization in PyTorch? हालांकि या तो इसे संबंधित नहीं है, वरना मैं इस सवाल का जवाब समझ में नहीं आता:
यह एक एल 2 regularizer अनुकूलन, जो एक अलग बात है में लागू को देखें। दूसरे शब्दों में, अगर समग्र वांछित नुकसान
crossentropy + lambda1*L1(layer1) + lambda2*L1(layer2) + ...
मेरा मानना है कि पैरामीटर torch.optim.Adagrad को आपूर्ति केवल क्रोस एंट्रोपी नुकसान के लिए लागू किया जाता है। या शायद यह नेटवर्क पर सभी पैरामीटर (भार) पर लागू होता है। लेकिन किसी भी मामले में यह सक्रियण की एक परत, पर एक नियमितकर्ता को लागू करने की अनुमति नहीं देता है और एल 1 हानि प्रदान नहीं करता है।
एक और प्रासंगिक विषय nn.modules.loss है, जिसमें L1Loss() शामिल है। प्रलेखन से, मुझे अभी तक यह समझ नहीं आया कि इसका उपयोग कैसे किया जाए।
आखिरकार, यह मॉड्यूल https://github.com/pytorch/pytorch/blob/master/torch/legacy/nn/L1Penalty.py है जो लक्ष्य के सबसे नज़दीक लगता है, लेकिन इसे "विरासत" कहा जाता है। ऐसा क्यों है?
एक अपेक्षाकृत उच्च स्तर के समाधान के लिए है, तो आप [कड़ी] देख सकते हैं (https://github.com/ncullen93/torchsample)। यह आपको pytorch में आसानी से कई चीजें करने के लिए एक कैरस-जैसे इंटरफ़ेस देता है, और विशेष रूप से विभिन्न नियमितकर्ताओं को जोड़ता है। –