MXNet : Keras バックエンドとしての MXNet
深層学習の実装を Keras で行なわれている方も多いかと思いますが、そのバックエンドとして、Theano, TensorFlow に続いて MXNet も利用可能になりました。
以前から MXNet の Keras のバックエンド・サポートのための作業は DMLC (Distributed (Deep) Machine Learning Community) により行なわれていましたが、先日 Beta リリースとなりました。Keras の開発者である François Chollet 氏もその旨ツイートされていて、そして AWS の Principal Tech Evangelist の Julien Simon 氏がその技術的な詳細についてブログ記事で紹介しています。せっかくですので簡単に試してみました。 [詳細] (06/15/2017)
MXNet で ResNet : EC2 上の分散トレーニングで画像分類 – CIFAR-10 他 –
MXNet のドキュメントの翻訳が続いていたので、検証実験のレポートも載せておきます。 MXNet には画像分類用のモデルが各種定義されていて簡単に利用可能です。今回は CIFAR-10 及び Oxford 17 Flowers データセットを題材に ResNet を試してみます。 また Amazon EC2 上で GPU (p2.xlarge) インスタンス2つを使用して MXNet が得意とする分散トレーニングも実行してみました。 [詳細] (03/02/2017)
| ![]() |
MXNet How To: データ並列でマルチ CPU/GPU で実行する
MXNet は複数のデバイスに渡り負荷を分割する「データ並列性」のサポートにより単一マシン上のマルチ GPU や複数マシンでの分散トレーニングが簡単に利用できます。n 個のデバイスがある場合、各々は 1/n データでトレーニングされて勾配や更新モデルはクロス通信されます。
各デバイスがモデルの一部を維持する、「モデル並列性」もまたサポートされます。 [詳細] (03/01/2017)
MXNet How To : Amazon EC2/S3 クラウド・セットアップ
この記事では Amazon EC2/S3 を利用して MXNet の分散クラスタをどのようにセットアップするかを説明しています。具体的には EC2 GPU インスタンスをセットアップし、データ・ストアのために S3 を使用し、そして更に MXNet 分散トレーニングのために EC2 GPU クラスタをセットアップして、CNN のサンプルコードを分散トレーニングしてみます。 [詳細] (02/28/2017)
MXNet チュートリアル : 画像分類
畳込みニューラルネットワークを使用して現実世界の物体の様々な画像を分類する技術で、MNIST, CIFAR-10, ImageNet を題材に LeNet, AlexNet, VGG, GooLeNet Inceptioin モデルが用意されています。分散トレーニングについても簡単に紹介されています。 [詳細] (02/27/2017)
TensorFlowOnSpark GetStarted EC2
– AWS EC2 GPU インスタンスで TensorFlowOnSpark –
TensorFlow On Spark を AWS EC2 上で試すのは非常に簡単です。
TensorFlow On Spark のための AMI イメージが用意されていますので、スクリプトを実行するだけで Hadoop / Spark クラスタが簡単に構築されます。各ノードは GPU インスタンスで CUDA もプレインストールされています。
クラスタが起動されれば、後はデータを変換して HDFS にストアすればトレーニングを実行することができ、モデルが作成されたら評価もできます。
Jupyter Notebook も用意されていますので対話的に実行することもできます。 [詳細] (02/17/2017)
MXNet チュートリアル : Mixed Programing
このチュートリアルでは NDArray と Symbol をどのように一緒に結合するかを示します、命令型と記号型プログラミングを mix するためのショーケースとなります。この mixed programming フレーバーは MXNet を他のフレームワークとは違うものとするユニークな特徴の一つです。MXNet の用語 MX はまた “mixed” をしばしば意味します。
主としてニューラルネットワークをスクラッチからトレーニングすることを望むユーザのためのもので、実際にはこれらの機能をラップすることにより Module が既に高位 I/F を提供しています。 [詳細] (02/23/2017)
MXNet チュートリアル : 手書き数字認識 – MNIST
MXNet のコンピュータビジョンのチュートリアルの一つを翻訳して実験してみました。定番の MNIST データセットによる手書き数字分類問題を題材に、MLP 及び畳込みネットワーク・モデルを MXNet で実装してトレーニングしてみます。
Web UI 経由でマウスを使って書き込んだ数字を認識させるアプリケーション例も含まれています。 [詳細] (02/22/2017)
MXNet チュートリアル : Symbol
GoogLeNet Inception モジュールの実装
ニューラルネットワーク・グラフを構築するためにどのように mxnet.symbol を使用するか。基本演算子(層)を紹介して新しいものをどのように構築するかを示します。
例として GoogLeNet Inception モジュールの実装も試みます。
テンソル計算インターフェイス NDArray の他にも、MXNet の他の主要なオブジェクトとして mxnet.symbol、あるいは短く mxnet.sym によって提供される Symbol があります。symbol はマルチ出力記号式 (multi-output symbolic expression) を表します。それらは、単純な行列演算子 (e.g. “+”)、あるいはニューラルネットワーク層 (e.g. 畳込み層) のような、演算子 (operators) で合成 (composited) されます。演算子は幾つかの入力変数を取り、一つ以上の出力変数を生成し、そして内部的な状態変数を持ちます。変数は、(後でバインドできる)フリーであるか、または他の symbol の出力です。 [詳細] (02/17/2017)
MXNet チュートリアル : NDArray
Python の深層学習フレームワークの多くは Python 科学計算パッケージ NumPy をベースにしていますが、MXNet は GPU をサポートする NDArray 上に構築されています。
NDArray ははテンソル計算あるいは多次元配列操作を行なうライブラリで、もし貴方が科学計算 python パッケージ Numpy に慣れ親しんでいるならば NDArray は多くの面で NumPy に類似していることが分かると思います。
しかし実際には NDArrray は GPU をサポートしていて、更に MXNet のパワフルな自動並列化をもサポートします。 [詳細] (02/16/2017)
MXNet チュートリアル : トレーニングと推論 Module
Module によるトレーニングと推論 – Module インターフェイスによる単純な深層ニューラルネットワーク。トレーニングや推論のために一般的に使用されるコードを module パッケージ内にモジュール化しました。このパッケージは事前定義されたネットワークを実行するための中位と高位-レベルなインターフェイスを提供します。 [詳細] (02/19/2017)
MXNet チュートリアル : データをロードする
このチュートリアルはトレーニングと推論プログラムにどのようにデータを供給するかに焦点を当てます。MXNet のトレーニングと推論モジュールの多くはデータ iterator を受け取り、これはこの手続きを単純化します、特にファイルシステムから巨大データセットを読むときです。ここでは API 規則と幾つかの提供される iterator について議論します。 [詳細] (02/20/2017)
MXNet チュートリアル : 画像データ I/O
このチュートリアルは MXNet において画像データをどのように準備し、ロードしそしてソレーニングするかについて説明します。MXNet の全ての I/O は mx.io.DataItermx.io.DataIter とそのサブクラスを通して処理されます。このチュートリアルでは画像データを処理するために pre-built データ iterator とカスタム iterator をどのように使用するかに焦点を当てます。 [詳細] (02/21/2017)
MXNet チュートリアル : Python Record IO
このチュートリアルは record io ファイルを読み書きするための python I/F を walk through します。データパイプラインの詳細に渡り更に制御する必要がある時に有用です。例えば、検出とセグメンテーションのために画像とラベルを増強 (augument) する必要がある時、あるいは triplet sampling と negative sampling のためにデータ iterator をカスタマイズする必要がある時です。 [詳細] (02/22/2017)
MXNet アーキテクチャ : 深層学習のためのプログラミング・モデル
多くの深層学習ライブラリがありそれぞれはそれ自身のアプローチとともにあります。システム最適化とユーザ体験の視点から各ライブラリの利点と欠点は何でしょう?このトピックではプログラミング・モデルを比較して各々の基本的な利点と欠点を議論し、そしてどのようにそれらから学習できるかを探ります。
このトピックでは実装の代わりにプログラミング・モデル自身に焦点を当てます。ライブラリをユーザ・インターフェイスのタイプによって幾つかのカテゴリに分割し、そしてインターフェイス・スタイルがパフォーマンスと柔軟性にどのように影響を与えるかを議論します。議論は深層学習に特化されたものではありませんが、深層学習アプリケーションをユースケースそしてゴールとしての最適化のために使用します。 [詳細] (02/21/2017)
MXNet Get Started
MXNet はオープンソースの深層学習フレームワークです。クラウドインフラからモバイル・デバイスまで、多様なデバイス上で深層ニューラルネットワークを定義し、トレーニングし、そしてデプロイすることを可能にします。高度にスケーラブルで、高速なモデル・トレーニングを可能にし、そして柔軟なプログラミングモデルと複数言語をサポートします。MXNet は効率性と生産性の両者を最大化するために記号型と命令型プログラミングのフレーバーをミックスすることを可能にします。MXNet は、記号型と命令型の演算の両者を自動的に並列化する(ために飛び回る)、動的 dependency スケジューラ (dynamic dependency scheduler) 上に構築されます。その上のグラフ最適化は記号型の実行を高速にしメモリを効率化します。MXNet ライブラリはポータブルでライトウェイトで、それは複数の GPU と複数のマシンにスケールします。 [詳細] (02/16/2017)
MXNet キャッチフレーズ
MXNet のトップページ からの引用です :
柔軟 (Flexible)
命令型 (imperative) と記号型 (symbolic) プログラミングの両者をサポート
自動微分
モデルのトレーニングのために勾配を自動的に計算
ポータブル
CPU 群または GPU 群上、クラスタ、サーバ、デスクトップあるいはモバイルフォンで動作
クラウド上で分散
AWS、GCE、Azure、そして Yarn クラスタを含む、複数の CPU/GPU マシン上の分散トレーニングをサポート
複数の言語
C++, Python, R, Scala, Julia, Matlab そして Javascript を含む、複数の言語のサポート – 全て同じ驚異的なパフォーマンスとともに
パフォーマンス
最適化された C++ バックエンド・エンジンが I/O と計算の両者を並列化
Press Release : 03/06/2017
Amazon EC2 P2 インスタンス対応、TensorFlow 及び MXNet ベースの人工知能、
一般物体検出ソリューションを2017年4月から提供開始
株式会社クラスキャットは、深層学習フレームワーク TensorFlow 及び MXNet をベースとし、最新の人工知能・コンピュータビジョン技術と GPU (Graphics Processing Unit) を利用して高速化を図った、一般物体検出ソリューション新製品「ClassCat® ObjDetector v2.0」を2017年4月から提供開始することを発表致しました。
提供方法と致しましてはオンプレへのインストール・サービスに加えて、GPU 標準装備のクラウド上のサービスとしての提供も可能でマルチクラウドに対応しています。NVIDIA Tesla K80 GPU を標準装備する Amazon EC2 P2 インスタンスのサポートも新たに開始致します。 [Read More …]
※ その他、記載されている会社名・製品名は各社の登録商標または商標です。