Torch एक ओपन-सोर्स मशीन लर्निंग लाइब्रेरी, वैज्ञानिक कंप्यूटिंग फ्रेमवर्क, और Lua पर आधारित स्क्रिप्टिंग भाषा है। यह C में लागू किए गए डीप लर्निंग एल्गोरिदम के लिए LuaJIT इंटरफेस प्रदान करता है। इस लाइब्रेरी को Idiap Research Institute द्वारा बनाया गया था और बाद में 2017 में इसे Python में PyTorch के रूप में पोर्ट किया गया, जिसके बाद सक्रिय विकास Python संस्करण में स्थानांतरित हो गया। Torch न्यूरल नेटवर्क बनाने और प्रशिक्षित करने के लिए उपकरणों का एक लचीला सेट प्रदान करता है, जिसमें टेंसर, न्यूरल नेटवर्क मॉड्यूल, और ऑप्टिमाइज़ेशन उपयोगिताएँ शामिल हैं। इसका डिज़ाइन बाद के डीप लर्निंग फ्रेमवर्क को प्रभावित करता है और डीप लर्निंग और मशीन लर्निंग के व्यापक क्षेत्र में योगदान देता है, जो आर्टिफिशियल इंटेलिजेंस अनुसंधान पारिस्थितिकी तंत्र का हिस्सा है।
कोर पैकेज: torch
Torch का कोर पैकेज, जिसका नाम torch है, एक लचीला N-आयामी ऐरे प्रदान करता है जिसे Tensor कहा जाता है, जो इंडेक्सिंग, स्लाइसिंग, ट्रांसपोज़िंग, टाइप-कास्टिंग, रीसाइज़िंग, स्टोरेज साझा करने, और क्लोनिंग का समर्थन करता है। टेंसर फ्रेमवर्क में अधिकांश अन्य पैकेजों द्वारा उपयोग की जाने वाली मौलिक डेटा संरचना हैं। वे गणितीय संचालन जैसे कि max, min, और sum, सांख्यिकीय वितरण जैसे कि uniform, normal, और multinomial, और बुनियादी रैखिक बीजगणित संचालन (BLAS) जैसे कि डॉट उत्पाद, मैट्रिक्स-वेक्टर गुणन, मैट्रिक्स-मैट्रिक्स गुणन, और मैट्रिक्स उत्पाद का समर्थन करते हैं। पैकेज सुविधा फ़ंक्शनों के माध्यम से ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और सीरियलाइज़ेशन को भी सरल बनाता है। torch.class फ़ंक्शन ऑब्जेक्ट फैक्ट्रीज़ (क्लासेस) के निर्माण को सक्षम बनाता है, और इस तंत्र के माध्यम से बनाई गई वस्तुओं को सीरियलाइज़ किया जा सकता है जब उनमें Lua कोरूटीन या यूज़रडेटा जैसे असमर्थित संदर्भ न हों (जब तक कि यूज़रडेटा को read और write विधियों वाली तालिकाओं में लपेटा न गया हो)।
न्यूरल नेटवर्क पैकेज (nn)
nn पैकेज न्यूरल नेटवर्क बनाने के लिए डिज़ाइन किया गया है। यह मॉड्यूलर ऑब्जेक्ट्स से बना है जो एक Module इंटरफेस साझा करते हैं, जिसमें फीडफॉरवर्ड और बैकप्रोपेगेशन के लिए forward() और backward() विधियाँ होती हैं। मॉड्यूल को Sequential, Parallel, और Concat जैसी समग्र संरचनाओं का उपयोग करके जोड़ा जा सकता है, जबकि Linear, Tanh, और Max जैसे सरल मॉड्यूल बुनियादी निर्माण खंड बनाते हैं। यह मॉड्यूलर इंटरफेस प्रथम-क्रम स्वचालित विभेदन प्रदान करता है। लॉस फ़ंक्शन Criterion के उपवर्गों के रूप में लागू किए जाते हैं, जिनका समान इंटरफेस होता है और वे लॉस और ग्रेडिएंट की गणना करते हैं। सामान्य मानदंडों में MSECriterion (माध्य वर्ग त्रुटि) और ClassNLLCriterion (क्रॉस-एन्ट्रॉपी) शामिल हैं। पैकेज में स्टोकेस्टिक ग्रेडिएंट डिसेंट का उपयोग करके प्रशिक्षण के लिए एक StochasticGradient क्लास भी शामिल है, हालांकि optim पैकेज अधिक विकल्प प्रदान करता है, जैसे कि मोमेंटम और वेट डेके रेगुलराइज़ेशन।
अतिरिक्त पैकेज
आधिकारिक कोर (torch और nn) के अलावा, कई अतिरिक्त पैकेज Torch की कार्यक्षमता का विस्तार करते हैं। ये पैकेज समानांतर गणना, अतुल्यकालिक इनपुट/आउटपुट, छवि प्रसंस्करण, और अन्य विशेष कार्यों के लिए उपयोगिताएँ प्रदान करते हैं। इन्हें आमतौर पर Lua पैकेज मैनेजर LuaRocks के माध्यम से स्थापित किया जाता है, जो मानक Torch वितरण के साथ शामिल है। समुदाय ने विभिन्न अनुप्रयोग डोमेन के अनुकूल होने के लिए Torch को सक्षम बनाते हुए विस्तारों की एक विस्तृत श्रृंखला विकसित की।
अनुप्रयोग
Torch का उपयोग कई प्रमुख अनुसंधान और उद्योग समूहों द्वारा किया गया था, जिनमें Facebook AI Research Group, IBM, Yandex, और Idiap Research Institute शामिल हैं। इसे Android और iOS जैसे मोबाइल प्लेटफार्मों पर उपयोग के लिए विस्तारित किया गया है, और न्यूरल नेटवर्क में पाए जाने वाले डेटा फ्लो के लिए हार्डवेयर कार्यान्वयन बनाने के लिए उपयोग किया गया है। Facebook ने लाइब्रेरी की उत्पादन और अनुसंधान सेटिंग्स में लचीलेपन को प्रदर्शित करते हुए, विस्तार मॉड्यूल का एक सेट भी ओपन-सोर्स सॉफ्टवेयर के रूप में जारी किया।
विरासत और PyTorch में संक्रमण
विकास 2017 में PyTorch में स्थानांतरित हो गया, जो मूल लाइब्रेरी का Python में पोर्ट है। PyTorch टेंसर और डायनामिक कंप्यूटेशन ग्राफ की मूल अवधारणाओं को बनाए रखता है, लेकिन व्यापक अपनाने के लिए Python के पारिस्थितिकी तंत्र का लाभ उठाता है। इस कदम ने PyTorch को डीप लर्निंग अनुसंधान और उद्योग में सबसे व्यापक रूप से उपयोग किए जाने वाले फ्रेमवर्क में से एक बना दिया, जिसका बाद के उपकरणों जैसे लार्ज लैंग्वेज मॉडल और ट्रांसफॉर्मर आर्किटेक्चर पर महत्वपूर्ण प्रभाव पड़ा। आज, Torch कम सक्रिय रूप से विकसित है, लेकिन यह PyTorch के अग्रदूत और आधुनिक डीप लर्निंग फ्रेमवर्क के विकास में योगदानकर्ता के रूप में ऐतिहासिक रूप से महत्वपूर्ण बना हुआ है।