পাইটর্চ

পাইটর্চ (ইংরেজি: Pytorch) হলো একটি ওপেন-সোর্স মেশিন লার্নিং লাইব্রেরি যা ব্যবহার করা হয় কম্পিউটার দর্শন, ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং, ও ওরকম অনেক আর্টিফিশিয়াল ইন্টেলিজেন্স মতো কাজে।  এই সফটওয়্যারকে ডেভেলপ করা হয়েছিল অধিকাংশ ক্ষেত্রে ফেইসবুকের এ.ই. রিসার্চ ল্যাবে (FAIR)। ফ্র্যাম্বরকেটার প্রাথমিক প্রকাশ হয়েছিল সেপ্টেম্বর ২০১৬তে। পাইটর্চে প্রোগ্রামের ব্যবহার বেশিরভাগ পাইথন ভাষাতে করা হয়, তবে  সি++ ভাষাতেও এটা করা যায়। জিনিসটি বেশিরভাগ ক্ষেত্রে ডিপ লার্নিংএর জন্য ব্যবহৃত হয়, তবে এমনি স্ট্যাটিসটিকাল মেশিন লেয়ার্নিংএর জন্য ও ব্যবহার করা যাই। বেশ কয়েকটা ডিপ লার্নিং ব্যবহৃত সফটওয়্যার এই লাইব্রেরিটার ব্যবহার করে যেমন টেসলার অটোপাইলট, উবেরের পাইরো, হাগিংফেসের ট্রান্সফর্মেরস, পাইটর্চের লাইটনিং, ও ক্যাটালিস্ট। পাইটর্চ টেনসোর কম্পিউটিং করতে দেয়, (যেমন নাম্পাই বা ওরকম কোনো লাইব্রেরি) তবে এর বিশেষত্ব হলো যে টেনশারফলও-এর মতন এটি গ্রাফিকাল প্রসেসিং ইউনিটএর (জি পি ইউ) দ্বারা সাধারণের চেয়ে বেশ অনেক বেশি তারাতারি জিনিস করতে দেয়। এর সাথে, পাইটর্চ ডিপ লার্নিংয়ের জন্য আরেকটা বৈশিষ্ট্য উপলব্ধ করে। ওটা হলো একটা "অটোমেটিক ডিফারেন্সিয়েশন (পৃথকীকরণ)" সিস্টেম। পাইতোরচের প্রথম "আলফা রিলিজ" ২০১৬-এর সেপ্টেম্বর মাসের প্রথম দিনে বার করা হয়। এই সময়ে এখনো এটা একটা পোর্ট ছিল মাত্র - লুয়া ভাষার "টৰ্চ" থেকে। ডিসেম্বর ২০১৮এ পাইটর্চের ১.০ ভার্সন টা রিলিজ হয়, এর আগে ছিল ভার্সন ০.৪ অবদি। ফেসবুক পাইটর্চ ও কাফ্ফে২ (কনভোলুশনাল আর্কিটেকচার  ফর ফাস্ট ফীচার এম্বেডিং) দুটোই চালায়, কিন্তু দুটোর মধ্যে একের ওপারের "ল্যাঙ্গুয়েজে" ব্যবহার করতে পারতো না। ২০১৭ সেপ্টেম্বরএ ওপেন নিউরাল নেটওয়ার্ক এক্সচেঞ্জ প্রজেক্ট শুরু হলো ফেসবুক ও মাইক্রোসফটের সাথে যাতে একের মডেল আরেক ব্যবহৃত হয়। মার্চ ২০১৮ এ কাফ্ফে২ ও পাইটর্চ এক হয়ে যায়। পাইটর্চ একটা পরিবর্তিত বি এস দি লাইসেন্স ব্যবহার করে। তার মোতে কোনো এক অংশদাতা তার নিজের অবদানদের ওপর কপিরাইট রাখে। পাইটর্চর প্রাথমিক ডাটা স্ট্রাকচার হলো "টেনসার" : যা নির্ধারণ করা হয় torch.tensor বলে। এতে বহুমাত্রিক শঙ্খের অ্যারে রাখা যায়, নাম্পাইয়ের অর্র্যায়ের মতন কিন্তু এনভিডিয়ার কুডা (CUDA) জিপিইউ (GPU) তে রাখা যায়, দ্রুত কাজকর্মের জন্য। বিভিন্ন ধরনের টেনসারকে পাইটর্চ রাখতে পারে। পাইটর্চ অটোমেটিক ডিফারেন্সিয়েশন ব্যবহার করে। অটোগ্রাড এটাকে সহজ করে দেয়: একটা রেকর্ডার দেখে কি কি অপারেশন করা হচ্ছে, ও তারপর পেছন করে গিয়ে গ্রেডিয়েন্ট (নতিমাত্রা) গণনা করে। এটা দিয়ে বিশেষ করে নিউরাল নেটওয়ার্ক বানানো একেক সহজ হয়ে যায়। torch.optim হলো একটি মডিউল যা অনেক "অপ্টিমাইজেশান এলগোরিদম" পরিণত করে, যা সাধারণত নিউরাল নেটওয়ার্ক বানানোর জন্য দরকার পরে। এমন কি নিজের বানাতে হয় না যথেরতো সময়ে, কারণ যা ব্যবহৃত হবে মটমটি পাওয়াই যায় পাইটর্চে। যদিও পাইটর্চ অটোগ্রাড অনেক কাজ করে দেয় কম্পিউটেশনাল গ্রাফ বানাতে, তবুও কঠিন নিউরাল নেটওয়ার্কের জন্য অনেকেই দেখে যে শুধু ওটা বেশ কঠিন। তাই এর জন্য nn মডিউল টা দেওয়া হয় এই সব কাজের জন্য। Chintala, Soumith (১ সেপ্টেম্বর ২০১৬)। "PyTorch Alpha-1 release"।  Ketkar, Nikhil (২০১৭)। Ketkar, Nikhil, সম্পাদক। Deep Learning with Python: A Hands-on Introduction (ইংরেজি ভাষায়)। Berkeley, CA: Apress। পৃষ্ঠা 195–208। আইএসবিএন 978-1-4842-2766-4। ডিওআই:10.1007/978-1-4842-2766-4_12।  Lorica, Ben (২০১৭-০৮-০৩)। "Why AI and machine learning researchers are beginning to embrace PyTorch"। O’Reilly Media (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "Using Facial Landmarks for Overlaying Faces with Masks" (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "PyTorch for Deep Learning and Computer Vision [Video]"। www.oreilly.com (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "Natural Language Processing (NLP) with PyTorch — NLP with PyTorch documentation"। dl4nlp.info। ২০২০-০৮-১১ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "Tech giants are using open source frameworks to dominate the AI community"। VentureBeat (ইংরেজি ভাষায়)। ২০১৭-১১-২৯। সংগ্রহের তারিখ ২০২০-০৮-১৯।  Patel, Mo (২০১৭-১২-০৭)। "When two trends fuse: PyTorch and recommender systems"। O’Reilly Media (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "Release alpha-1 release · pytorch/pytorch"। GitHub (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "PyTorch at Tesla - Andrej Karpathy, Tesla - YouTube"। www.youtube.com। সংগ্রহের তারিখ ২০২০-০৮-১৯।  Goodman, Noah (২০১৭-১১-০৩)। "Uber AI Labs Open Sources Pyro, a Deep Probabilistic Programming Language"। Uber Engineering Blog (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "PyTorch"। www.pytorch.org (ইংরেজি ভাষায়)। ২০২০-০১-২০ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "PyTorchLightning/pytorch-lightning"। ২০২০-০৮-১৯।  "catalyst-team/catalyst"। ২০২০-০৮-১৮।  "Roadmap for torch and pytorch"। PyTorch Forums (ইংরেজি ভাষায়)। ২০১৭-০১-১৮। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "Release JIT Compiler, Faster Distributed, C++ Frontend · pytorch/pytorch"। GitHub (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০২০-০৮-১৯।  "pytorch/pytorch"। GitHub (ইংরেজি ভাষায়)। সংগ্রহের তারিখ ২০২০-০৮-১৯।  Lerer, Adam (২০১৭-১০-২৮)। "Automatic differentiation in PyTorch"।