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