深度学习的Java推理库:Deep Java Library(DJL)

简介:
Deep Java Library(DJL)是一个开源的、高级的、与深度学习引擎无关的Java框架,专为Java开发人员设计。DJL旨在让Java开发人员轻松入门并简化深度学习的使用。它提供了与其他常规Java库类似的本地Java开发体验。无需成为机器学习/深度学习专家,您就可以利用现有的Java知识学习和使用机器学习和深度学习。您可以使用喜欢的集成开发环境(IDE)来构建、训练和部署模型。DJL使得将这些模型与您的Java应用程序集成变得容易。由于DJL与深度学习引擎无关,因此在创建项目时无需在引擎之间做出选择。您可以随时切换引擎。为了确保最佳性能,DJL还根据硬件配置提供自动的CPU/GPU选择。

主要特点:

  1. 引擎无关性:DJL与深度学习引擎无关,可以在不同引擎之间切换,如MXNet、PyTorch和TensorFlow等。
  2. 简单易用:DJL旨在让Java开发人员轻松入门并简化深度学习的使用。
  3. 本地Java开发体验:DJL提供了与其他常规Java库类似的本地Java开发体验。
  4. 自动CPU/GPU选择:DJL根据硬件配置自动选择最佳的CPU或GPU。

核心API:

  1. Criteria:Criteria类对象定义了模型的情况,如模型路径、输入和输出等。通过Criteria可以实例化出Model Zoo对象,用于对模型进行管理。
  2. Translator:Translator接口用于定义如何将自定义的输入输出类转换为Tensor类型。它包含两个方法:processInput和processOutput。
  3. NDArray:DJL的NDArray类类似于Python中的numpy.ndarray,可以进行各种Tensor操作,如创建、运算、切片等。

使用示例:
以下是使用DJL进行模型推理的简单示例:

// 创建Criteria对象
Criteria<Input, Output> criteria = Criteria.builder()
    .setTypes(Input.class, Output.class)
    .optModelPath(Paths.get("/var/models/my_model"))
    .optModelName("model")
    .build();

// 加载模型
ZooModel<Input, Output> model = criteria.loadModel();

// 创建Predictor
Predictor<Input, Output> predictor = model.newPredictor();

// 进行推理
Output output = predictor.predict(input);

Learn more:

  1. DJL快速入门(纯Java跑深度学习模型)-CSDN博客
  2. Main – Deep Java Library
  3. GitHub – deepjavalibrary/djl: An Engine-Agnostic Deep Learning Framework in Java
0 0 投票数
Article Rating
订阅评论
提醒
0 评论
最多投票
最新 最旧
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x