BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Deep Java Library - Java開発者のための新たなディープラーニングツールキット

Deep Java Library - Java開発者のための新たなディープラーニングツールキット

原文(投稿日:2020/01/09)へのリンク

2019年のAWS re:InventカンファレンスでAmazonは、ディープラーニングモデルのトレーニング、デプロイ、推論生成を簡単にするオープンソースライブラリのDeep Java Library(DJL)リリースした

Javaは90年代から1、2を争う人気プログラム言語の座を保っているが、マシンラーニングの分野においては、ささまざまなリソースやディープラーニング用フレームワークの揃ったPythonが最も多く使用される言語になっている。DJLの目的は、慣れ親しんだ概念と直感的なAPIを使うことで、ディープラーニング用のオープンソースツールをJava開発者にも利用可能にすることだ。Java開発者は使い慣れたIDEでDJLを使用したり、あるいはJupyter NotebookベースでJavaコードを実行することができる。

DJLフレームワークは非依存性を備えており、既存のディープラーニングフレームワーク上でJava Native Access(JNA)を使用することで、一般的に使用されているディープラーニング機能を抽象化する。現時点では、Apache MXNetTensorFlow用の実装が提供されている。  

DJLのサンプル仮想コードで示されている、一般的なモデルトレーニング用の機能は次のようなものだ。

// Create an empty model
Model model = Model.newInstance())
. . .
// Setup training with configurations
Trainer trainer = model.newTrainer(config))
. . .
// Use trainer to fit model with training and validation datasets
TrainingUtils.fit(trainer, epoch, trainingSet, validateSet);                   
// Save the model         
model.save(modelDir, "mlp");  

イメージ分類コードの完全なサンプルは、InfoQの記事"Deep Java Library(DJL)の紹介"にある。DJLのGitHubリポジトリにも一般的なデータセットトレーニング済モデルコード例などの他、イメージ分類物体検出(instance segmentation)行動認識(action recognition)といったユースケースに関するJupyter Notebookのチュートリアルが提供されている。  

オープンソースのJava用ディープラーニングライブラリとしてはもうひとつ、Javaで記述され、Apache SparkHadoopを使ってトレーニングを高速化するDeep Learning for Java(DL4J)がある。DL4Jは堅牢で柔軟性があり、効率のよい、Java開発者用の優れたフレームワークだが、DJLや他のディープラーニングフレームワークと比較した場合、フレームワーク非依存なDJLとは違い、Pythonベースの膨大なマシンラーニングコードベースを活用できないというデメリットがある。

DJLについて詳しく知るには、DJLのWebサイトJava Doc API SpecificationGetting Startedのページを確認するとよいだろう。

この記事に星をつける

おすすめ度
スタイル

BT