Apache MXNet-툴킷 및 에코 시스템

여러 분야에서 딥 러닝 애플리케이션의 연구 및 개발을 지원하기 위해 Apache MXNet은 툴킷, 라이브러리 등의 풍부한 에코 시스템을 제공합니다. 그것들을 살펴 보자-

툴킷

다음은 MXNet에서 제공하는 가장 많이 사용되고 중요한 툴킷입니다.

GluonCV

이름에서 알 수 있듯이 GluonCV는 MXNet으로 구동되는 컴퓨터 비 전용 Gluon 툴킷입니다. 컴퓨터 비전 (CV)에서 최첨단 DL (딥 러닝) 알고리즘을 구현합니다. GluonCV 툴킷 엔지니어, 연구원 및 학생의 도움으로 새로운 아이디어를 검증하고 CV를 쉽게 배울 수 있습니다.

아래에 주어진 features of GluonCV

  • 최신 연구에서보고 된 최첨단 결과를 재현하기위한 스크립트를 훈련합니다.

  • 170 개 이상의 고품질 사전 학습 모델.

  • 유연한 개발 패턴을 수용하십시오.

  • GluonCV는 최적화하기 쉽습니다. 무거운 DL 프레임 워크를 유지하지 않고도 배포 할 수 있습니다.

  • 구현 복잡성을 크게 줄여주는 신중하게 설계된 API를 제공합니다.

  • 커뮤니티 지원.

  • 이해하기 쉬운 구현.

다음은 supported applications GluonCV 툴킷 :

  • 이미지 분류

  • 물체 감지

  • 시맨틱 분할

  • 인스턴스 분할

  • 포즈 추정

  • 비디오 동작 인식

다음과 같이 pip를 사용하여 GluonCV를 설치할 수 있습니다.

pip install --upgrade mxnet gluoncv

GluonNLP

이름에서 알 수 있듯이 GluonNLP는 MXNet에서 제공하는 NLP (Natural Language Processing) 용 Gluon 툴킷입니다. NLP에서 최첨단 DL (Deep Learning) 모델 구현을 제공합니다.

GluonNLP 툴킷 엔지니어, 연구원 및 학생의 도움으로 텍스트 데이터 파이프 라인 및 모델을위한 블록을 구축 할 수 있습니다. 이러한 모델을 기반으로 연구 아이디어와 제품의 프로토 타입을 신속하게 만들 수 있습니다.

다음은 GluonNLP의 일부 기능입니다.

  • 최신 연구에서보고 된 최첨단 결과를 재현하기위한 스크립트를 훈련합니다.

  • 일반적인 NLP 작업을위한 사전 훈련 된 모델 세트입니다.

  • 구현 복잡성을 크게 줄여주는 신중하게 설계된 API를 제공합니다.

  • 커뮤니티 지원.

  • 또한 새로운 NLP 작업을 시작하는 데 도움이되는 자습서를 제공합니다.

다음은 GluonNLP 툴킷으로 구현할 수있는 NLP 작업입니다.

  • 단어 삽입

  • 언어 모델

  • 기계 번역

  • 텍스트 분류

  • 감정 분석

  • 자연어 추론

  • 텍스트 생성

  • 종속성 구문 분석

  • 명명 된 엔티티 인식

  • 의도 분류 및 슬롯 레이블링

다음과 같이 pip를 사용하여 GluonNLP를 설치할 수 있습니다.

pip install --upgrade mxnet gluonnlp

GluonTS

이름에서 알 수 있듯이 GluonTS는 MXNet에서 제공하는 확률 적 시계열 모델링을위한 Gluon 툴킷입니다.

그것은 다음과 같은 기능을 제공합니다-

  • 훈련 준비가 된 최첨단 (SOTA) 딥 러닝 모델.

  • 시계열 데이터 세트에 대한로드 및 반복을위한 유틸리티입니다.

  • 자신의 모델을 정의하기위한 빌딩 블록.

GluonTS 툴킷 엔지니어의 도움으로 연구원 및 학생은 자체 데이터에 대해 내장 된 모델을 교육 및 평가하고 다양한 솔루션을 빠르게 실험하고 시계열 작업에 대한 솔루션을 찾을 수 있습니다.

또한 제공된 추상화 및 빌딩 블록을 사용하여 사용자 지정 시계열 모델을 만들고 기준 알고리즘에 대해 빠르게 벤치마킹 할 수 있습니다.

다음과 같이 pip를 사용하여 GluonTS를 설치할 수 있습니다.

pip install gluonts

GluonFR

이름에서 알 수 있듯이 FR (Face Recognition) 용 Apache MXNet Gluon 툴킷입니다. 그것은 다음과 같은 기능을 제공합니다-

  • 얼굴 인식의 최첨단 (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, Intel AI 연구소에서 만든 Python RL (강화 학습) 프레임 워크입니다. 최첨단 RL 알고리즘으로 쉽게 실험 할 수 있습니다. Coach RL은 Apache MXNet을 백엔드로 지원하며 새로운 환경을 간단하게 통합하여 해결할 수 있습니다.

기존 구성 요소를 쉽게 확장하고 재사용하기 위해 Coach RL은 알고리즘, 환경, NN 아키텍처, 탐색 정책과 같은 기본 강화 학습 구성 요소를 매우 잘 분리했습니다.

다음은 Coach RL 프레임 워크에 대한 에이전트 및 지원되는 알고리즘입니다.

가치 최적화 에이전트

  • Deep Q 네트워크 (DQN)

  • DDQN (Double Deep Q Network)

  • 듀얼 링 Q 네트워크

  • 혼합 몬테카를로 (MMC)

  • Persistent Advantage Learning (PAL)

  • 범주 형 딥 Q 네트워크 (C51)

  • Quantile Regression Deep Q Network (QR-DQN)

  • N-Step Q 학습

  • 신경 에피소드 제어 (NEC)

  • 정규화 된 이점 함수 (NAF)

  • Rainbow

정책 최적화 에이전트

  • 정책 그라디언트 (PG)

  • A3C (Asynchronous Advantage Actor-Critic)

  • DDPG (Deep Deterministic Policy Gradients)

  • 근위 정책 최적화 (PPO)

  • 클리핑 된 근접 정책 최적화 (CPPO)

  • 일반화 된 이점 추정 (GAE)

  • Experience Replay (ACER)를 통한 효율적인 배우 비평가 샘플

  • 연약한 배우 비평가 (SAC)

  • TD3 (Twin Delayed Deep Deterministic Policy Gradient)

일반 요원

  • 직접 미래 예측 (DFP)

모방 학습 에이전트

  • 행동 복제 (BC)

  • 조건부 모방 학습

계층 적 강화 학습 에이전트

  • 계층 적 배우 비평가 (HAC)

딥 그래프 라이브러리

NYU 및 AWS 팀 상하이에서 개발 한 DGL (Deep Graph Library)은 MXNet을 기반으로 GNN (Graph Neural Network)을 쉽게 구현할 수있는 Python 패키지입니다. 또한 PyTorch, Gluon 등과 같은 기존의 다른 주요 딥 러닝 라이브러리 위에 GNN을 쉽게 구현할 수 있습니다.

Deep Graph Library는 무료 소프트웨어입니다. Ubuntu 16.04, macOS X 및 Windows 7 이상 이후의 모든 Linux 배포에서 사용할 수 있습니다. 또한 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

MXNet으로 구동되는 컴퓨터 비전에서 SOTA (최신) 얼굴 분석 알고리즘의 구현을 제공하는 얼굴 분석 용 딥 러닝 툴킷 인 InsightFace. 그것은 제공합니다-

  • 사전 훈련 된 고품질 대형 모델 세트.

  • 최첨단 (SOTA) 교육 스크립트.

  • InsightFace는 최적화하기 쉽습니다. 무거운 DL 프레임 워크를 유지하지 않고도 배포 할 수 있습니다.

  • 구현 복잡성을 크게 줄여주는 신중하게 설계된 API를 제공합니다.

  • 자신의 모델을 정의하기위한 빌딩 블록.

다음과 같이 pip를 사용하여 InsightFace를 설치할 수 있습니다.

pip install --upgrade insightface

InsightFace를 설치하기 전에 시스템 구성에 따라 올바른 MXNet 패키지를 설치하십시오.

Keras-MXNet

Keras가 Python으로 작성된 고수준 신경망 (NN) API라는 것을 알고 있듯이 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를 사용하는 경우 다음과 같이 CUDA 9를 지원하는 MXNet을 설치하십시오.

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

  • 정밀도-재현율 곡선

MXFusion

MXFusion은 딥 러닝이 포함 된 모듈 식 확률 프로그래밍 라이브러리입니다. MXFusion을 사용하면 확률 적 프로그래밍을 위해 딥 러닝 라이브러리의 핵심 기능인 모듈성을 완전히 활용할 수 있습니다. 사용하기 쉽고 사용자에게 확률 모델을 설계하고이를 실제 문제에 적용 할 수있는 편리한 인터페이스를 제공합니다.

MXFusion은 MacOS 및 Linux OS의 Python 버전 3.4 이상에서 확인되었습니다. MXFusion을 설치하려면 먼저 다음 종속성을 설치해야합니다.

  • MXNet> = 1.3

  • Networkx> = 2.1

다음 pip 명령의 도움으로 MXFusion을 설치할 수 있습니다-

pip install mxfusion

TVM

CPU, GPU 및 특수 가속기와 같은 하드웨어 백엔드를위한 오픈 소스 엔드-투-엔드 딥 러닝 컴파일러 스택 인 Apache TVM은 생산성 중심의 딥 러닝 프레임 워크와 성능 중심의 하드웨어 백엔드 간의 격차를 메우는 것을 목표로합니다. . 최신 릴리스 MXNet 1.6.0을 통해 사용자는 Apache (incubating) TVM을 활용하여 Python 프로그래밍 언어로 고성능 운영자 커널을 구현할 수 있습니다.

Apache TVM은 실제로 워싱턴 대학에있는 Paul G. Allen 컴퓨터 과학 및 공학 학교의 SAMPL 그룹에서 연구 프로젝트로 시작했으며 현재 OSC (Apache Software Foundation)에서 운영하는 ASF (Apache Software Foundation)에서 인큐베이션을 진행하고 있습니다. 오픈 소스 커뮤니티)는 Apache 방식의 여러 산업 및 학술 기관을 포함합니다.

다음은 Apache (incubating) TVM의 주요 기능입니다.

  • 이전 C ++ 기반 개발 프로세스를 단순화합니다.

  • CPU, GPU 등과 같은 여러 하드웨어 백엔드에서 동일한 구현을 공유 할 수 있습니다.

  • TVM은 Kears, MXNet, PyTorch, Tensorflow, CoreML, DarkNet과 같은 다양한 프레임 워크의 DL 모델을 다양한 하드웨어 백엔드에 배포 가능한 최소 모듈로 컴파일합니다.

  • 또한 더 나은 성능으로 텐서 연산자를 자동으로 생성하고 최적화 할 수있는 인프라를 제공합니다.

XFer

전이 학습 프레임 워크 인 Xfer는 Python으로 작성되었습니다. 기본적으로 MXNet 모델을 사용하고 메타 모델을 학습하거나 새 대상 데이터 세트에 대한 모델을 수정합니다.

간단히 말해서 Xfer는 사용자가 DNN (심층 신경망)에 저장된 지식을 빠르고 쉽게 전송할 수있는 Python 라이브러리입니다.

Xfer를 사용할 수 있습니다-

  • 임의의 숫자 형식의 데이터 분류 용.

  • 이미지 또는 텍스트 데이터의 일반적인 경우.

  • 기능 추출에서 재목 적자 (대상 작업에서 분류를 수행하는 개체)를 교육하기 위해 스팸을 보내는 파이프 라인으로 사용됩니다.

다음은 Xfer의 기능입니다.

  • 자원 효율성

  • 데이터 효율성

  • 신경망에 쉽게 액세스

  • 불확실성 모델링

  • 신속한 프로토 타입

  • NN에서 기능 추출을위한 유틸리티