Deep Java Library (DJL) 项目入门指南:获取与构建方法详解

Deep Java Library (DJL) 项目入门指南:获取与构建方法详解

djl An Engine-Agnostic Deep Learning Framework in Java djl 项目地址: https://gitcode.com/gh_mirrors/dj/djl

前言

Deep Java Library (DJL) 是一个开源的深度学习框架,它允许Java开发者在不具备深度学习专业知识的情况下,也能轻松构建和部署深度学习模型。本文将详细介绍获取DJL的几种方式,帮助开发者根据自身需求选择最合适的方案。

一、通过Maven Central获取稳定版本

对于大多数开发者来说,从Maven Central获取DJL是最简单可靠的方式。Maven Central是Java生态中最主要的依赖仓库,包含了DJL的所有稳定版本。

1.1 添加依赖的方式

根据项目构建工具的不同,添加方式有所区别:

Gradle项目

build.gradle文件中添加:

dependencies {
    implementation platform("ai.djl:bom:0.34.0")
    implementation "ai.djl:api"
    implementation "ai.djl.pytorch:pytorch-engine"
}
Maven项目

pom.xml文件中添加:

<dependency>
    <groupId>ai.djl</groupId>
    <artifactId>api</artifactId>
    <version>0.34.0</version>
</dependency>

1.2 使用BOM管理版本

DJL提供了Bill of Materials (BOM)来统一管理各模块版本,这是推荐的做法:

dependencies {
    // 使用BOM管理版本
    implementation platform("ai.djl:bom:0.34.0")
    // 无需指定版本
    implementation "ai.djl:api"
    implementation "ai.djl.pytorch:pytorch-engine"
}

二、使用Nightly Snapshots获取最新功能

如果你需要体验DJL的最新功能,可以使用Nightly Snapshots版本。

2.1 配置Snapshot仓库

首先需要添加Snapshot仓库地址:

Gradle配置
repositories {
    maven {
        url 'https://oss.sonatype.org/content/repositories/snapshots/'
    }
}
Maven配置
<repositories>
    <repository>
        <id>djl-snapshots</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
    </repository>
</repositories>

2.2 使用Snapshot版本

Snapshot版本的命名规则为<下一版本号>-SNAPSHOT。例如当前稳定版是0.34.0,则Snapshot版本为:

dependencies {
    implementation platform("ai.djl:bom:0.35.0-SNAPSHOT")
}

2.3 注意事项

  1. Snapshot版本每两周会清理一次
  2. 当新版本发布后,需要及时更新到新的稳定版或下一个Snapshot版
  3. 不推荐在生产环境使用Snapshot版本

三、从源码构建DJL

如果你需要定制DJL或参与开发,可以从源码构建。

3.1 基本构建命令

# Linux/macOS
./gradlew build

# Windows
gradlew build

跳过测试以加快构建速度:

./gradlew build -x test

3.2 导入到IDE

Eclipse导入
  1. 生成Eclipse项目文件:
./gradlew eclipse
  1. 在Eclipse中选择:File → Import → Gradle → Existing Gradle Project

重要提示:确保将工作区文本编码设置为UTF-8

3.3 使用特定版本

可以检出特定版本进行构建:

git checkout v0.34.0
./gradlew build

3.4 在项目中使用本地构建版本

  1. 首先构建并发布到本地Maven仓库:
./gradlew build publishToMavenLocal
  1. 在项目中添加本地仓库:
repositories {
    mavenLocal()
}
  1. 使用本地构建的版本:
dependencies {
    implementation platform("ai.djl:bom:0.35.0-SNAPSHOT")
}

四、版本选择建议

  1. 生产环境:使用Maven Central上的稳定版本
  2. 体验新功能:使用Snapshot版本
  3. 定制开发/调试:从源码构建

五、常见问题解答

Q:Snapshot版本和稳定版有什么区别? A:Snapshot版本包含最新的开发代码,可能有不稳定的新功能;稳定版经过充分测试,适合生产环境。

Q:为什么需要设置UTF-8编码? A:DJL项目包含多语言资源文件,UTF-8编码能确保正确处理这些文件。

Q:本地构建失败怎么办? A:确保已安装JDK 8或更高版本,Gradle版本符合要求,网络连接正常可下载依赖。

通过本文的介绍,相信你已经掌握了获取DJL的各种方法。根据你的具体需求选择合适的获取方式,开始你的深度学习之旅吧!

djl An Engine-Agnostic Deep Learning Framework in Java djl 项目地址: https://gitcode.com/gh_mirrors/dj/djl

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

### 如何在 DJL 中调用 PyTorch 模型 DJL 是一个专门为 Java 开发者设计的深度学习框架,它支持多种主流的深度学习引擎,其中包括 PyTorch。通过 DJL,开发者可以在 Java 应用程序中轻松加载并推理 PyTorch 模型。 #### 1. 准备环境 为了成功调用 PyTorch 模型,首先需要设置开发环境。这通常涉及配置 Maven 或 Gradle 构建工具来引入必要的依赖项。以下是 Maven 的 `pom.xml` 配置示例: ```xml <dependencies> <!-- DJL API --> <dependency> <groupId>ai.djl</groupId> <artifactId>api</artifactId> <version>0.23.0</version> </dependency> <!-- PyTorch Engine --> <dependency> <groupId>ai.djl.pytorch</groupId> <artifactId>pytorch-engine</artifactId> <version>0.23.0</version> </dependency> <!-- Native libraries for your OS (example for Linux) --> <dependency> <groupId>ai.djl.pytorch</groupId> <artifactId>pytorch-native-cpu-linux-x86_64</artifactId> <version>1.13.1</version> </dependency> </dependencies> ``` 以上代码片段展示了如何为项目添加 DJL 和 PyTorch 引擎的相关依赖[^2]。 #### 2. 加载模型 一旦环境搭建完成,下一步就是加载预训练的 PyTorch 模型。可以通过指定本地路径或远程 URL 来获取模型文件。下面是一个简单的例子,展示如何从本地目录加载模型: ```java import ai.djl.Model; import ai.djl.inference.Predictor; import ai.djl.modality.cv.ImageFactory; import ai.djl.repository.zoo.Criteria; import ai.djl.translate.TranslateException; public class PyTorchModelExample { public static void main(String[] args) throws Exception { Criteria<?> criteria = Criteria.builder() .setTypes(Image.class, String.class) .optEngine("PyTorch") // 设置使用 PyTorch 引擎 .optTranslator(new ImageClassificationTranslator()) .optProgress(new ProgressBar()) // 显示下载进度条 .build(); try (Model model = ModelZoo.loadModel(criteria)) { // 使用 Model Zoo 自动管理模型缓存 System.out.println(model); try (Predictor<Image, String> predictor = model.newPredictor()) { Image img = ImageFactory.getInstance().fromFile(new File("path/to/your/image.jpg")); String result = predictor.predict(img); // 执行预测操作 System.out.println(result); } } catch (TranslateException e) { e.printStackTrace(); } } } ``` 此代码段演示了如何利用 DJL 提供的高级接口加载图像分类模型,并对其进行推断[^3]。 #### 3. 处理自定义模型 如果要加载的是用户自己训练的 PyTorch 模型,则需将其转换为 ONNX 格式或者直接保存为 `.pt` 文件形式。之后按照上述方法调整路径参数即可完成加载过程[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龚翔林Shannon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值