マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】MXNet

【OSS情報アーカイブ】MXNet

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「MXNet」とは

「MXNet」基本情報

■概要

MXNet(エムエックスネット)とは、「効率」と「柔軟性」を両立したディープラーニングフレームワークです。AWSが公式サポートを表明したことで大きな注目を集めています。

■基本説明

MXNetはフル機能のディープラーニングフレームワークです。「柔軟」「スケーラブル」「効率性」などを特徴とします。

最先端のディープラーニング技術「畳み込みニューラルネットワーク(CNN)」「長短期メモリネットワーク(LSTM)」などをサポートします。

クラウド環境からモバイルデバイスまでの幅広いデバイスに対応し、ディープニューラルネットワークの定義/トレーニング/展開が可能です。

■経緯

MXNetは、当初、ワシントン大学とカーネギーメロン大学によって、「畳み込みニューラルネットワーク(CNN)」と「長短期メモリネットワーク(LSTM)」をサポートするために開発が始まりました。
・2016年11月、AWSがMXNetの公式サポートを表明
・2017年02月、MXNetが「Apache Incubator」に認定

■オフィシャルサイト情報

オフィシャルサイト

→MXNet(MXNet: A Scalable Deep Learning Framework)

ライセンス情報

MXNetのライセンスは「Apache License 2.0」です。

詳細について、こちらを参照ください。
→GitHub →apache/incubator-mxnet →LICENSE

ダウンロード

→MXNet →Installing MXNet

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「TensorFlow」「​Chainer」「Caffe」「Theano」など。

「MXNet」の主な特徴

■豊富な深層学習モデルのサポート

MXNetは、以下のように広範なディープラーニングモデルをサポートしています。
・CNN(畳み込みニューラルネットワーク)
・LSTM(長短期メモリネットワーク)
・RCNN(物体検出アルゴリズム)
・Deep Q Network(強化学習手法「Q-learning」+ディープニューラルネット)

適応範囲は、「画像認識」「自然言語処理」「レコメンド生成」など幅広い用途で利用されています。

■スケーラビリティ

MXNetは、コンピュータリソースを追加すればするだけ処理能力が向上する設計になっています。

「リソースを追加するだけ」で処理能力を高められる点に期待が集まっています。

■高速性

バックエンドエンジンはC++で実装されており、「I/O」と「計算処理」の両方が並列処理されます。使用されているプログラミング言語にかかわらず最適なパフォーマンスを発揮できます。

■多言語対応

MXNetは多くの言語をサポートしています。
・Python
・C++
・R
・Scala
・Java
・Julia
・Matlab
・JavaScript

■柔軟なプログラミングモデル(命令的/宣言的プログラムの混合)

MXNetでは、どのように計算するかを指示する「命令的プログラム」と、どうなるべきかを定義する「宣言的プログラム」を併用できます。これは、主要ディープラーニングフレームワークの中ではMXNetだけが持っている特徴で、効率性と生産性を向上できます。

MXNetは「命令的プログラム」と「宣言的プログラム」の両方を自動的に並列処理します。

■マルチプラットフォーム

MXNetは、さまざまなデバイス/プラットフォームに対応しています。スマートフォンに対しても対応できます。
・CPUベース
・GPUベース
・クラスタ環境
・サーバ環境
・デスクトップPC環境
・スマートフォン(Android、iOS)

対応OSは次の通りです。
・Ubuntu/Debian
・MacOS
・Windows

■メモリ効率性

メモリ効率にも優れていて、1000層の深いネットワークでも、4GB程度のメモリしか消費しません。

■リファレンスサンプルライブラリ

コード付きのサンプルチュートリアルが用意されています。

「画像分類」「言語モデリング」「ニューラルアート」「音声認識」などについて参照できます。

MXNet参考情報①MXNetとは(入門編)

ディープラーニングライブラリ「MXNet」の概要を紹介するサイトを紹介します。

■AWSサイト

概要

AWSサイトで、MXNetについて「MXNet を使用した深層学習の利点」として解説されています。

解説テーマ

・GLUON による使いやすさ
・さらに優れたパフォーマンス
・IOT およびエッジ向け
・柔軟性と選択肢

ページリンク

→AWS →AWS での Apache MXNet

■MXNet入門

概要

MXNetの概要/特徴などを含めて、チュートリアルや各環境での使い方など、MXNetの全体像が分かるように解説されています。

解説テーマ

・MXNet とは
・概要
・特徴
・スケーラビリティ
・豊富な対応言語
・軽量かつ高い可搬性
・命令的 / 宣言的プログラムの混合
・豊富な深層学習モデルのサポート
・使い方
・インストール
・チュートリアル

ページリンク

→Qiita →MXNet 入門

MXNet参考情報②MXNetのインストール

MXNet参考情報②MXNetのインストール

各環境にMXNetをインストールする方法を紹介します。

■Linux(Ubuntu)編

概要

Deep3Dに対応させた「MXNet 0.7.0」を「Ubuntu 14.04」にインストールする手順がまとめられています。

解説テーマ

・MXNetのビルド
・Python用MXNetのセットアップ

ページリンク

→SoraLab →MXNet →Deep3Dに対応させたMXNet 0.7.0をインストールしてみた

■Windows編

概要

Windows10にMXNetをインストールする手順です。

インストールから、モデル生成/学習/実行までがまとめられています。

解説テーマ

・インストール
・ソースコード
・ログ出力
・ネットワーク定義
・実行結果

ページリンク

→Qiita →MXNetでXORを学習する

■Mac編

概要

「MacOS Sierra」へのインストール手順メモです。

ポニーやゾウの画像認識結果もあります。

解説テーマ

・mac デフォルトのpythonだとうまくいかなかったので、brew でインストールする。
・opencv をインストール
・描画ツールが入ってないと怒られたのでインストール
・肝心のmxnet-ssdをclone
・configを変えないとコンパイルできなかったので、下記のように変更
・makeする
・デモを走らせる(cpuオプションをつけないとgpuで処理しようとしてエラーになる)

ページリンク

→I* HACK! ウェブ関連のタレコミ →Mac OSにmxnet-ssdをインストールして、ディープラーニングに触ってみた

■クラウド(AWS)Docker編

概要

AWSでECS(Amazon EC2 Container Service)を使用して、DockerコンテナでMXNetを立ち上げて処理をする内容です。

AWSのスクリーンショット付きで、分かりやすく手順が説明されています。

解説テーマ

・MXNetとは
・今回やること
・ECSクラスタの準備
・インスタンスの準備
・MXNetコンテナの作成と登録
・コンテナデプロイとDeep learning実行

ページリンク

→Qiita →MXNetをECSを用いてDockerコンテナとしてデプロイする

MXNet参考情報③MXNetのチュートリアル

MXNet参考情報③MXNetのチュートリアル

数多く用意されているMXNetチュートリアルの使い方や解説について紹介します。

■オフィシャルサイト チュートリアル

概要

各言語用チュートリアルがまとめられています。

解説テーマ

・Python Tutorials
・Scala Tutorials
・Java Tutorials
・C++ Tutorials
・R Tutorials
・Perl Tutorials

ページリンク

→MXNet →Tutorials

■サクッと始めるMXNetチュートリアル

概要

Dockerコンテナを使用してMXNetチュートリアルを実行する方法について解説されています。

解説テーマ

1. Docker コンテナの起動
2. コンテナ内で Jupyter を起動
3. ブラウザでアクセス
4. 目的の .ipynb を開く
4.1. MNIST の手書き推論
4.2. CNN によるテキスト分類

ページリンク

→Qiita →サクッと始める MXNet チュートリアル

MXNet参考情報④MXNetの実装事例

MXNet参考情報④MXNetの実装事例

MXNetを利用した実装事例(物体検出、3次元画像変換、画風変換、CNNなど)について紹介します。

■物体検出

概要

MXNet実装「mxnet-ssd」での物体検出モデル作成がまとめられています。

「mxnet-SSD(Single Shot MultiBox Object Detector)」とは、単一ネットワークでのオブジェクト検出フレームワークです。オブジェクト検出タスクのトレーニング/評価/テストを行えます。

トレーニング用データセットとして「PASCAL VOC2007」を利用しています。

解説テーマ

・物体検出
・物体検出モデルの作成

ページリンク

→SoraLab →MXNet →Single Shot MultiBox DetectorのMXNet実装で物体検出モデルを作成してみた

■3次元画像変換

概要

MXNetのDeep3Dを利用して「2次元画像を3次元画像に変換する方法」についてまとめられています。

解説テーマ

・Deep3D
・2D・3D変換

ページリンク

→SoraLab →MXNet →MXNetのDeep3Dで画像の2D・3D変換を試してみた

■画風変換

概要

MXNetを利用して「Neural Art」による画風変換を行なう例です。

「ポメラニアン」画像を「ゴッホのひまわり」風に変換しています。

解説テーマ

・MXNet
・Neural Artによる画風変換
・ポメラニアン × ゴッホの『ひまわり』

ページリンク

→SoraLab →MXNet →MXNetのNeural Artで画風を変換してみた

■畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)

概要

MXNetのRパッケージでMNISTショートバージョンの分類タスクを試している例です。

解説テーマ

・Convolutional Neural Network (CNN)とは
・MXnetのRパッケージ{mxnet}で手持ちのMNISTショートバージョンの分類タスクを試してみる
・インストール
・データセットの準備
・Deep Neural Network (DNN)で試してみる
・Convolutional Neural Network (CNN)で試してみる
・他手法との比較

ページリンク

→六本木で働くデータサイエンティストのブログ →Deep Learningライブラリ{mxnet}のR版でConvolutional Neural Networkをサクッと試してみた(追記3件あり)

■オンラインニュース記事の人気度分析

概要

「あるサイトに掲載されたオンラインニュース記事が、それぞれどの程度シェアされたのか?」について、ディープラーニングで回帰処理を行っている例です。

解説テーマ

・下準備
・ベンチマーク(L1正則化回帰&ランダムフォレスト)
・MXnetでDNNを組んで回してみる
・MXnetで手動で試行錯誤する
・ベイズ最適化でチューニングを効率良く進める
・最後に

ページリンク

→六本木で働くデータサイエンティストのブログ →Deep Learningで遊ぶ(2): オンラインニュース人気度+ベイズ最適化によるパラメータチューニング

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

【トレンド解説】超入門「 スマートファクトリー 」🏭

トレンド解説

2024.04.15

【トレンド解説】超入門「 スマートファクトリー 」🏭

「 スマートファクトリー 」への理解を深めるための解説として、初心者向けにわかりやすくまとめた記事です。「新しい工場の概念」「デジタルツインの活用」「IoT技術による最適化」など、現代の製造業に必要な知識を効果的に学べます。 スマートファクトリー の導入によるメリットを具体的に解説しています。