You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DJL+Yolov5+OpenCV部署Java应用时PyTorch引擎报错

解决DJL打包Jar后无法加载PyTorch引擎的问题

问题背景

在Java 17环境下使用Yolov5、DJL与OpenCV开发机器学习应用,已将模型导出为torchscript。IntelliJ中运行代码可正常处理图片、识别目标,但通过Maven assembly插件构建含依赖的Jar包后,外部运行出现报错。

运行命令:

java "-Djava.library.path=C:\Program Files\OpenCV\build\java\x64" -jar app-0.1-SNAPSHOT-jar-with-dependencies.jar

报错信息:

Exception in thread "main" ai.djl.repository.zoo.ModelNotFoundException: ModelZoo doesn't support specified engine: PyTorch
        at ai.djl.repository.zoo.Criteria.loadModel(Criteria.java:121)
        at my.app.Yolov5.process(Yolov5.java:70)
        at my.app.Main.main(Main.java:22)

POM依赖(版本统一为0.19.0,OpenCV版本4.5.5-0与系统安装版本一致):

  • ai.djl:api
  • ai.djl:model-zoo
  • ai.djl.pytorch:pytorch-model-zoo
  • ai.djl.pytorch:pytorch-engine
  • ai.djl.pytorch:pytorch-native-auto
  • org.openpnp:opencv

解决方法

1. 修正Maven Assembly插件的依赖打包配置

pytorch-native-auto包含多平台的PyTorch原生库,但Assembly插件默认可能无法正确处理带分类器的依赖。需修改插件配置确保相关依赖被完整打包:
在assembly的descriptor文件中添加:

<dependencySets>
  <dependencySet>
    <outputDirectory>/</outputDirectory>
    <useProjectArtifact>true</useProjectArtifact>
    <unpack>true</unpack>
    <scope>runtime</scope>
    <includes>
      <include>ai.djl.pytorch:pytorch-native-auto</include>
      <include>ai.djl.pytorch:pytorch-engine</include>
    </includes>
  </dependencySet>
</dependencySets>

也可以直接改用DJL官方提供的djl-maven-plugin打包,该插件针对DJL的依赖特性做了优化,能自动处理原生库的打包逻辑。

2. 调整原生库加载路径

外部运行时,DJL可能无法定位到PyTorch原生库。可在运行命令中同时指定OpenCV和DJL原生库的路径:

java "-Djava.library.path=C:\Program Files\OpenCV\build\java\x64;./djl-native-libs" -jar app-0.1-SNAPSHOT-jar-with-dependencies.jar

注:./djl-native-libs需替换为你解压PyTorch原生库的实际目录(可从pytorch-native-auto的Jar包中提取出libtorch*.dll等文件)。

3. 检查依赖版本一致性

确保所有DJL相关依赖的版本完全统一为0.19.0,避免版本冲突导致引擎加载失败。检查POM文件,确认没有其他依赖引入不同版本的DJL组件。

4. 补充引擎配置文件

DJL通过META-INF/djl.properties识别可用引擎,Assembly打包可能遗漏该文件。在项目src/main/resources/META-INF目录下添加该文件,内容为:

engine.pytorch=true

内容的提问来源于stack exchange,提问作者Son

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:20:49