एक उदाहरण के रूप में नीचे दिए गए नकली कोड को लें:
class():
def forward(input):
x = some_torch_layers(input)
x = some_torch_layers(x)
...
x = sum(x) # or numpy or other operations
x = some_torch_layers(x)
return x
क्या पाइटोरच नेट अच्छा काम करेगा? विशेष रूप से, जबकि sum(x)
पिछड़ी प्रक्रिया में अच्छा प्रदर्शन करता है।
1 उत्तर
TL;DR
नहीं।
PyTorch के लिए "अच्छा प्रदर्शन" करने के लिए उसे नेट के माध्यम से ग्रेडिएंट का प्रचार करने की आवश्यकता है। PyTorch नहीं जानता (और नहीं कर सकता) कि कैसे एक आर्बिट्रेरी numpy कोड को अलग करना है, यह केवल PyTorch टेंसर ऑपरेशंस के माध्यम से ग्रेडिएंट का प्रचार कर सकता है।
आपके उदाहरणों में ग्रेडिएंट सुन्न sum
पर रुकेंगे, इसलिए केवल सबसे ऊपरी मशाल परतों को प्रशिक्षित किया जाएगा (सुन्न ऑपरेशन और criterion
के बीच की परतें), अन्य परतें (इनपुट और सुन्न ऑपरेशन के बीच) शून्य प्रवणता होगी और इसलिए उनके पैरामीटर पूरे प्रशिक्षण के दौरान स्थिर रहेंगे।
संबंधित सवाल
नए सवाल
machine-learning
मशीन लर्निंग एल्गोरिदम के बारे में कार्यान्वयन प्रश्न। मशीन लर्निंग के बारे में सामान्य प्रश्न उनके विशिष्ट समुदायों को पोस्ट किए जाने चाहिए।