从零开发短视频电商 用Java框架部署模型并推理 - Deep Java Library (DJL)
2023-12-13 15:40:07
文章目录
-
- 支持引擎
- 模型库
- 示例一 基础模型 图片分类
- 示例二 huggingface模型库 文本嵌入
-
- 获取Tokenization标记(tokens)的数量
官网: https://djl.ai/
动手学深度学习-中文:https://d2l-zh.djl.ai/
支持模型
- PyTorch TorchScript model
- TensorFlow SavedModel bundle
- Apache MXNet model
- ONNX model
- TensorRT model
- Python script model
- PaddlePaddle model
- TFLite model
- XGBoost model
- LightGBM model
- Sentencepiece model
- fastText/BlazingText model
支持引擎
目前,DJL 支持的引擎有:
- MXNet - 全力支持
- PyTorch - 全力支持
- TensorFlow - 支持推理和 NDArray 操作
- ONNX runtime- 支持基本推理
- PaddlePaddle - 支持基本推理
- TFLite - 支持基本推理
- TensorRT - 支持基本推理
- XGBoost - 支持基本推理
- LightGBM - 支持基本推理
选择引擎,必须将其添加到 Java 类路径中,即添加对应的 Maven 依赖。
例如pytorch
<!-- 会根据机器自动下载 win/macos/linux 动态库 --> <dependency> <groupId>ai.djl.pytorch</groupId> <artifactId>pytorch-engine</artifactId> <version>0.25.0</version> <scope>runtime</scope> </dependency> <!-- 也可以直接安装 例如windows下 --> <dependency> <groupId>ai.djl.pytorch</groupId> <artifactId>pytorch-native-cpu</artifactId> <classifier>win-x86_64</classifier> <scope>runtime</scope> <version>2.0.1</version> </dependency> <dependency> <groupId>ai.djl.pytorch</groupId> <artifactId>pytorch-jni</artifactId> <version>2.0.1-0.25.0</version> <scope>runtime</scope> </dependency>
- https://docs.djl.ai/engines/pytorch/pytorch-engine/index.html - DJL 支持的 pytorch 版本
模型库
内置模型库model-zoo
,可以很方便的加载使用内置模型。
-
基本模型库,基本模型包中提供与引擎无关的
ZooModel
。它们可用于任何 DJL 后端引擎。<dependency> <groupId>ai.djl</groupId> <artifactId>model-zoo</artifactId> <version>0.25.0</version> </dependency>
-
HuggingFace model zoo
<dependency> <groupId>ai.djl.huggingface</groupId> <artifactId>tokenizers</artifactId> <version>0.25.0</version> </dependency>
-
PyTorch model zoo
<dependency> <groupId>ai.djl.pytorch</groupId> <artifactId>pytorch-model-zoo</artifactId> <version>0.25.0</version> </dependency>
-
TensorFlow model zoo
<dependency> <groupId>ai.djl.tensorflow</groupId> <artifactId>tensorflow-model-zoo</artifactId> <version>0.25.0</version> </dependency>
-
MXNet model zoo
<dependency> <groupId>ai.djl.mxnet</groupId> <artifactId>mxnet-model-zoo</artifactId> <version>0.25.0</version> </dependency>
还可以自己向模型库中添加新模型
示例一 基础模型 图片分类
示例:https://github.com/deepjavalibrary/djl/tree/master/examples
1.选择基础的内置模型库和运行时引擎
<dependency>
<groupId>ai.djl</groupId>
<artifactId>model-zoo</artifactId>
<version>0.25.0</version>
</dependency>
<dependency>
<groupId>ai.djl.pytorch</groupId>
<artifactId>pytorch-engine</artifactId>
<version>0.25.0</version>
</dependency>
2.在选择的模型库中查找模型
// 列举所有的模型
Map<Application, List<Artifact>> models = ModelZoo.listModels();
models.forEach(
(app, list) -> {
String appName = app.toString();
list.forEach(artifact -> logger.info("{} {}", appName, artifact));
});
- CV.IMAGE_CLASSIFICATION ai.djl.zoo/mlp/0.0.3/mlp {
"dataset":"mnist"}
- CV.IMAGE_CLASSIFICATION ai.djl.zoo/resnet/0.0.2/resnetv1 {
"layers":"50","flavor":"v1","dataset":"cifar10"}
- CV.OBJECT_DETECTION ai.djl.zoo/ssd/0.0.2/ssd {
"flavor":"tiny","dataset":"pikachu"}
// 在模型中通过optFilter过滤出自己想要的模型
Criteria<Image, Classifications> criteria =
Criteria.builder()
.optApplication(Application.CV.IMAGE_CLASSIFICATION)
.setTypes(Image.class, Classifications.class)
.optFilter("layers", "50")
.optFilter("flavor", "v1")
.optFilter("dataset", "cifar10")
文章来源:https://blog.csdn.net/abu935009066/article/details/134903020
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!