อ่าน 3 นาที
เชนเนอร์
Chainer เป็น เฟรมเวิ ร์ก การเรียนรู้เชิงลึกแบบ โอเพนซอร์สที่เขียนด้วย ภาษา Python ล้วนๆ โดยใช้ ไลบรารี NumPy และ CuPy ของ Python การพัฒนานี้ดำเนินการโดยบริษัทร่วมทุนของญี่ปุ่น...
เชนเนอร์
| เชนเนอร์ | |
|---|---|
| ผู้เขียนต้นฉบับ | เซยะ โทคุอิ |
| นักพัฒนา | บริษัท คอมมูนิตี้ พรีเฟอร์ เน็ตเวิร์กส์ จำกัด |
| ปล่อย | 9 มิถุนายน2558 [ 1 ] [ 2 ] |
| เวอร์ชันเสถียร | 7.8.1 [ 3 ] / 5 มกราคม 2022 |
| เขียนเป็น | ไพธอน |
| แพลตฟอร์ม | ข้ามแพลตฟอร์ม |
| มีจำหน่ายใน | ไพธอน |
| พิมพ์ | คลังการเรียนรู้เชิงลึก |
| ใบอนุญาต | เอ็มไอที |
| เว็บไซต์ | chainer |
| ที่เก็บข้อมูล |
|
Chainerเป็นเฟรมเวิ ร์ก การเรียนรู้เชิงลึกแบบโอเพนซอร์สที่เขียนด้วย ภาษา Python ล้วนๆ โดยใช้ ไลบรารี NumPyและCuPy ของ Python การพัฒนานี้ดำเนินการโดยบริษัทร่วมทุนของญี่ปุ่น Preferred Networks ร่วมกับIBM , Intel , MicrosoftและNvidia [ 4 ] [ 5 ] [ 6 ] [ 7 ]
Chainer โดดเด่นในด้านการนำรูปแบบ " define-by-run " มาใช้ตั้งแต่เนิ่นๆ รวมถึงประสิทธิภาพในการทำงานบนระบบขนาดใหญ่[ 1 ]เวอร์ชันแรกเปิดตัวในเดือนมิถุนายน 2015 และได้รับความนิยมอย่างมากในญี่ปุ่นตั้งแต่นั้นมา[ 1 ] [ 2 ]นอกจากนี้ ในปี 2017 Chainer ยังได้รับการจัดอันดับโดยKDnuggets ให้ อยู่ใน 10 อันดับแรกของโครงการ Python สำหรับการเรียนรู้ของเครื่องแบบโอเพนซอร์ส[ 8 ]
ในเดือนธันวาคม 2019 Preferred Networks ประกาศการเปลี่ยนผ่านความพยายามในการพัฒนาจาก Chainer ไปเป็นPyTorchและจะให้เฉพาะแพตช์บำรุงรักษาหลังจากปล่อยเวอร์ชัน 7 แล้ว[ 9 ]
กำหนดโดยการทำงาน
Chainer เป็นเฟรมเวิร์กการเรียนรู้เชิงลึกตัวแรกที่นำเสนอแนวทาง define-by-run [ 10 ] [ 11 ]ขั้นตอนดั้งเดิมในการฝึกเครือข่ายมีสองขั้นตอน: กำหนดการเชื่อมต่อคงที่ระหว่างการดำเนินการทางคณิตศาสตร์ (เช่น การคูณเมทริกซ์และการเปิดใช้งานแบบไม่เชิงเส้น) ในเครือข่าย จากนั้นจึงดำเนินการคำนวณการฝึกจริง วิธีนี้เรียกว่า define-and-run หรือแนวทางกราฟคงที่TheanoและTensorFlowเป็นเฟรมเวิร์กที่โดดเด่นที่ใช้แนวทางนี้ ในทางตรงกันข้าม ในแนวทาง define-by-run หรือแนวทางกราฟไดนามิก การเชื่อมต่อในเครือข่ายจะไม่ถูกกำหนดเมื่อเริ่มการฝึก เครือข่ายจะถูกกำหนดในระหว่างการฝึกเมื่อทำการคำนวณจริง
ข้อดีประการหนึ่งของแนวทางนี้คือใช้งานง่ายและยืดหยุ่น[ 12 ]หากเครือข่ายมีการควบคุมการไหลที่ซับซ้อน เช่นเงื่อนไขและลูปในแนวทางกำหนดและดำเนินการ จำเป็นต้องมีการดำเนินการที่ออกแบบมาเป็นพิเศษสำหรับโครงสร้างดังกล่าว ในทางกลับกัน ในแนวทางกำหนดโดยดำเนินการ สามารถใช้โครงสร้างพื้นฐานของภาษาโปรแกรม เช่น คำสั่ง if และลูป for เพื่ออธิบายการไหลดังกล่าว ความยืดหยุ่นนี้มีประโยชน์อย่างยิ่งในการใช้งานเครือข่ายประสาทแบบวนซ้ำ[ 13 ] [ 14 ]
ข้อดีอีกประการหนึ่งคือความง่ายในการดีบัก[ 12 ]ในแนวทาง define-and-run หากเกิดข้อผิดพลาด (เช่น ข้อผิดพลาดทางตัวเลข) ในการคำนวณการฝึกอบรม มักจะยากที่จะตรวจสอบข้อผิดพลาด เนื่องจากโค้ดที่เขียนเพื่อกำหนดเครือข่ายและตำแหน่งที่เกิดข้อผิดพลาดจริงนั้นแยกจากกัน ในแนวทาง define-by-run คุณสามารถระงับการคำนวณด้วยดีบักเกอร์ ในตัวของภาษา และตรวจสอบข้อมูลที่ไหลผ่านโค้ดเครือข่ายของคุณได้
Define-by-run ได้รับความนิยมมากขึ้นนับตั้งแต่ Chainer นำเสนอ และปัจจุบันได้ถูกนำไปใช้ในเฟรมเวิร์กอื่นๆ อีกมากมาย รวมถึง PyTorch [ 15 ]และ TensorFlow [ 12 ]
ไลบรารีส่วนขยาย
Chainer มีไลบรารีส่วนขยายสี่ชุด ได้แก่ ChainerMN, ChainerRL, ChainerCV และ ChainerUI ChainerMN ช่วยให้สามารถใช้ Chainer บน GPU หลายตัวได้ โดยมีประสิทธิภาพเร็วกว่าเฟรมเวิร์กการเรียนรู้เชิงลึกอื่นๆ อย่างมาก[ 1 ]ซูเปอร์คอมพิวเตอร์ที่รัน Chainer บน GPU 1024 ตัว ประมวลผล ชุดข้อมูล ImageNet 90 รอบ บนเครือข่าย ResNet-50 ใน 15 นาที ซึ่งเร็วกว่าสถิติเดิมของ Facebook ถึงสี่เท่า[ 16 ] [ 17 ] ChainerRL เพิ่มอัลก อริธึม การเรียนรู้แบบเสริมแรงเชิง ลึกที่ทันสมัย และ ChainerUI เป็นเครื่องมือจัดการและแสดงภาพ
แอปพลิเคชัน
Chainer ถูกใช้เป็นเฟรมเวิร์กสำหรับPaintsChainerซึ่งเป็นบริการที่ทำการระบายสี อัตโนมัติให้ กับภาพวาดเส้นขาวดำโดยใช้การป้อนข้อมูลจากผู้ใช้น้อยที่สุด[ 18 ] [ 19 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เชนเนอร์
Chainer เป็น เฟรมเวิ ร์ก การเรียนรู้เชิงลึกแบบ โอเพนซอร์สที่เขียนด้วย ภาษา Python ล้วนๆ โดยใช้ ไลบรารี NumPy และ CuPy ของ Python การพัฒนานี้ดำเนินการโดยบริษัทร่วมทุนของญี่ปุ่น...
กำหนดโดยการทำงาน
Chainer เป็นเฟรมเวิร์กการเรียนรู้เชิงลึกตัวแรกที่นำเสนอแนวทาง define-by-run [ 10 ] [ 11 ] ขั้นตอนดั้งเดิมในการฝึกเครือข่ายมีสองขั้นตอน: กำหนดการเชื่อมต่อคงที่ระหว่างการดำเนินการทางคณิตศาสตร์ (เช่น การคูณเมทริกซ์และการเปิดใช้งานแบบไม่เชิงเส้น) ในเครือข่าย...
ไลบรารีส่วนขยาย
Chainer มีไลบรารีส่วนขยายสี่ชุด ได้แก่ ChainerMN, ChainerRL, ChainerCV และ ChainerUI ChainerMN ช่วยให้สามารถใช้ Chainer บน GPU หลายตัวได้ โดยมีประสิทธิภาพเร็วกว่าเฟรมเวิร์กการเรียนรู้เชิงลึกอื่นๆ อย่างมาก [ 1 ] ซูเปอร์คอมพิวเตอร์ที่รัน Chainer บน GPU 1024 ตัว...
แอปพลิเคชัน
Chainer ถูกใช้เป็นเฟรมเวิร์กสำหรับ PaintsChainer ซึ่งเป็นบริการ ที่ทำการระบายสี อัตโนมัติให้ กับภาพวาดเส้นขาวดำโดยใช้การป้อนข้อมูลจากผู้ใช้น้อยที่สุด [ 18 ] [ 19 ]