Apache MXNet - Bộ công cụ và Hệ sinh thái

Để hỗ trợ việc nghiên cứu và phát triển các ứng dụng Deep Learning trên nhiều lĩnh vực, Apache MXNet cung cấp cho chúng tôi một hệ sinh thái phong phú gồm các bộ công cụ, thư viện và nhiều hơn nữa. Hãy để chúng tôi khám phá chúng -

Bộ dụng cụ

Sau đây là một số bộ công cụ quan trọng và được sử dụng nhiều nhất do MXNet cung cấp -

GluonCV

Như tên của nó GluonCV là một bộ công cụ Gluon cho thị giác máy tính được cung cấp bởi MXNet. Nó cung cấp triển khai các thuật toán DL (Học sâu) hiện đại nhất trong thị giác máy tính (CV). Với sự trợ giúp của các kỹ sư, nhà nghiên cứu và sinh viên của bộ công cụ GluonCV có thể xác nhận các ý tưởng mới và tìm hiểu CV một cách dễ dàng.

Dưới đây là một số features of GluonCV -

  • Nó đào tạo các tập lệnh để tái tạo các kết quả hiện đại được báo cáo trong nghiên cứu mới nhất.

  • Hơn 170+ mô hình chất lượng cao.

  • Nắm bắt mô hình phát triển linh hoạt.

  • GluonCV rất dễ tối ưu hóa. Chúng tôi có thể triển khai nó mà không cần giữ lại khung DL nặng.

  • Nó cung cấp các API được thiết kế cẩn thận giúp giảm bớt sự phức tạp khi triển khai.

  • Sự đóng góp cho cộng đồng.

  • Cách triển khai dễ hiểu.

Sau đây là supported applications bởi bộ công cụ GluonCV:

  • Phân loại hình ảnh

  • Phát hiện đối tượng

  • Phân đoạn ngữ nghĩa

  • Phân đoạn phiên bản

  • Ước tính tư thế

  • Nhận dạng hành động video

Chúng ta có thể cài đặt GluonCV bằng cách sử dụng pip như sau:

pip install --upgrade mxnet gluoncv

GluonNLP

Như tên của nó GluonNLP là một bộ công cụ Gluon để xử lý ngôn ngữ tự nhiên (NLP) được cung cấp bởi MXNet. Nó cung cấp việc triển khai các mô hình DL (Học sâu) tiên tiến trong NLP.

Với sự trợ giúp của các kỹ sư, nhà nghiên cứu và sinh viên bộ công cụ GluonNLP có thể xây dựng các khối cho mô hình và đường ống dẫn dữ liệu văn bản. Dựa trên các mô hình này, họ có thể nhanh chóng tạo mẫu cho các ý tưởng và sản phẩm nghiên cứu.

Dưới đây là một số tính năng của GluonNLP:

  • Nó đào tạo các tập lệnh để tái tạo các kết quả hiện đại được báo cáo trong nghiên cứu mới nhất.

  • Tập hợp các mô hình được đào tạo trước cho các nhiệm vụ NLP phổ biến.

  • Nó cung cấp các API được thiết kế cẩn thận giúp giảm bớt sự phức tạp khi triển khai.

  • Sự đóng góp cho cộng đồng.

  • Nó cũng cung cấp các hướng dẫn để giúp bạn bắt đầu với các nhiệm vụ NLP mới.

Sau đây là các tác vụ NLP mà chúng ta có thể thực hiện với bộ công cụ GluonNLP -

  • Nhúng từ

  • Mô hình ngôn ngữ

  • Dịch máy

  • Phân loại văn bản

  • Phân tích tình cảm

  • Suy luận ngôn ngữ tự nhiên

  • Tạo văn bản

  • Phân tích cú pháp phụ thuộc

  • Nhận dạng đối tượng được đặt tên

  • Phân loại ý định và ghi nhãn vị trí

Chúng ta có thể cài đặt GluonNLP bằng cách sử dụng pip như sau:

pip install --upgrade mxnet gluonnlp

GluonTS

Như tên của nó, GluonTS là một bộ công cụ Gluon dành cho Lập mô hình chuỗi thời gian xác suất được cung cấp bởi MXNet.

Nó cung cấp các tính năng sau:

  • Các mô hình học sâu hiện đại (SOTA) sẵn sàng được đào tạo.

  • Các tiện ích để tải cũng như lặp qua các tập dữ liệu chuỗi thời gian.

  • Các khối xây dựng để xác định mô hình của riêng bạn.

Với sự trợ giúp của các kỹ sư bộ công cụ GluonTS, các nhà nghiên cứu và sinh viên có thể đào tạo và đánh giá bất kỳ mô hình tích hợp nào trên dữ liệu của riêng họ, nhanh chóng thử nghiệm các giải pháp khác nhau và đưa ra giải pháp cho các nhiệm vụ chuỗi thời gian của họ.

Họ cũng có thể sử dụng các khối xây dựng và trừu tượng được cung cấp để tạo các mô hình chuỗi thời gian tùy chỉnh và nhanh chóng đánh giá chúng theo các thuật toán cơ sở.

Chúng ta có thể cài đặt GluonTS bằng cách sử dụng pip như sau:

pip install gluonts

GluonFR

Như tên của nó, nó là một bộ công cụ Apache MXNet Gluon cho FR (Nhận dạng khuôn mặt). Nó cung cấp các tính năng sau:

  • Mô hình học sâu hiện đại (SOTA) trong nhận dạng khuôn mặt.

  • Việc triển khai SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss, RingLoss, CosLoss / AMsoftmax, L2-Softmax, A-Softmax, CenterLoss, ContrastiveLoss và LGM Loss, v.v.

Để cài đặt Gluon Face, chúng ta cần Python 3.5 trở lên. Trước tiên, chúng ta cũng cần cài đặt GluonCV và MXNet như sau:

pip install gluoncv --pre
pip install mxnet-mkl --pre --upgrade
pip install mxnet-cuXXmkl --pre –upgrade # if cuda XX is installed

Sau khi cài đặt các phụ thuộc, bạn có thể sử dụng lệnh sau để cài đặt GluonFR:

From Source

pip install git+https://github.com/THUFutureLab/gluon-face.git@master

Pip

pip install gluonfr

Hệ sinh thái

Bây giờ chúng ta hãy khám phá các thư viện, gói và khuôn khổ phong phú của MXNet -

Huấn luyện viên RL

Coach, một khung học tập củng cố Python (RL) được tạo bởi phòng thí nghiệm AI của Intel. Nó cho phép thử nghiệm dễ dàng với các thuật toán RL hiện đại. Coach RL hỗ trợ Apache MXNet như một phần mềm hỗ trợ và cho phép tích hợp đơn giản môi trường mới để giải quyết.

Để mở rộng và sử dụng lại các thành phần hiện có một cách dễ dàng, Coach RL đã tách rất tốt các thành phần học tăng cường cơ bản như thuật toán, môi trường, kiến ​​trúc NN, chính sách khám phá.

Sau đây là các tác nhân và thuật toán được hỗ trợ cho khung Coach RL:

Đại lý tối ưu hóa giá trị

  • Mạng Q sâu (DQN)

  • Mạng Double Deep Q (DDQN)

  • Dueling Q Network

  • Monte Carlo hỗn hợp (MMC)

  • Học tập lợi thế liên tục (PAL)

  • Mạng Q sâu Categorical (C51)

  • Hồi quy lượng tử Deep Q Network (QR-DQN)

  • Học N-Step Q

  • Kiểm soát giai đoạn thần kinh (NEC)

  • Chức năng lợi thế chuẩn hóa (NAF)

  • Rainbow

Đại lý tối ưu hóa chính sách

  • Thành viên chính sách (PG)

  • Diễn viên-phê bình lợi thế không đồng bộ (A3C)

  • Trọng tài chính sách xác định sâu (DDPG)

  • Tối ưu hóa chính sách gần (PPO)

  • Tối ưu hóa chính sách gần đã được cắt bớt (CPPO)

  • Ước tính lợi thế chung (GAE)

  • Mẫu-Phê bình diễn viên hiệu quả với tính năng phát lại trải nghiệm (ACER)

  • Diễn viên mềm-Phê bình (SAC)

  • Dốc chính sách xác định sâu song song bị trì hoãn (TD3)

Tổng đại lý

  • Dự đoán tương lai trực tiếp (DFP)

Đại lý học bắt chước

  • Nhân bản hành vi (BC)

  • Học bắt chước có điều kiện

Tác nhân học tập củng cố thứ bậc

  • Nhà phê bình diễn viên phân cấp (HAC)

Thư viện đồ thị sâu

Thư viện đồ thị sâu (DGL), được phát triển bởi nhóm NYU và AWS, Thượng Hải, là một gói Python cung cấp các triển khai dễ dàng của Mạng thần kinh đồ thị (GNN) trên MXNet. Nó cũng cung cấp khả năng triển khai dễ dàng GNN trên các thư viện học sâu hiện có khác như PyTorch, Gluon, v.v.

Thư viện Deep Graph là một phần mềm miễn phí. Nó có sẵn trên tất cả các bản phân phối Linux sau Ubuntu 16.04, macOS X và Windows 7 trở lên. Nó cũng yêu cầu phiên bản Python 3.5 trở lên.

Sau đây là các tính năng của DGL -

No Migration cost - Không có chi phí di chuyển khi sử dụng DGL vì nó được xây dựng dựa trên các khuôn khổ DL thoát phổ biến.

Message Passing- DGL cung cấp khả năng truyền thông điệp và nó có khả năng kiểm soát linh hoạt đối với nó. Việc truyền thông báo có phạm vi từ các hoạt động cấp thấp như gửi dọc theo các cạnh đã chọn đến kiểm soát cấp cao như cập nhật tính năng trên toàn đồ thị.

Smooth Learning Curve - Nó khá dễ dàng để học và sử dụng DGL vì các chức năng mạnh mẽ do người dùng định nghĩa rất linh hoạt cũng như dễ sử dụng.

Transparent Speed Optimization - DGL cung cấp khả năng tối ưu hóa tốc độ minh bạch bằng cách thực hiện các phép tính tự động và nhân ma trận thưa thớt.

High performance - Để đạt được hiệu quả tối đa, DGL tự động đào tạo hàng loạt DNN (mạng nơ ron sâu) trên một hoặc nhiều đồ thị với nhau.

Easy & friendly interface - DGL cung cấp cho chúng ta giao diện dễ dàng và thân thiện để truy cập tính năng cạnh cũng như thao tác cấu trúc đồ thị.

InsightFace

InsightFace, một Bộ công cụ học tập sâu cho Phân tích khuôn mặt cung cấp việc triển khai thuật toán phân tích khuôn mặt SOTA (hiện đại) trong thị giác máy tính do MXNet cung cấp. Nó cung cấp -

  • Bộ mô hình lớn chất lượng cao được đào tạo trước.

  • Các kịch bản đào tạo hiện đại (SOTA).

  • InsightFace rất dễ tối ưu hóa. Chúng tôi có thể triển khai nó mà không cần giữ lại khung DL nặng.

  • Nó cung cấp các API được thiết kế cẩn thận giúp giảm bớt sự phức tạp khi triển khai.

  • Các khối xây dựng để xác định mô hình của riêng bạn.

Chúng ta có thể cài đặt InsightFace bằng cách sử dụng pip như sau:

pip install --upgrade insightface

Xin lưu ý rằng trước khi cài đặt InsightFace, hãy cài đặt đúng gói MXNet theo cấu hình hệ thống của bạn.

Keras-MXNet

Như chúng ta biết rằng Keras là một API Mạng Nơ-ron (NN) cấp cao được viết bằng Python, Keras-MXNet cung cấp cho chúng ta một hỗ trợ phụ trợ cho Keras. Nó có thể chạy trên khung công tác Apache MXNet DL hiệu suất cao và có thể mở rộng.

Các tính năng của Keras-MXNet được đề cập dưới đây:

  • Cho phép người dùng tạo mẫu dễ dàng, mượt mà và nhanh chóng. Tất cả đều xảy ra thông qua tính thân thiện với người dùng, tính mô-đun và khả năng mở rộng.

  • Hỗ trợ cả CNN (Mạng nơ ron chuyển đổi) và RNN (Mạng nơ ron định kỳ) cũng như sự kết hợp của cả hai.

  • Chạy hoàn hảo trên cả Bộ xử lý trung tâm (CPU) và Bộ xử lý đồ họa (GPU).

  • Có thể chạy trên một hoặc nhiều GPU.

Để làm việc với phụ trợ này, trước tiên bạn cần cài đặt keras-mxnet như sau:

pip install keras-mxnet

Bây giờ, nếu bạn đang sử dụng GPU, hãy cài đặt MXNet với hỗ trợ CUDA 9 như sau:

pip install mxnet-cu90

Nhưng nếu bạn chỉ sử dụng CPU thì hãy cài đặt MXNet cơ bản như sau:

pip install mxnet

MXBoard

MXBoard là công cụ ghi nhật ký, được viết bằng Python, được sử dụng để ghi lại các khung dữ liệu MXNet và hiển thị trong TensorBoard. Nói cách khác, MXBoard có nghĩa là tuân theo API tensorboard-pytorch. Nó hỗ trợ hầu hết các kiểu dữ liệu trong TensorBoard.

Một số trong số chúng được đề cập dưới đây -

  • Graph

  • Scalar

  • Histogram

  • Embedding

  • Image

  • Text

  • Audio

  • Đường cong thu hồi chính xác

MXFusion

MXFusion là một thư viện lập trình xác suất theo mô-đun với tính năng học sâu. MXFusion cho phép chúng tôi khai thác tối đa tính năng mô-đun, đây là một tính năng chính của thư viện học sâu, để lập trình xác suất. Nó dễ sử dụng và cung cấp cho người dùng một giao diện thuận tiện để thiết kế các mô hình xác suất và áp dụng chúng vào các bài toán trong thế giới thực.

MXFusion được xác minh trên Python phiên bản 3.4 trở lên trên MacOS và Linux OS. Để cài đặt MXFusion, trước tiên chúng ta cần cài đặt các phần phụ thuộc sau:

  • MXNet> = 1,3

  • Networkx> = 2.1

Với sự trợ giúp của lệnh pip sau, bạn có thể cài đặt MXFusion -

pip install mxfusion

TVM

Apache TVM, một ngăn xếp trình biên dịch học sâu mã nguồn mở end-to-end dành cho phần cứng-phụ trợ như CPU, GPU và các bộ tăng tốc chuyên dụng, nhằm mục đích lấp đầy khoảng cách giữa khung học sâu tập trung vào năng suất và phần cứng phụ trợ phần cứng định hướng hiệu suất . Với bản phát hành mới nhất MXNet 1.6.0, người dùng có thể tận dụng Apache (đang ấp ủ) TVM để triển khai các nhân toán tử hiệu suất cao bằng ngôn ngữ lập trình Python.

Apache TVM thực sự bắt đầu như một dự án nghiên cứu tại nhóm SAMPL của Trường Khoa học Máy tính & Kỹ thuật Paul G. Allen, Đại học Washington và bây giờ nó là một nỗ lực đang được ươm tạo tại Tổ chức Phần mềm Apache (ASF) được điều hành bởi một OSC ( cộng đồng mã nguồn mở) liên quan đến nhiều ngành cũng như các tổ chức học thuật theo cách Apache.

Sau đây là các tính năng chính của Apache (ươm tạo) TVM:

  • Đơn giản hóa quy trình phát triển dựa trên C ++ trước đây.

  • Cho phép chia sẻ cùng một triển khai trên nhiều phần cứng phụ trợ như CPU, GPU, v.v.

  • TVM cung cấp biên dịch các mô hình DL trong nhiều khuôn khổ khác nhau như Kears, MXNet, PyTorch, Tensorflow, CoreML, DarkNet thành các mô-đun có thể triển khai tối thiểu trên các phần cứng phần cứng đa dạng.

  • Nó cũng cung cấp cho chúng tôi cơ sở hạ tầng để tự động tạo và tối ưu hóa các nhà khai thác tensor với hiệu suất tốt hơn.

XFer

Xfer, một khung học tập chuyển giao, được viết bằng Python. Về cơ bản, nó cần có một mô hình MXNet và đào tạo một mô hình meta hoặc sửa đổi mô hình cho một tập dữ liệu mục tiêu mới.

Nói một cách dễ hiểu, Xfer là một thư viện Python cho phép người dùng truyền nhanh chóng và dễ dàng kiến ​​thức được lưu trữ trong DNN (mạng nơ ron sâu).

Xfer có thể được sử dụng -

  • Đối với việc phân loại dữ liệu có định dạng số tùy ý.

  • Đối với các trường hợp phổ biến của hình ảnh hoặc dữ liệu văn bản.

  • Là một đường ống gửi thư rác từ việc trích xuất các tính năng để đào tạo một repurposer (một đối tượng thực hiện phân loại trong nhiệm vụ đích).

Sau đây là các tính năng của Xfer:

  • Hiệu quả tài nguyên

  • Hiệu quả dữ liệu

  • Dễ dàng truy cập vào mạng nơ-ron

  • Mô hình không chắc chắn

  • Tạo mẫu nhanh

  • Các tiện ích để trích xuất tính năng từ NN