![DeepJavaLibrary](https://yellow-cdn.veclightyear.com/2b54e442/ce5495e4-1c79-4d80-8a9c-ef966a627f96.png?raw=true "Deep Java Library"?raw=true "Deep Java Library")
深度 Java 库 (DJL)
概述
深度 Java 库(DJL)是一个开源的、高级的、与引擎无关的 Java 框架,用于深度学习。DJL 的设计使得 Java 开发人员能够轻松上手并简便使用。DJL 提供了一种原生的 Java 开发体验,并像其他常规的 Java 库一样运作。
您无需是机器学习/深度学习专家即可开始使用。您可以利用现有的 Java 专业知识作为学习和使用机器学习与深度学习的起点。您可以使用您最喜欢的 IDE 来构建、训练和部署您的模型。DJL 使这些模型与您的 Java 应用程序集成变得非常容易。
由于 DJL 是与深度学习引擎无关的,您在创建项目时不需要在引擎之间做出选择。您可以在任何时候切换引擎。为了确保最佳性能,DJL 还根据硬件配置提供自动的 CPU/GPU 选择。
DJL 的符合人体工学的 API 接口旨在引导您使用最佳实践来完成深度学习任务。 以下伪代码演示了如何进行推理:
// 假设用户使用了来自模型库的预训练模型,他们只需要加载它
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> predictor = model.newPredictor()) {
Classifications result = predictor.predict(img);
// 获取分类和概率
...
}
以下伪代码演示了如何进行训练:
// 使用内置模块构建神经网络
Block block = new Mlp(28 * 28, 10, new int[] {128, 64});
Model model = Model.newInstance("mlp"); // 创建一个空模型
model.setBlock(block); // 将神经网络设置到模型中
// 获取训练和验证数据集(MNIST 数据集)
Dataset trainingSet = new Mnist.Builder().setUsage(Usage.TRAIN) ... .build();
Dataset validateSet = new Mnist.Builder().setUsage(Usage.TEST) ... .build();
// 设置训练配置,如初始化器、优化器、损失函数等
TrainingConfig config = setupTrainingConfig();
Trainer trainer = model.newTrainer(config);
/*
* 根据数据集配置输入形状以初始化训练器。
* 第一个轴是批次轴,我们可以用 1 进行初始化。
* MNIST 是 28x28 的灰度图像,并预处理成 28 * 28 的 NDArray。
*/
trainer.initialize(new Shape(1, 28 * 28));
EasyTrain.fit(trainer, epoch, trainingSet, validateSet);
// 保存模型
model.save(modelDir, "mlp");
// 关闭资源
trainer.close();
model.close();
入门指南
资源
版本说明
DJL 0.30.0 的发布计划定于 2024 年 9 月。
源码构建
要从源码构建,请先检出代码。 一旦在本地检出代码,您可以使用 Gradle 通过以下方式进行构建:
# 对于 Linux/macOS:
./gradlew build
# 对于 Windows:
gradlew build
为了提高构建速度,您可以使用以下命令跳过单元测试:
# 对于 Linux/macOS:
./gradlew build -x test
# 对于 Windows:
gradlew build -x test
导入到 Eclipse
将源码项目导入到 Eclipse
# 对于 Linux/macOS:
./gradlew eclipse
# 对于 Windows:
gradlew eclipse
在 Eclipse 中
文件->导入->Gradle->现有 Gradle 项目
注意: 请将您的工作区文本编码设置为 UTF-8
社区
您可以阅读我们的指南,了解 社区论坛、关注 DJL、问题、讨论和 RFC 以找出分享和查找 DJL 社区内容的最佳方式。
加入我们的 slack 频道 ,与开发团队联系,进行问题讨论。
关注我们的 twitter 了解最新内容、功能和版本发布。
关注我们 知乎专栏 获取 DJL 最新的内容!
有用链接
许可证
该项目根据 Apache-2.0 许可证 授权。