Javaでディープラーニングモデルを実行する:簡単な説明

直感的な高レベルAPIを使用してJavaでディープラーニングモデルを開発、トレーニング、実行するためのオープンソースライブラリであるDeep Java Library(DJL)を発表できることを嬉しく思います。ディープラーニングの学習に関心のあるJavaユーザーの場合、DJLは学習を開始するための優れた方法です。ディープラーニングモデルを使用するJava開発者の場合、DJLは予測のトレーニングと実行の方法を簡素化します。この投稿では、事前にトレーニングされた深層学習モデルを使用して予測を実行する方法を数分で示します。

コーディングを始める前に、このライブラリを構築する動機を共有したいと思います。ディープラーニングの状況を調査したところ、Pythonユーザー向けのリソースが豊富にあることがわかりました。たとえば、データ分析用のNumPy。視覚化のためのMatplotlib; MXNet、PyTorch、TensorFlowなどのフレームワーク。しかし、Javaは企業で最も人気のある言語ですが、Javaユーザー向けのリソースはほとんどありません。私たちは、何百万ものJavaユーザーに、すでに慣れ親しんだ言語でディープラーニングモデルをトレーニングして提供するためのオープンソースツールを提供することを目標に着手しました。

DJLは、既存のディープラーニングフレームワークの上にネイティブJavaの概念を使用して構築されています。ディープラーニングの最新のイノベーションへのアクセスと、最先端のハードウェアを操作する機能をユーザーに提供します。シンプルなAPIは、ディープラーニングモデルの開発に伴う複雑さを抽象化し、学習と適用を容易にします。model-zooに事前にトレーニングされたモデルのバンドルセットを使用すると、ユーザーはすぐにディープラーニングをJavaアプリケーションに統合し始めることができます。

AWS

*他のフレームワークは現在サポートされていません。

ディープラーニングは、さまざまなユースケースにわたって企業に浸透しています。小売業では、顧客の需要を予測し、チャットボットとの顧客の相互作用を分析するために使用されます。自動車業界では、自動運転車をナビゲートし、製造における品質上の欠陥を見つけるために使用されます。また、スポーツ業界では、リアルタイムのコーチングとトレーニングの洞察により、ゲームのプレイ方法が変化しています。対戦相手の動きをモデル化できることや、ディープラーニングモデルを使用してチームを配置する方法を決定できることを想像してみてください。この記事では、シアトルシーホークスがディープラーニングを使用してゲーム戦略に情報を提供し、意思決定を加速する方法について学ぶことができます。

この投稿では、私たちのチームのサッカーファンと和音を打った例を共有します。DJLモデル動物園の事前トレーニング済みシングルショット検出器モデルを使用して、画像からプレーヤーを識別する異議検出モデルを示します。この例は、LinuxとmacOSの両方で実行できます。

アプリケーションプロジェクトでDJLを使用するには、IntelliJ IDEAでgradleプロジェクトを作成し、build.gradle構成に以下を追加します。

AWS

注:MXNetの実行時の依存関係は、Linux環境とmacOS環境で異なります。GitHubのドキュメントを参照してください 

このサッカー画像を検出に使用します。

AWS

以下で共有するコードブロックを使用して予測を実行します。このコードは、model-zooからSSDモデルをロードし、モデルからを作成 Predictor し、predict 関数を使用 して画像内のオブジェクトを識別します。次に、ヘルパーユーティリティ関数が、検出されたオブジェクトの周囲に境界ボックスを配置します。

AWS

このコードは、画像内の3人のプレーヤーを識別し、結果をssd.pngとして作業ディレクトリに保存します。

AWS

このコードとライブラリは、model-zooから他のモデルをテストして実行するように簡単に適合させることができます。しかし、楽しみはそれだけではありません!質問応答モデルを使用して独自のテキストアシスタントをトレーニングしたり、画像分類モデルを使用して食料品の棚などのオブジェクトを識別したりできます。その他の例については、Githubリポジトリにアクセスしてください。

この投稿では、Javaユーザーに最新かつ最高のディープラーニング開発エクスペリエンスを提供するための謙虚な取り組みであるDJLを紹介しました。事前にトレーニングされたモデルを使用して、DJLが画像からオブジェクトを数分で検出する方法を示しました。DJL GitHubリポジトリには、さらに多くの例と追加のドキュメントが用意されています。

私たちは、私たちの旅へのコミュニティの参加を歓迎します。Githubリポジトリにアクセスし、Slackチャネルに参加して開始します。