เหตุผลในการเลือก PyTorch สำหรับการเรียนรู้เชิงลึก

Nov 26 2020
PyTorch มีข้อเสนอมากมายให้กับโปรแกรมเมอร์ Deep Learning
การเรียนรู้เชิงลึกและการเรียนรู้ของเครื่องเป็นคำที่โด่งดังที่สุดในหมู่ทุกคนในช่วงสองสามปีที่ผ่านมาและมีคำอธิบายที่สมบูรณ์แบบสำหรับเรื่องนี้ แมชชีนเลิร์นนิงช่วยให้ระบบสามารถเรียนรู้จากประสบการณ์ได้ในขณะที่ Deep Learning นำ Machine Learning ไปสู่ระดับที่ยิ่งใหญ่ด้วยการใช้ชุดข้อมูลที่กว้างขวาง

การเรียนรู้เชิงลึกและการเรียนรู้ของเครื่องเป็นคำที่โด่งดังที่สุดในหมู่ทุกคนในช่วงสองสามปีที่ผ่านมาและมีคำอธิบายที่สมบูรณ์แบบสำหรับเรื่องนี้

แมชชีนเลิร์นนิงช่วยให้ระบบสามารถเรียนรู้จากประสบการณ์ได้ในขณะที่ 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 ในช่วงเวลาหนึ่ง

Google Trends (ที่มา)

เหตุผลในการเลือก 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) มีโครงสร้างร่วมกัน:

ตัวอย่าง PyTorch (ที่มา)
ตัวอย่าง PyTorch (ที่มา)

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

Pytorch 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 ยังช่วยให้สามารถปรับเปลี่ยนแบบไดนามิกและแก้ไขจุดบกพร่องได้อย่างรวดเร็วในขณะที่โค้ดของคุณทำงาน

PyTorch Debugging ด้วย pdb (source)

8. รองรับ ONNX

Open Neural Network Exchangeทำหน้าที่เป็นระบบนิเวศโอเพ่นซอร์สสำหรับปัญญาประดิษฐ์โดยจัดเตรียมพื้นฐานร่วมกันสำหรับโปรแกรมเมอร์ AI ในการทำงานร่วมกันในเฟรมเวิร์กเครื่องมือและไลบรารีที่หลากหลาย ONNX ทำได้โดยจัดเตรียมรูปแบบไฟล์มาตรฐานที่ใช้งานได้กับหลายเฟรมเวิร์กและฮาร์ดแวร์

เมื่อพูดถึง PyTorch แล้ว ONNX มาพร้อมกับการรองรับ PyTorch ในตัวและเฟรมเวิร์กอื่น ๆ ที่หลากหลายเช่น Caffe2, MXNet, TensorFlow และอื่น ๆ ONNX ช่วยให้โปรแกรมเมอร์ AI ส่งออกและโอนย้ายโมเดล PyTorchไปเป็นรูปแบบเปิดที่เฟรมเวิร์กอื่น ๆ สามารถรวมเข้าด้วยกันได้ง่ายขึ้น

รองรับ PyTorch Native ONNX (ที่มา)

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