Microsoft Cognitive Toolkit (CNTK) - บทนำ

ในบทนี้เราจะเรียนรู้ว่า CNTK คืออะไรคุณสมบัติของมันความแตกต่างระหว่างเวอร์ชัน 1.0 และ 2.0 และไฮไลท์ที่สำคัญของเวอร์ชัน 2.7

Microsoft Cognitive Toolkit (CNTK) คืออะไร

Microsoft Cognitive Toolkit (CNTK) เดิมเรียกว่า Computational Network Toolkit เป็นชุดเครื่องมือโอเพนซอร์สเกรดเชิงพาณิชย์ที่ใช้งานง่ายฟรีซึ่งช่วยให้เราสามารถฝึกอัลกอริทึมการเรียนรู้เชิงลึกเพื่อเรียนรู้เช่นเดียวกับสมองของมนุษย์ ช่วยให้เราสามารถสร้างระบบการเรียนรู้เชิงลึกที่เป็นที่นิยมเช่นfeed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers.

เพื่อประสิทธิภาพที่ดีที่สุดฟังก์ชันของเฟรมเวิร์กจะถูกเขียนด้วย C ++ แม้ว่าเราจะสามารถเรียกใช้ฟังก์ชันโดยใช้ C ++ ได้ แต่วิธีการที่ใช้กันมากที่สุดคือการใช้โปรแกรม Python

คุณสมบัติของ CNTK

ต่อไปนี้เป็นคุณสมบัติและความสามารถบางส่วนที่นำเสนอใน Microsoft CNTK เวอร์ชันล่าสุด:

ส่วนประกอบในตัว

  • CNTK มีส่วนประกอบในตัวที่ได้รับการปรับแต่งอย่างดีซึ่งสามารถจัดการกับข้อมูลที่หนาแน่นหรือกระจัดกระจายหลายมิติจาก Python, C ++ หรือ BrainScript

  • เราสามารถใช้ CNN, FNN, RNN, Batch Normalization และ Sequence-to-Sequence ได้ด้วยความเอาใจใส่

  • มีฟังก์ชันการทำงานในการเพิ่มส่วนประกอบหลักที่ผู้ใช้กำหนดใหม่บน GPU จาก Python

  • นอกจากนี้ยังมีการปรับแต่งไฮเปอร์พารามิเตอร์อัตโนมัติ

  • เราสามารถใช้ Reinforcement learning, Generative Adversarial Networks (GANs), ภายใต้การดูแลและการเรียนรู้ที่ไม่มีผู้ดูแล

  • สำหรับชุดข้อมูลขนาดใหญ่ CNTK มีโปรแกรมอ่านที่ปรับให้เหมาะสมในตัว

การใช้ทรัพยากรอย่างมีประสิทธิภาพ

  • CNTK ให้เราขนานกันด้วยความแม่นยำสูงสำหรับ GPU / เครื่องหลายเครื่องผ่าน SGD 1 บิต

  • เพื่อให้พอดีกับรุ่นที่ใหญ่ที่สุดในหน่วยความจำ GPU จะมีการแบ่งปันหน่วยความจำและวิธีการอื่น ๆ ในตัว

แสดงเครือข่ายของเราเองได้อย่างง่ายดาย

  • CNTK มี API เต็มรูปแบบสำหรับกำหนดเครือข่ายของคุณเองผู้เรียนผู้อ่านการฝึกอบรมและการประเมินผลจาก Python, C ++ และ BrainScript

  • เมื่อใช้ CNTK เราสามารถประเมินโมเดลด้วย Python, C ++, C # หรือ BrainScript ได้อย่างง่ายดาย

  • มีทั้ง API ระดับสูงและระดับต่ำ

  • จากข้อมูลของเราสามารถกำหนดรูปแบบการอนุมานได้โดยอัตโนมัติ

  • มีลูป Recurrent Neural Network (RNN) เชิงสัญลักษณ์ที่ปรับให้เหมาะสมอย่างเต็มที่

การวัดประสิทธิภาพของโมเดล

  • CNTK มีส่วนประกอบต่างๆเพื่อวัดประสิทธิภาพของเครือข่ายประสาทเทียมที่คุณสร้างขึ้น

  • สร้างข้อมูลบันทึกจากโมเดลของคุณและเครื่องมือเพิ่มประสิทธิภาพที่เกี่ยวข้องซึ่งเราสามารถใช้เพื่อตรวจสอบกระบวนการฝึกอบรม

เวอร์ชัน 1.0 เทียบกับเวอร์ชัน 2.0

ตารางต่อไปนี้เปรียบเทียบ CNTK เวอร์ชัน 1.0 และ 2.0:

เวอร์ชัน 1.0.6 เวอร์ชัน 2.0.2
เปิดตัวในปี 2559 เป็นการเขียนซ้ำครั้งสำคัญของเวอร์ชัน 1.0 และเปิดตัวในเดือนมิถุนายน 2017
ใช้ภาษาสคริปต์ที่เป็นกรรมสิทธิ์ที่เรียกว่า BrainScript ฟังก์ชันเฟรมเวิร์กสามารถเรียกได้โดยใช้ C ++, Python เราสามารถโหลดโมดูลของเราใน C # หรือ Java ได้อย่างง่ายดาย BrainScript ได้รับการสนับสนุนโดยเวอร์ชัน 2.0
ทำงานได้ทั้งบนระบบ Windows และ Linux แต่ไม่ใช่บน Mac OS โดยตรง นอกจากนี้ยังทำงานบนทั้ง Windows (Win 8.1, Win 10, Server 2012 R2 และใหม่กว่า) และระบบ Linux แต่ไม่ได้ทำงานบน Mac OS โดยตรง

จุดเด่นที่สำคัญของเวอร์ชัน 2.7.2

Version 2.7เป็นเวอร์ชันหลักล่าสุดของ Microsoft Cognitive Toolkit มีการสนับสนุนอย่างเต็มที่สำหรับ ONNX 1.4.1 ต่อไปนี้เป็นไฮไลท์ที่สำคัญบางส่วนของ CNTK เวอร์ชันล่าสุดนี้

  • รองรับ ONNX 1.4.1 อย่างเต็มที่

  • รองรับ CUDA 10 สำหรับทั้งระบบ Windows และ Linux

  • รองรับการวนซ้ำล่วงหน้าของ Neural Networks (RNN) ในการส่งออก ONNX

  • สามารถส่งออกได้มากกว่า 2GB รุ่นในรูปแบบ ONNX

  • สนับสนุน FP16 ในการดำเนินการฝึกอบรมภาษาสคริปต์ BrainScript