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から直接取得しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト