本文适合有 JAVA 基础的人群
文章插图
作者:DJL-Lanking
HelloGitHub 推出的《讲解开源项目》系列 。有幸邀请到了亚马逊 + Apache 的工程师:Lanking,为我们讲解 DJL —— 完全由 Java 构建的深度学习平台 。
介绍许多年以来,一直都没有为 Java 量身定制的深度学习开发平台 。用户必须要进行繁杂的项目配置,构建 class 才能最终打造出属于 Java 的深度学习应用 。在那之后,依旧要面临着依赖项匹配维护等各种麻烦的问题 。为了解决这个这个痛点,亚马逊开源了 Deep Java Library (DJL)
项目地址:https://github.com/awslabs/djl/一个完全使用 Java 构建的深度学习平台 。DJL 的开发者们也为它量身定制了各种有意思的运行环境,用户只需要少量配置,甚至直接在线就可以在 Java 上运行深度学习应用 。
官网:https://djl.ai/
为了简化 Java 开发人员在深度学习上的痛点,我们推出了 DJL 未来实验室计划:致力于打造一个极简的 Java 运行环境,创造属于 Java 自己的深度学习工具箱 。你可以轻松在线使用,或者离线使用它们来构建你的深度学习应用 。我们的目标是,将深度学习更好的贴近 Java 开发者 。
下面将介绍能够让你快速上手 DJL 的在线尝试地址或工具 。
在线编译:Block Runner
文章插图
在线尝试:https://djl.ai/website/demo.htmlBlock Runner 设计十分简单,它可以直接帮助你在线编译 Java 深度学习代码 。如上所示,你只需点击 Run 就可以执行这些代码 。我们提供了多种深度学习引擎供你选择 。你可以轻松的在上面完成简单的深度学习运算以及推理任务 。当你在构建完成之后,直接点击 Get Template 就可以获得一份直接在本地就能运行的 gradle 项目 。所有的环境都已经配置好了,用编辑器打开就可以跑简单举一个例子,如下是使用 Apache MXNet 模型构建的一份图片分类应用代码,你可以直接复制到在线编辑器:
import ai.djl.inference.*;import ai.djl.modality.*;import ai.djl.modality.cv.*;import ai.djl.modality.cv.transform.*;import ai.djl.modality.cv.translator.*;import ai.djl.repository.zoo.*;import ai.djl.translate.*;String modelUrl = "https://alpha-djl-demos.s3.amazonaws.com/model/djl-blockrunner/mxnet_resnet18.zip?model_name=resnet18_v1";Criteria<Image, Classifications> criteria = Criteria.builder() .setTypes(Image.class, Classifications.class) .optModelUrls(modelUrl) .optTranslator(ImageClassificationTranslator.builder() .addTransform(new Resize(224, 224)) .addTransform(new ToTensor()) .optApplySoftmax(true).build()) .build();ZooModel<Image, Classifications> model = ModelZoo.loadModel(criteria);Predictor<Image, Classifications> predictor = model.newPredictor();String imageURL = "https://raw.githubusercontent.com/awslabs/djl/master/examples/src/test/resources/kitten.jpg";Image image = ImageFactory.getInstance().fromUrl(imageURL);predictor.predict(image);
在运行后,你会获得如下结果:[ class: "n02123045 tabby, tabby cat", probability: 0.41073 class: "n02124075 Egyptian cat", probability: 0.29393 class: "n02123159 tiger cat", probability: 0.19337 class: "n02123394 Persian cat", probability: 0.04586 class: "n02127052 lynx, catamount", probability: 0.00911]
最后,你可以直接点击 Get Template 在本地运行 。是不是很简单!现在这个组建支持 Apache MXNet/PyTorch/TensorFlow 三个后端引擎,后续还会增加更多的支持 。实现层面上,我们使用了 CodeMirror 在线编辑器以及 SpringBoot 进行后端托管 。想了解更多,欢迎参阅实现代码。
在线终端工具:JShell
文章插图
在线尝试:https://djl.ai/website/demo.html#jshell
推荐阅读
- JavaScript 中如何检查对象为空
- 关于Spring IoC的那些事
- 手把手带你nginx搭建基于rtmp或者http的flv、mp4流媒体服务器
- 现代Web开发中的JavaScript音频库——howler.js
- 用JAVA nutZ 框架 开发 Hello World
- 关于下一代智能手机的谈论 人工智能和云赋予手机完全个性化
- 基于无线传感器网络的智能交通系统
- Java基础之集合与泛型
- docker 快速搭建JAVA开发环境
- java中的常量折叠