deepjavalibrary/djl

An Engine-Agnostic Deep Learning Framework in Java

Deep Java Library (DJL) – 概要

概要 – DJL は、Javaファーストの高レベル深層学習フレームワークで、一般的なネイティブエンジン(TensorFlow、PyTorch、MXNetなど)の上に構築されています。Java開発者は、新しい言語を学ぶことなく、また通常のIDEから離れることなく、ニューラルネットワークの読み込み、トレーニング、推論を実行できます。

主なアイデア

  • エンジンに依存しない – 実行時にエンジンを選択できます。コードを変更せずにTensorFlow↔PyTorch↔MXNetを交換できます。
  • 自動CPU/GPU選択 – DJLはハードウェアを検出し、最適なバックエンドを選択します。
  • モデルズー統合 – 事前学習済みモデルは、シンプルなCriteriaビルダーで検出できます。
  • 完全なトレーニングサポート – 組み込みブロックでネットワークを定義し、Trainerを作成し、古典的なトレーニングループを実行できます。

典型的な使用法

// 推論 – 事前学習済みの物体検出モデルを選択
Criteria<Image, Classifications> criteria = Criteria.builder()
    .optApplication(Application.CV.OBJECT_DETECTION)
    .setTypes(Image.class, Classifications.class)
    .optFilter("backbone", "resnet50")
    .build();
Image img = ImageFactory.getInstance().fromUrl("http://…");
try (ZooModel<Image, Classifications> model = criteria.loadModel();
     Predictor<Image, Classifications> pred = model.newPredictor()) {
    Classifications result = pred.predict(img);
    // …結果を処理…
}
// トレーニング – MNIST上の小さなMLP
Block block = new Mlp(28*28, 10, new int[]{128,64});
Model model = Model.newInstance("mlp");
model.setBlock(block);
Dataset train = new Mnist.Builder().setUsage(Usage.TRAIN).build();
Dataset test  = new Mnist.Builder().setUsage(Usage.TEST).build();
TrainingConfig cfg = setupTrainingConfig();
Trainer trainer = model.newTrainer(cfg);
trainer.initialize(new Shape(1, 28*28));
EasyTrain.fit(trainer, epochs, train, test);
model.save(modelDir, "mlp");

対象読者 – 深層学習を試してみたい、エンタープライズサービスに推論を組み込みたい、またはJVMエコシステムから離れずにエンドツーエンドのMLパイプラインを構築したいJava開発者。

詳細情報 –

  • 公式ドキュメント: https://docs.djl.ai/
  • DJLの『Dive into Deep Learning』(Java版)
  • Javadoc APIリファレンス
  • コミュニティSlack、GitHubディスカッション、中国語アップデート用のZhihuコラム。

ライセンス – Apache-2.0。オープンソースおよび商用プロジェクトの両方で使用できます。


すべての詳細はリポジトリのREADMEから直接取得しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト