MXNetとは?多言語で使える深層学習ライブラリの概要と導入方法

こんにちは! 侍エンジニアブログ編集部のフクロウです。

侍エンジニアブログで、Deep Learningフレームワークについての記事を以前公開しました。

この記事でも紹介した、MXNetというDeep Learningフレームワーク、知っていますか? 最近データ解析コンペティションでじわじわと人気が出てきているMXNet。

データ解析のプロになりたいなら必見のフレームワークです。この記事でMXNetの概要と導入方法を覚えて入門しちゃいましょう!

目次

MXNetとは?

[リンク:https://github.com/apache/incubator-mxnet]

概要

MXNetはPythonを含めた複数のプログラミング言語から利用できる深層学習フレームワークです。ワシントン大学とカーネギーホール大学によって開発されました。

命令的にも宣言的にも(TensorflowのようにもPyTorch/Chainerのようにも)書ける非常に柔軟なライブラリです。様々な深層学習モデルをサポートしており、一般知名度こそTensorflow、PyTorchに及びませんが非常に人気があります。

スケーラブルで計算資源を余すことなく使える

深層学習では非常に膨大な計算リソースを使わないと計算が追いつかないような場合があります。

そういったときに、GPUを増やしたら増やしただけ計算速度が速くなるようなライブラリが求められます。このようなスケーラビリティにおいて、MXNetは優秀です。

GPU数を増やしたときに85%の分散実行の効率性を示している、という報告があります。(AWS Japanのスライドより)

様々な言語に対応している

MXNetは様々な言語に対応している点においても優秀です。

  • Python
  • Scala
  • R
  • Julia
  • Perl
  • C++

に対応しており、本当に様々な言語環境での動作がサポートされています。JuliaやRなどの、Deep Learningフレームワークのデファクトが決まっていないような言語にも対応している点、Perlなどの他のフレームワークがサポートしていない言語も抑えている点などが興味深いです。

もしもPythonを習得しておらず、上の言語のどれかを使っている場合、MXNetは強力な候補の一つになります。

使い方

インストール

MXNetのインストール方法は、公式ドキュメントに丁寧にまとめられています。

[リンク:Installing MXNet]

MXNetのインストール方法は、インストール環境によって様々あるのでここでは割愛します。リンク先のボタンで以下を設定することで、インストールの方法がこのボタン群の下に表示されます。

  • MXNetのバージョン
  • OSや実行デバイス
  • 言語
  • CPUかGPUか
  • インストール方法

MXNetのサンプルコー

MXNetの勉強をするなら公式のtutorialがおすすめです。

[Tutorials]

また、様々な深層学習モデルの実装コードが公開されているリポジトリもあります。

[apache/incubator-mxnet]

MXNetをもっと学習する

MXNetで作る データ分析AIプログラミング入門 

本当に最近出たばかりの本ですが、日本語でもMXNetを使った技術書が販売されています。

まとめ

この記事ではMXNetについて解説しました。

MXNetの特徴

  • これ一つでTensorflow/Keras/Chainerのような様々な書き方ができる柔軟な深層学習ライブラリ
  • 様々な言語で使え、スケーラビリティが高くいろんな規模の深層学習に対応できる

機械学習・深層学習の実装言語は現在、Pythonが最も人気です。ですが新進気鋭のJuliaや、統計の分野で大きなシェアを持っているRなど、様々なライバルがこれから勢いを持つかもしれません。

いろんな言語に対応できてスケールしやすいMXNetがこれからもっと脚光を浴びる日も近いかも!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次