過去の記事で簡単なニューラルネットワークを1から実装する方法を確認してきたが、今回からはJava向けのDeep Learningライブラリである『Deeplearning 4j (DL4j)』を利用したニューラルネットワークの構築を行っていく。
今回はDeep Learning 4jをEclipse上で利用するための環境構築方法について確認する。
■ Deeplearning 4j とは?
Deeplearning 4jは機械学習の一手法であるディープ・ラーニング実装を容易にするオープン・ソースなフレームワークである。ライセンスはApache 2.0であり(
*1)、フリーで商用利用も可能。ちなみに、困った場合にはSkymind社(米)による商用サポートも行われている。
Theano等に代表されるように、研究用途ではPython全盛なディープ・ラーニング業界において、Javaで提供されている稀有なライブラリでもある。Deeplearning 4jではGPU計算や分散フレームワーク(Hadoop,Spark)上での利用も容易である。このため、BigDataとの相性の良さやエンジニアの確保を含めて考えると、エンタープライズ用途で利用する際には真っ先に候補に挙がるディープ・ラーニング用のライブラリではないだろうか。
■ Deeplearning 4j + Eclipseの環境構築方法
Deepleaning 4jは多数のライブラリを利用していて、まっとうな手段で環境構築するのは骨が折れる。かくいう私もDeeplearning 4j 公式のクイックスタート(
*2)を見て、やる気が一気になくなった1人である。ただ、depiesms22さんが公開しているmavenを利用したeclipse環境構築方法(
*3)がかなり楽なため、今回はこの内容に沿ってインストール方法を確認する。なお、英語を読むのが苦でない方には、オリジナルの記事を参照することをお薦めする。
環境構築手順
以下にEclipse上でDeeplearning 4jを利用するための環境構築方法を記述する。以下の手順はDeeplearning 4jを利用する各プロジェクトで行う必要がある。なお、Deeplearning 4jはJDK 1.7(64bit)準拠で動作する点に注意が必要である。
1.eclipseにmavenプラグイン『M2Eclipse』をインストールする。インストール方法については、
別記事を参照のこと。
2.Eclipseのメニューから「ファイル - 新規 - プロジェクト」から、新規Mavenプロジェクト(空)を作成する。グループIDなどは、以下の図のとおりに入力する。環境構築完了後にはこのプロジェクト内でDeeplearning4jが利用可能となるが、もしプロジェクト名等を変えたい場合には環境構築完了後に名前を変更すればよい。
3.作成したプロジェクトのPOMファイル(pom.xml)を開き、『
dl4j-0.4-examples/pom.xml』の内容で上書きする。ちなみに、pom.xmlを開くと以下のような画面が表示されるが、上書きの際には画面下の「pom.xml」タグを押下してソースコードを表示するとよい。POMファイルの書換直後、自動的に依存ファイルのダウンロードが始まるので、終了するまで待つ。
4.プロジェクト名を右クリックして『Maven - プロジェクトの更新』を実行。プロジェクトのコンパイルが終了するまで待つ(10分程度)と環境構築完了である。
もし、上記手順完了後もプロジェクトにエラーが表示している場合は、以下のライブラリが足りないことが考えられる。別途ライブラリファイルをダウンロードし、クラスパスに追加するとエラーが解消する場合がある(クラスパスの追加方法は
コチラを参照)。
■ 参照
- GitHub 「Deeplearning4J: Neural Net Platform」
- DEEPLEARNING4J 公式「Deeplearning 4 j のクイックスタートガイド」
- depiesml 「DL4J (Deeplearning for Java) – Getting Started」
2. 質問です
大変、参考になる解説ページを作っていただきありがとうございます。
上記の手順通りに進めたのですが、依存ファイルのダウンロードが実行されません...
何か解決法に心当たりはないでしょうか?
質問ありがとうございます。
近日中に記事は更新しようと思いますが、取り急ぎ、以下の方法を試してみてください。
【プロジェクトの作成方法の変更点(version=0.7-SNAPSHOT)】
1.上記の記事で作成したpom.xmlを以下の内容で上書きします。
dl4j-tutorialのpom.xml
2.作成したプロジェクトとは別に、記事と同様の方法で別プロジェクト
(アーティファクトid:dl4j-tutorial-parent)を作成します。
3.作成したプロジェクトのpom.xmlを以下の内容で上書きします。
dl4j-tutorial-parentのpom.xml
これで最初に作成したプロジェクトに必要なコンポーネントのダウンロードが
始まると思います。うまくいかない場合、また連絡いただけると助かります。
# とりあえず、手元の環境ではダウンロードできました。
# リンク先のリポジトリでプロジェクトの構成が変わった(複数のプロジェクトを
# まとめる親プロジェクトが追加された)ことが原因のようで、pom.xmlに親子関係が
# 追加されています。