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