เหตุผลในการเลือก PyTorch สำหรับการเรียนรู้เชิงลึก
การเรียนรู้เชิงลึกและการเรียนรู้ของเครื่องเป็นคำที่โด่งดังที่สุดในหมู่ทุกคนในช่วงสองสามปีที่ผ่านมาและมีคำอธิบายที่สมบูรณ์แบบสำหรับเรื่องนี้
แมชชีนเลิร์นนิงช่วยให้ระบบสามารถเรียนรู้จากประสบการณ์ได้ในขณะที่ Deep Learning นำ Machine Learning ไปสู่ระดับที่ยิ่งใหญ่ด้วยการใช้ชุดข้อมูลที่กว้างขวาง เพิ่มใน ML และ DL นี้ก่อให้เกิดการเขียนโปรแกรมภาษาต่างๆ sและห้องสมุดที่ขึ้นมาและเปิดใช้งานโปรแกรมเมอร์ , นักวิจัยและนักวิทยาศาสตร์ข้อมูลเพื่อให้เกิดการคิดไม่ถึง บางส่วนของ contenders ที่แข็งแกร่งที่ดีที่สุดสำหรับห้องสมุดลึกเอนมีTensorFlowและPyTorch ในตอนนี้เราจะมุ่งเน้นไปที่PyTorch มากขึ้น
PyTorch
Facebook ปล่อยออก PyTorchสำหรับฉากการเขียนโปรแกรมใน 2016ซึ่งจะขึ้นอยู่กับห้องสมุดไฟฉาย Lua ของ
PyTorch เป็นห้องสมุดฟรีและเปิดแหล่งเรียนรู้ของเครื่องและเป็นปัจจุบันอยู่ที่ v1.4 PyTorch ออกมาเกือบสามปีแล้วและได้ผ่านการปรับปรุงมากมายเพื่อให้อยู่ในตำแหน่งที่ดีขึ้น PyTorch ถูกสร้างขึ้นเพื่อให้รู้สึกรวดเร็วและ Pythonic มากกว่าการแข่งขันอื่น ๆ นอกจากนี้ยังมีการสนับสนุนสำหรับ C, C ++ และ Tensor คอมพิวเตอร์
Google Trends - ความสนใจของ PyTorch ในช่วงเวลาหนึ่ง
เหตุผลในการเลือก PyTorch สำหรับการเรียนรู้เชิงลึก
ก่อนที่จะไปถึงสาเหตุที่ไม่ควรลอง PyTorch ด้านล่างนี้เป็นโครงการและห้องสมุด Deep Learning ที่ไม่เหมือนใครและน่าตื่นเต้น PyTorch ได้ช่วยให้กำเนิด:
● CheXNet:การตรวจหาปอดบวมระดับรังสีแพทย์ด้วยการเอกซเรย์ทรวงอกด้วยการเรียนรู้เชิงลึก
● Horizon:แพลตฟอร์มสำหรับการเรียนรู้แบบเสริมแรงประยุกต์ (Applied RL)
● PYRO : Pyro เป็นภาษาโปรแกรมความน่าจะเป็นสากล (PPL) ที่เขียนด้วย Python และสนับสนุนโดย PyTorch ในแบ็กเอนด์
● KaolinโดยNVIDIAเป็นไลบรารี PyTorch สำหรับเร่ง 3D Deep Learning
● TorchCVสำหรับการนำวิสัยทัศน์ของคอมพิวเตอร์ไปใช้กับโครงการของคุณ
● PyDLTเป็นชุดเครื่องมือสำหรับการเรียนรู้เชิงลึก
● ไลบรารีfastaiเพิ่มประสิทธิภาพกระบวนการฝึกอบรมเครือข่ายประสาทของคุณ
● และอื่น ๆ อีกมากมาย
นี่คือกรอบงานและโครงการบางส่วนที่สร้างขึ้นจาก TensorFlow และ PyTorch คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ที่ Github และเว็บไซต์ทางการของ TF และ PyTorch
ในโลกของ TensorFlow , PyTorchมีความสามารถในการถือครองในตัวเองมีจุดที่แข็งแกร่ง ด้านล่างนี้เป็นไฮไลต์บางส่วนที่อธิบายว่าเหตุใด PyTorch จึงเหมาะสมกับโครงการ Deep Learningของคุณ:
1. PyTorch เป็น Pythonic มากกว่า
PyTorch เป็นเฟรมเวิร์กที่ช่วยให้เราเขียนโค้ดด้วยวิธีpythonic มากขึ้น ยิ่งไปกว่านั้นความมีชีวิตชีวาที่รองรับการใช้รหัสหลามไร้เดียงสานั้นน่าทึ่งมาก
PyTorch มีแนวโน้มที่จะโน้มเอียงไปทาง Python มากขึ้นเมื่อเทียบกับไลบรารีอื่น ๆ มันเป็นเพราะ PyTorch ค่อนข้างง่ายต่อการเข้าใจและมันให้ความรู้สึกมากขึ้นตามธรรมชาติ , พื้นเมืองและสอดคล้องกับรหัสหลาม
สำหรับใครก็ตามที่เคยทำงานกับ Python พวกเขาจะรู้สึกเหมือนอยู่บ้านกับทุกสิ่งด้วย PyTorch เช่นฟังก์ชันการสูญเสียเครื่องมือเพิ่มประสิทธิภาพการเปลี่ยนแปลงตัวโหลดข้อมูลและคลาสอื่น ๆ อีกมากมาย
รหัสสำหรับแต่ละตัวอย่าง PyTorch (Vision และ NLP) มีโครงสร้างร่วมกัน:
2. ใช้งานง่าย
เมื่อเปรียบเทียบกับ PyTorch TensorFlow มีเส้นโค้งการเรียนรู้ที่ค่อนข้างชันกว่า โปรแกรมเมอร์ Python จะใช้เวลาในการปรับตัวให้เข้ากับ PyTorch น้อยลงเพราะมันมักจะรู้สึกเหมือนเป็นส่วนขยายของเฟรมเวิร์กของ Python การดีบักที่ง่ายดายและชุด API ง่ายๆที่ยอดเยี่ยมมีบทบาทสำคัญในการทำให้ PyTorch ง่ายขึ้นสำหรับโปรแกรมเมอร์
3. ห้องสมุดที่มีประโยชน์
ด้วยการสนับสนุนจากชุมชนที่ดีทำให้เกิดความกระตือรือร้นและมีส่วนร่วมอย่างมากต่อชุมชน การใช้ PyTorch โปรแกรมเมอร์ได้ดำเนินการต่อและสร้างโครงการบางอย่างที่พร้อมให้ทุกคนที่สนใจได้ดู รายการรวมของโครงการจำนวนหนึ่งในโดเมนต่างๆเช่นComputer Vision , Natural Language Processingและ Generative Libraries อยู่ด้านล่าง:
● pro_gan_pytorch เพื่อใช้ประโยชน์จากคุณสมบัติ ProGAN
● BoTorch สำหรับการใช้การเพิ่มประสิทธิภาพแบบเบย์
● ParlAI สำหรับการแบ่งปันการฝึกอบรมและการทดสอบรูปแบบการสนทนา
● OpenNMT-py สำหรับใช้ระบบการแปลด้วยเครื่องประสาท
● MUSE สำหรับการฝังคำหลายภาษา
● skorch สำหรับการหลอมรวมโค้ด scikit-learn กับ PyTorch
4. ความเท่าเทียมกันของข้อมูลที่ง่ายดาย
Data Parallelism ใน PyTorch มีประสิทธิภาพและช่วยให้คุณสามารถแบ่งข้อมูลออกเป็นแบทช์ซึ่งจะถูกส่งไปยัง GPU หลายตัวเพื่อประมวลผล การใช้เทคนิคนี้ PyTorch สามารถเปลี่ยนปริมาณงานที่สำคัญจาก CPU ไปเป็น GPU สำหรับความขนานของข้อมูลจะใช้คลาส torch.nn.DataParallel
Distributed Data-Parallelเป็นคุณสมบัติของ PyTorch ที่คุณสามารถใช้ร่วมกับ Data-Parallel เพื่อจัดการกับกรณีการใช้งานที่ต้องการชุดข้อมูลขนาดใหญ่และรุ่นที่ใหญ่พอสำหรับ GPU ตัวเดียว เมื่องานทั้งหมดในกลุ่ม GPU เสร็จสิ้นผลลัพธ์จะถูกรวบรวมรวมและส่งกลับมาให้คุณโดย Data-Parallel
5. ยอดเยี่ยมสำหรับนักวิจัย
PyTorch เป็นเทพเจ้าสำหรับนักวิจัยเนื่องจากได้รับการพิสูจน์แล้วว่ามีการใช้งานโดยนักวิจัยอย่างน้อย 70% ที่ทำงานเกี่ยวกับกรอบงาน แม้จะเป็นตัวเลือกชั้นนำของอุตสาหกรรมในการพัฒนาแอพพลิเคชั่น แต่ TensorFlow ก็ยังไม่ได้ใช้ PyTorch ในด้านนี้ เหตุผลประการหนึ่งที่อยู่เบื้องหลังสิ่งนี้อาจเป็นความเรียบง่ายและใช้งานง่ายที่ PyTorch มีให้พร้อมประสิทธิภาพที่ดีขึ้น
6. มือถือพร้อม
เริ่มต้น v1.3 , PyTorch ได้เพิ่มการสนับสนุนสำหรับการใช้งานบนอุปกรณ์ Android และ iOS คุณลักษณะนี้นำประโยชน์ทั้งหมดของ PyTorch มาสู่อุปกรณ์ edge เพื่อตอบสนองแอปพลิเคชันที่ต้องการเวลาแฝงที่ต่ำกว่า เป้าหมายเบื้องหลัง PyTorch mobile คือการลดวงจรการพัฒนาโดยรองรับ API พื้นฐานสำหรับแพลตฟอร์มมือถือโดยไม่จำเป็นต้องส่งออกไปยังเฟรมเวิร์กมือถือเช่น Caffe2 ซึ่งจะช่วยลดรอยเท้าบนอุปกรณ์ได้มาก นอกจากนี้ยังเพิ่มการสนับสนุนสำหรับการปรับแต่งบิลด์สคริปต์อย่างละเอียดเพื่อการควบคุมที่ดียิ่งขึ้น
เริ่มต้นกับ PyTorch Mobile:
เริ่มต้นใช้งานบนAndroid
เริ่มต้นใช้งานบนiOS
7. การดีบักง่าย
PyTorch เป็นเรื่องง่ายที่จะแก้ไขข้อบกพร่องเมื่อคุณมีตัวเลือกในการเข้าถึงแต่ละบรรทัดและวิธีการพิมพ์ตามปกติหลังจากแต่ละบรรทัด ไอซิ่งบนเค้กคือวัตถุและการทำงานใน PyTorch มีข้อมูลจริงไม่ใช่การอ้างอิงเชิงสัญลักษณ์ทำให้ชีวิตของโปรแกรมเมอร์ง่ายขึ้น ตัวดีบักมาตรฐานบางตัวสำหรับ PyTorch ได้แก่ :
● ipdb
● pdb
● PyCharm
ตัวอย่างเช่นคุณสามารถใช้ฟังก์ชัน“ pdb.set_trace ()” ของ pdb เพื่อวางเบรกพอยท์ในโค้ดของคุณเพื่อเจาะลึกถึงรากของข้อผิดพลาด นอกจากนี้กราฟการคำนวณแบบไดนามิกของ PyTorch ยังช่วยให้สามารถปรับเปลี่ยนแบบไดนามิกและแก้ไขจุดบกพร่องได้อย่างรวดเร็วในขณะที่โค้ดของคุณทำงาน
8. รองรับ ONNX
Open Neural Network Exchangeทำหน้าที่เป็นระบบนิเวศโอเพ่นซอร์สสำหรับปัญญาประดิษฐ์โดยจัดเตรียมพื้นฐานร่วมกันสำหรับโปรแกรมเมอร์ AI ในการทำงานร่วมกันในเฟรมเวิร์กเครื่องมือและไลบรารีที่หลากหลาย ONNX ทำได้โดยจัดเตรียมรูปแบบไฟล์มาตรฐานที่ใช้งานได้กับหลายเฟรมเวิร์กและฮาร์ดแวร์
เมื่อพูดถึง PyTorch แล้ว ONNX มาพร้อมกับการรองรับ PyTorch ในตัวและเฟรมเวิร์กอื่น ๆ ที่หลากหลายเช่น Caffe2, MXNet, TensorFlow และอื่น ๆ ONNX ช่วยให้โปรแกรมเมอร์ AI ส่งออกและโอนย้ายโมเดล PyTorchไปเป็นรูปแบบเปิดที่เฟรมเวิร์กอื่น ๆ สามารถรวมเข้าด้วยกันได้ง่ายขึ้น
9. รองรับกราฟการคำนวณแบบไดนามิก
PyTorch นำเสนอวิธีการแบบไดนามิกในการกำหนดกราฟการคำนวณโดยการดูทุกโมเดลเป็น Directed Acyclic Graph ในขณะที่เฟรมเวิร์กอื่น ๆ อนุญาตให้มีการกำหนดกราฟแบบคงที่ PyTorch สนับสนุนการสร้างกราฟการคำนวณแบบไดนามิกซึ่งคุณมีอิสระที่จะจัดการกับมันได้ทุกที่ทุกเวลา องค์ประกอบหนึ่งที่ได้รับประโยชน์สูงสุดจากลักษณะไดนามิกของ PyTorch คือ Recurrent Neural Networks และอื่น ๆ อีกมากมาย
10. การสนับสนุนชุมชนที่เข้มแข็ง
PyTorch ยังมีการสนับสนุนจากชุมชนที่ดีเยี่ยม บ้าน PyTorchมีเอกสารรายละเอียดเกี่ยวกับแต่ละคุณลักษณะของมัน มีการอธิบายการอัปเดตล่าสุดทั้งหมดของห้องสมุด ด้วยการเพิ่มใหม่แต่ละครั้งคุณสามารถพบบทแนะนำที่สนับสนุน และแหล่งข้อมูลที่เกี่ยวข้องเพื่อให้ได้สัมผัสที่มีคุณค่า
PyTorch Forumเป็นสถานที่ที่ยอดเยี่ยมและได้รับการแนะนำเป็นอย่างยิ่งสำหรับมือใหม่ในการโพสต์คำถามและทหารผ่านศึกเพื่อแบ่งปันความคิดของพวกเขากับเพื่อนโปรแกรมเมอร์ ด้วยการโพสต์มากกว่าร้อยโพสต์ต่อวันชุมชนจึงมีความกระตือรือร้นและกระตุ้นให้ผู้คนเริ่มใช้ PyTorch
นี่คือบางส่วนของนักพัฒนาชุมชน PyTorch , ทรัพยากรและบทเรียนที่จะมีส่วนร่วมเรียนรู้และได้รับการตอบคำถามของคุณ -
● แบบฟอร์มสนทนา PyTorch
● ชุมชน PyTorch Slack
● ตัวอย่าง PyTorch
● เอกสาร PyTorch
● บทแนะนำ Github Pytorch
● สูตรเริ่มต้น PyTorch
● บันทึกประจำรุ่น PyTorch
● การเรียนรู้เชิงลึกด้วย Pytorch: 60 นาทีแบบสายฟ้าแลบ
● การใช้ข้อมูลบทช่วยสอนจาก Google ไดรฟ์ใน Colab
● เอกสารและบทช่วยสอนเป็นภาษาจีน
● บทแนะนำเป็นภาษาเกาหลี
สรุป
ด้วยคุณสมบัติที่ใช้งานง่ายมากมายสำหรับโปรแกรมเมอร์ Deep Learning PyTorch มีสิ่งต่างๆมากมายที่จะมอบให้กับผู้คนในระดับความสามารถที่หลากหลาย แม้จะมีจุดเข้าใช้งานที่ง่าย แต่ก็ไม่ควรใช้ PyTorch เบา ๆ เนื่องจากมีคุณสมบัติที่ไม่เพียง แต่ให้ประสิทธิภาพที่ดีขึ้นในบางด้านเท่านั้น แต่ยังมีคุณสมบัติพิเศษเพิ่มเติมอีกด้วย เราได้พูดคุยเกี่ยวกับคุณสมบัติที่พูดถึงกันมากที่สุดของ PyTorch เพื่อช่วยให้คุณสามารถข้ามไปยัง PyTorch ที่คุณไม่เชื่อได้
การอ่านที่น่าสนใจเพิ่มเติม -
หวังว่าบทความนี้จะเป็นประโยชน์! ด้านล่างนี้คือการอ่านที่น่าสนใจหวังว่าคุณจะชอบเช่นกัน -
เกี่ยวกับผู้แต่ง
แคลร์ดี . เป็น Content Crafter และ Marketer ที่Digitalogyซึ่งเป็นแหล่งจัดหาเทคโนโลยีและตลาดการจับคู่แบบกำหนดเองที่เชื่อมโยงผู้คนกับนักพัฒนาและนักออกแบบชั้นนำที่ได้รับการคัดเลือกล่วงหน้าตามความต้องการเฉพาะของพวกเขาทั่วโลก เชื่อมต่อกับDigitalogyบนLinkedin , Twitter , Instagram