एक उदाहरण के रूप में नीचे दिए गए नकली कोड को लें:

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) पिछड़ी प्रक्रिया में अच्छा प्रदर्शन करता है।

0
inkzk 11 पद 2018, 12:51

1 उत्तर

सबसे बढ़िया उत्तर

TL;DR
नहीं।

PyTorch के लिए "अच्छा प्रदर्शन" करने के लिए उसे नेट के माध्यम से ग्रेडिएंट का प्रचार करने की आवश्यकता है। PyTorch नहीं जानता (और नहीं कर सकता) कि कैसे एक आर्बिट्रेरी numpy कोड को अलग करना है, यह केवल PyTorch टेंसर ऑपरेशंस के माध्यम से ग्रेडिएंट का प्रचार कर सकता है।
आपके उदाहरणों में ग्रेडिएंट सुन्न sum पर रुकेंगे, इसलिए केवल सबसे ऊपरी मशाल परतों को प्रशिक्षित किया जाएगा (सुन्न ऑपरेशन और criterion के बीच की परतें), अन्य परतें (इनपुट और सुन्न ऑपरेशन के बीच) शून्य प्रवणता होगी और इसलिए उनके पैरामीटर पूरे प्रशिक्षण के दौरान स्थिर रहेंगे।

0
Shai 11 पद 2018, 10:10