Apache MXNet - ชุดเครื่องมือและระบบนิเวศ
เพื่อสนับสนุนการวิจัยและพัฒนาแอปพลิเคชัน Deep Learning ในหลาย ๆ สาขา Apache MXNet มอบระบบนิเวศที่สมบูรณ์ของชุดเครื่องมือห้องสมุดและอื่น ๆ อีกมากมาย ให้เราสำรวจพวกเขา -
ToolKits
ต่อไปนี้เป็นชุดเครื่องมือที่ใช้มากที่สุดและมีความสำคัญโดย MXNet -
GluonCV
เนื่องจากชื่อมีความหมายว่า GluonCV เป็นชุดเครื่องมือ Gluon สำหรับการมองเห็นด้วยคอมพิวเตอร์ที่ขับเคลื่อนโดย MXNet มีการใช้อัลกอริทึม DL (Deep Learning) ที่ล้ำสมัยในการมองเห็นด้วยคอมพิวเตอร์ (CV) ด้วยความช่วยเหลือของวิศวกรชุดเครื่องมือ GluonCV นักวิจัยและนักเรียนสามารถตรวจสอบแนวคิดใหม่ ๆ และเรียนรู้ CV ได้อย่างง่ายดาย
ด้านล่างนี้คือบางส่วนของไฟล์ features of GluonCV -
ฝึกสคริปต์เพื่อสร้างผลลัพธ์ที่ล้ำสมัยที่รายงานในงานวิจัยล่าสุด
โมเดล pretrained คุณภาพสูงมากกว่า 170+ รุ่น
ยอมรับรูปแบบการพัฒนาที่ยืดหยุ่น
GluonCV นั้นง่ายต่อการปรับให้เหมาะสม เราสามารถปรับใช้โดยไม่ต้องรักษาเฟรมเวิร์ก DL ที่มีน้ำหนักมาก
มี API ที่ออกแบบมาอย่างรอบคอบซึ่งช่วยลดความยุ่งยากในการใช้งานลงอย่างมาก
การสนับสนุนจากชุมชน
การใช้งานที่เข้าใจง่าย
ต่อไปนี้คือไฟล์ supported applications โดย GluonCV toolkit:
การจำแนกภาพ
การตรวจจับวัตถุ
การแบ่งส่วนความหมาย
การแบ่งกลุ่มอินสแตนซ์
ก่อให้เกิดการประมาณค่า
Video Action Recognition
เราสามารถติดตั้ง GluonCV ได้โดยใช้ pip ดังนี้ -
pip install --upgrade mxnet gluoncv
GluonNLP
ตามชื่อหมายความว่า GluonNLP เป็นชุดเครื่องมือ Gluon สำหรับการประมวลผลภาษาธรรมชาติ (NLP) ที่ขับเคลื่อนโดย MXNet นำเสนอการใช้โมเดล DL (Deep Learning) ที่ล้ำสมัยใน NLP
ด้วยความช่วยเหลือของวิศวกรชุดเครื่องมือ GluonNLP นักวิจัยและนักเรียนสามารถสร้างบล็อกสำหรับท่อส่งข้อมูลข้อความและแบบจำลอง จากแบบจำลองเหล่านี้สามารถสร้างต้นแบบแนวคิดการวิจัยและผลิตภัณฑ์ได้อย่างรวดเร็ว
ด้านล่างนี้เป็นคุณสมบัติบางอย่างของ GluonNLP:
ฝึกสคริปต์เพื่อสร้างผลลัพธ์ที่ล้ำสมัยที่รายงานในงานวิจัยล่าสุด
ชุดโมเดลที่กำหนดไว้ล่วงหน้าสำหรับงาน NLP ทั่วไป
มี API ที่ออกแบบมาอย่างรอบคอบซึ่งช่วยลดความยุ่งยากในการใช้งานลงอย่างมาก
การสนับสนุนจากชุมชน
นอกจากนี้ยังมีแบบฝึกหัดเพื่อช่วยให้คุณเริ่มต้นงาน NLP ใหม่ ๆ
ต่อไปนี้เป็นงาน NLP ที่เราสามารถนำไปใช้กับชุดเครื่องมือ GluonNLP -
การฝังคำ
รูปแบบภาษา
การแปลด้วยเครื่อง
การจัดประเภทข้อความ
การวิเคราะห์ความเชื่อมั่น
การอนุมานภาษาธรรมชาติ
การสร้างข้อความ
การแยกวิเคราะห์การพึ่งพา
ชื่อการรับรู้เอนทิตี
การจัดประเภทเจตนาและการติดฉลากสล็อต
เราสามารถติดตั้ง GluonNLP ได้โดยใช้ pip ดังนี้ -
pip install --upgrade mxnet gluonnlp
GluonTS
เนื่องจากชื่อมีความหมายว่า GluonTS เป็นชุดเครื่องมือ Gluon สำหรับ Probabilistic Time Series Modeling ที่ขับเคลื่อนโดย MXNet
มีคุณสมบัติดังต่อไปนี้ -
รูปแบบการเรียนรู้เชิงลึกที่ล้ำสมัย (SOTA) พร้อมสำหรับการฝึกอบรม
ยูทิลิตี้สำหรับการโหลดและการทำซ้ำชุดข้อมูลอนุกรมเวลา
การสร้างบล็อคเพื่อกำหนดโมเดลของคุณเอง
ด้วยความช่วยเหลือของวิศวกรชุดเครื่องมือ GluonTS นักวิจัยและนักเรียนสามารถฝึกอบรมและประเมินโมเดลที่มีอยู่แล้วภายในด้วยข้อมูลของตนเองทดลองกับโซลูชันต่างๆได้อย่างรวดเร็วและหาวิธีแก้ปัญหาสำหรับงานอนุกรมเวลาของพวกเขา
นอกจากนี้ยังสามารถใช้ abstractions และส่วนประกอบพื้นฐานที่ให้มาเพื่อสร้างแบบจำลองอนุกรมเวลาที่กำหนดเองและเปรียบเทียบอย่างรวดเร็วเทียบกับอัลกอริทึมพื้นฐาน
เราสามารถติดตั้ง GluonTS ได้โดยใช้ pip ดังนี้ -
pip install gluonts
กลูออน FR
ตามความหมายของชื่อมันคือชุดเครื่องมือ Apache MXNet Gluon สำหรับ FR (Face Recognition) มีคุณสมบัติดังต่อไปนี้ -
รูปแบบการเรียนรู้เชิงลึกที่ล้ำสมัย (SOTA) ในการจดจำใบหน้า
การใช้งาน SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss, RingLoss, CosLoss / AMsoftmax, L2-Softmax, A-Softmax, CenterLoss, ContrastiveLoss และ LGM Loss เป็นต้น
ในการติดตั้ง Gluon Face เราต้องใช้ Python 3.5 หรือใหม่กว่า ก่อนอื่นเราต้องติดตั้ง GluonCV และ MXNet ก่อนดังนี้ -
pip install gluoncv --pre
pip install mxnet-mkl --pre --upgrade
pip install mxnet-cuXXmkl --pre –upgrade # if cuda XX is installed
เมื่อคุณติดตั้งการอ้างอิงคุณสามารถใช้คำสั่งต่อไปนี้เพื่อติดตั้ง GluonFR -
From Source
pip install git+https://github.com/THUFutureLab/gluon-face.git@master
Pip
pip install gluonfr
ระบบนิเวศ
ตอนนี้ให้เราสำรวจไลบรารีแพ็คเกจและเฟรมเวิร์กที่หลากหลายของ MXNet -
โค้ช RL
Coach ซึ่งเป็นเฟรมเวิร์ก Python Reinforcement Learning (RL) ที่สร้างโดยห้องปฏิบัติการ Intel AI ช่วยให้สามารถทดลองใช้อัลกอริธึม RL ที่ล้ำสมัยได้อย่างง่ายดาย Coach RL รองรับ Apache MXNet เป็นส่วนหลังและช่วยให้สามารถรวมสภาพแวดล้อมใหม่ ๆ เข้าด้วยกันเพื่อแก้ปัญหา
เพื่อที่จะขยายและนำส่วนประกอบที่มีอยู่กลับมาใช้ใหม่ได้อย่างง่ายดาย Coach RL ได้แยกองค์ประกอบการเรียนรู้การเสริมแรงขั้นพื้นฐานเช่นอัลกอริทึมสภาพแวดล้อมสถาปัตยกรรม NN นโยบายการสำรวจ
ต่อไปนี้เป็นตัวแทนและอัลกอริทึมที่สนับสนุนสำหรับกรอบงาน Coach RL -
ตัวแทนการเพิ่มประสิทธิภาพมูลค่า
เครือข่าย Deep Q (DQN)
เครือข่าย Double Deep Q (DDQN)
Dueling Q Network
มอนติคาร์โลผสม (MMC)
การเรียนรู้ประโยชน์อย่างต่อเนื่อง (PAL)
หมวดหมู่ Deep Q Network (C51)
การถดถอยเชิงปริมาณเครือข่าย Deep Q (QR-DQN)
N-Step Q การเรียนรู้
Neural Episodic Control (NEC)
ฟังก์ชันความได้เปรียบปกติ (NAF)
Rainbow
ตัวแทนการเพิ่มประสิทธิภาพนโยบาย
การไล่ระดับสีของนโยบาย (PG)
Asynchronous Advantage Actor-Critic (A3C)
การไล่ระดับสีเชิงลึกของนโยบาย (DDPG)
Proximal Policy Optimization (PPO)
การเพิ่มประสิทธิภาพนโยบายใกล้เคียงที่ถูกตัด (CPPO)
การประมาณความได้เปรียบทั่วไป (GAE)
ตัวอย่าง Actor-Critic ที่มีประสิทธิภาพพร้อม Experience Replay (ACER)
Soft Actor-Critic (SAC)
การไล่ระดับนโยบายเชิงลึกที่ล่าช้าแบบคู่ (TD3)
ตัวแทนทั่วไป
การทำนายอนาคตโดยตรง (DFP)
ตัวแทนการเรียนรู้การเลียนแบบ
การโคลนพฤติกรรม (BC)
การเรียนรู้การเลียนแบบตามเงื่อนไข
ตัวแทนการเรียนรู้การเสริมแรงตามลำดับชั้น
นักแสดงตามลำดับชั้นนักวิจารณ์ (HAC)
ห้องสมุดกราฟลึก
Deep Graph Library (DGL) ซึ่งพัฒนาโดยทีม NYU และ AWS ในเซี่ยงไฮ้เป็นแพ็คเกจ Python ที่ให้การใช้งาน Graph Neural Networks (GNNs) ที่ง่ายดายบน MXNet นอกจากนี้ยังให้การใช้งาน GNN ที่ง่ายดายเหนือไลบรารีการเรียนรู้เชิงลึกที่สำคัญอื่น ๆ ที่มีอยู่เช่น PyTorch, Gluon เป็นต้น
Deep Graph Library เป็นซอฟต์แวร์ฟรี สามารถใช้ได้กับ Linux ทุกรุ่นที่ใหม่กว่า Ubuntu 16.04, macOS X และ Windows 7 หรือใหม่กว่า นอกจากนี้ยังต้องใช้ Python เวอร์ชัน 3.5 หรือใหม่กว่า
ต่อไปนี้เป็นคุณสมบัติของ DGL -
No Migration cost - ไม่มีค่าใช้จ่ายในการย้ายข้อมูลสำหรับการใช้ DGL เนื่องจากสร้างขึ้นจากเฟรมเวิร์ก DL ที่ได้รับความนิยม
Message Passing- DGL ให้การส่งผ่านข้อความและมีการควบคุมที่หลากหลาย การส่งผ่านข้อความมีตั้งแต่การดำเนินการระดับต่ำเช่นการส่งไปตามขอบที่เลือกไปจนถึงการควบคุมระดับสูงเช่นการอัปเดตฟีเจอร์แบบกราฟ
Smooth Learning Curve - มันค่อนข้างง่ายในการเรียนรู้และใช้ DGL เนื่องจากฟังก์ชั่นที่ผู้ใช้กำหนดเองที่มีประสิทธิภาพนั้นมีความยืดหยุ่นและใช้งานง่าย
Transparent Speed Optimization - DGL ให้การเพิ่มประสิทธิภาพความเร็วที่โปร่งใสโดยทำการคำนวณเป็นชุดอัตโนมัติและการคูณเมทริกซ์แบบกระจัดกระจาย
High performance - เพื่อให้ได้ประสิทธิภาพสูงสุด DGL จะจัดการฝึก DNN (โครงข่ายประสาทเทียมแบบลึก) โดยอัตโนมัติบนกราฟหนึ่งหรือหลายกราฟด้วยกัน
Easy & friendly interface - DGL นำเสนออินเทอร์เฟซที่ใช้งานง่ายและเป็นมิตรสำหรับการเข้าถึงคุณลักษณะขอบตลอดจนการจัดการโครงสร้างกราฟ
InsightFace
InsightFace เครื่องมือการเรียนรู้เชิงลึกสำหรับการวิเคราะห์ใบหน้าที่ให้การใช้อัลกอริทึมการวิเคราะห์ใบหน้า SOTA (ล้ำสมัย) ในการมองเห็นด้วยคอมพิวเตอร์ที่ขับเคลื่อนโดย MXNet ให้ -
โมเดลสำเร็จรูปคุณภาพสูงชุดใหญ่
สคริปต์การฝึกอบรมที่ทันสมัย (SOTA)
InsightFace นั้นง่ายต่อการเพิ่มประสิทธิภาพ เราสามารถปรับใช้โดยไม่ต้องรักษาเฟรมเวิร์ก DL ที่มีน้ำหนักมาก
มี API ที่ออกแบบมาอย่างรอบคอบซึ่งช่วยลดความยุ่งยากในการใช้งานลงอย่างมาก
การสร้างบล็อคเพื่อกำหนดโมเดลของคุณเอง
เราสามารถติดตั้ง InsightFace ได้โดยใช้ pip ดังนี้ -
pip install --upgrade insightface
โปรดทราบว่าก่อนติดตั้ง InsightFace โปรดติดตั้งแพ็คเกจ MXNet ที่ถูกต้องตามการกำหนดค่าระบบของคุณ
Keras-MXNet
อย่างที่เราทราบกันดีว่า Keras เป็น Neural Network (NN) API ระดับสูงที่เขียนด้วย Python Keras-MXNet ให้การสนับสนุนแบ็กเอนด์สำหรับ Keras สามารถทำงานบนเฟรมเวิร์ก Apache MXNet DL ที่มีประสิทธิภาพสูงและปรับขนาดได้
คุณสมบัติของ Keras-MXNet มีดังต่อไปนี้ -
ช่วยให้ผู้ใช้สร้างต้นแบบได้ง่ายราบรื่นและรวดเร็ว ทั้งหมดนี้เกิดขึ้นจากความเป็นมิตรต่อผู้ใช้ความเป็นโมดูลและความสามารถในการขยาย
รองรับทั้ง CNN (Convolutional Neural Networks) และ RNN (Recurrent Neural Networks) รวมทั้งการรวมกันของทั้งสองด้วย
ทำงานได้อย่างไม่มีที่ติทั้งบนหน่วยประมวลผลกลาง (CPU) และหน่วยประมวลผลกราฟิก (GPU)
สามารถทำงานบน GPU หนึ่งตัวหรือหลายตัว
ในการทำงานกับแบ็กเอนด์นี้ก่อนอื่นคุณต้องติดตั้ง keras-mxnet ดังนี้ -
pip install keras-mxnet
ตอนนี้หากคุณใช้ GPU ให้ติดตั้ง MXNet พร้อมรองรับ CUDA 9 ดังนี้ -
pip install mxnet-cu90
แต่ถ้าคุณใช้ CPU อย่างเดียวให้ติดตั้ง MXNet พื้นฐานดังนี้ -
pip install mxnet
MXBoard
MXBoard เป็นเครื่องมือบันทึกที่เขียนด้วย Python ซึ่งใช้ในการบันทึกเฟรมข้อมูล MXNet และแสดงใน TensorBoard กล่าวอีกนัยหนึ่ง MXBoard มีไว้เพื่อทำตาม Tensorboard-pytorch API รองรับประเภทข้อมูลส่วนใหญ่ใน TensorBoard
บางส่วนมีการกล่าวถึงด้านล่าง -
Graph
Scalar
Histogram
Embedding
Image
Text
Audio
Precision-Recall Curve
MXFusion
MXFusion เป็นไลบรารีการเขียนโปรแกรมความน่าจะเป็นแบบแยกส่วนพร้อมการเรียนรู้เชิงลึก MXFusion ช่วยให้เราใช้ประโยชน์จากโมดูลาร์ได้อย่างเต็มที่ซึ่งเป็นคุณสมบัติหลักของไลบรารีการเรียนรู้เชิงลึกสำหรับการเขียนโปรแกรมที่น่าจะเป็น ใช้งานง่ายและให้อินเทอร์เฟซที่สะดวกแก่ผู้ใช้สำหรับการออกแบบโมเดลที่น่าจะเป็นไปได้และนำไปใช้กับปัญหาในโลกแห่งความเป็นจริง
MXFusion ได้รับการยืนยันบน Python เวอร์ชัน 3.4 และอื่น ๆ บน MacOS และ Linux OS ในการติดตั้ง MXFusion เราต้องติดตั้งการอ้างอิงต่อไปนี้ก่อน -
MXNet> = 1.3
Networkx> = 2.1
ด้วยความช่วยเหลือของคำสั่ง pip ต่อไปนี้คุณสามารถติดตั้ง MXFusion -
pip install mxfusion
TVM
Apache TVM ซึ่งเป็นสแต็กคอมไพเลอร์การเรียนรู้เชิงลึกแบบ end-to-end แบบโอเพนซอร์สสำหรับฮาร์ดแวร์แบ็กเอนด์เช่นซีพียู GPU และตัวเร่งความเร็วพิเศษมีจุดมุ่งหมายเพื่อเติมเต็มช่องว่างระหว่างเฟรมเวิร์กการเรียนรู้เชิงลึกที่เน้นการผลิตและแบ็กเอนด์ฮาร์ดแวร์ที่เน้นประสิทธิภาพ . ด้วย MXNet 1.6.0 รุ่นล่าสุดผู้ใช้สามารถใช้ประโยชน์จาก Apache (การบ่มเพาะ) TVM เพื่อใช้เคอร์เนลตัวดำเนินการประสิทธิภาพสูงในภาษาโปรแกรม Python
Apache TVM เริ่มต้นจากโครงการวิจัยที่กลุ่ม SAMPL ของ Paul G.Alen School of Computer Science & Engineering, University of Washington และตอนนี้เป็นความพยายามอยู่ระหว่างการบ่มเพาะที่ The Apache Software Foundation (ASF) ซึ่งขับเคลื่อนโดย OSC ( ชุมชนโอเพ่นซอร์ส) ที่เกี่ยวข้องกับหลายอุตสาหกรรมและสถาบันการศึกษาภายใต้วิธีการของ Apache
ต่อไปนี้เป็นคุณสมบัติหลักของ Apache (ฟักตัว) TVM -
ลดความซับซ้อนของกระบวนการพัฒนาที่ใช้ C ++ ในอดีต
เปิดใช้งานการแชร์การใช้งานเดียวกันกับฮาร์ดแวร์หลายแบ็กเอนด์เช่น CPU, GPUs เป็นต้น
TVM ให้การรวบรวมโมเดล DL ในเฟรมเวิร์กต่างๆเช่น Kears, MXNet, PyTorch, Tensorflow, CoreML, DarkNet ในโมดูลที่ปรับใช้ขั้นต่ำได้บนแบ็กเอนด์ฮาร์ดแวร์ที่หลากหลาย
นอกจากนี้ยังให้โครงสร้างพื้นฐานแก่เราในการสร้างและเพิ่มประสิทธิภาพตัวดำเนินการเทนเซอร์โดยอัตโนมัติด้วยประสิทธิภาพที่ดีขึ้น
XFer
Xfer เฟรมเวิร์กการเรียนรู้การถ่ายโอนถูกเขียนด้วย Python โดยทั่วไปจะใช้โมเดล MXNet และฝึกโมเดลเมตาหรือปรับเปลี่ยนโมเดลสำหรับชุดข้อมูลเป้าหมายใหม่ด้วย
กล่าวง่ายๆคือ Xfer เป็นไลบรารี Python ที่ช่วยให้ผู้ใช้สามารถถ่ายโอนความรู้ที่เก็บไว้ใน DNN (deep neural networks) ได้อย่างรวดเร็วและง่ายดาย
สามารถใช้ Xfer -
สำหรับการจำแนกประเภทของข้อมูลในรูปแบบตัวเลขโดยพลการ
สำหรับกรณีทั่วไปของรูปภาพหรือข้อมูลข้อความ
เป็นไปป์ไลน์ที่สแปมจากการแยกคุณสมบัติไปจนถึงการฝึกอบรม repurposer (ออบเจ็กต์ที่ดำเนินการจัดหมวดหมู่ในงานเป้าหมาย)
ต่อไปนี้เป็นคุณสมบัติของ Xfer:
ประสิทธิภาพของทรัพยากร
ประสิทธิภาพของข้อมูล
เข้าถึงเครือข่ายประสาทเทียมได้ง่าย
การสร้างแบบจำลองที่ไม่แน่นอน
การสร้างต้นแบบอย่างรวดเร็ว
ยูทิลิตี้สำหรับการแยกคุณลักษณะจาก NN