您当前的位置:首页 > 电脑百科 > 人工智能

完全基于 Java 的开源深度学习平台,亚马逊的大佬带你上手

时间:2020-08-20 10:05:46  来源:  作者:

本文适合有 JAVA 基础的人群

完全基于 Java 的开源深度学习平台,亚马逊的大佬带你上手

 

作者:DJL-Lanking

HelloGitHub 推出的《讲解开源项目》系列。有幸邀请到了亚马逊 + Apache 的工程师:Lanking,为我们讲解 DJL —— 完全由 Java 构建的深度学习平台。

介绍

许多年以来,一直都没有为 Java 量身定制的深度学习开发平台。用户必须要进行繁杂的项目配置,构建 class 才能最终打造出属于 Java 的深度学习应用。在那之后,依旧要面临着依赖项匹配维护等各种麻烦的问题。为了解决这个这个痛点,亚马逊开源了 Deep Java Library (DJL)

项目地址:https://github.com/awslabs/djl/

官网:https://djl.ai/

一个完全使用 Java 构建的深度学习平台。DJL 的开发者们也为它量身定制了各种有意思的运行环境,用户只需要少量配置,甚至直接在线就可以在 Java 上运行深度学习应用。

为了简化 Java 开发人员在深度学习上的痛点,我们推出了 DJL 未来实验室计划:致力于打造一个极简的 Java 运行环境,创造属于 Java 自己的深度学习工具箱。你可以轻松在线使用,或者离线使用它们来构建你的深度学习应用。我们的目标是,将深度学习更好的贴近 Java 开发者。

下面将介绍能够让你快速上手 DJL 的在线尝试地址或工具。

在线编译:Block Runner

完全基于 Java 的开源深度学习平台,亚马逊的大佬带你上手

 

在线尝试:https://djl.ai/website/demo.html

Block 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

完全基于 Java 的开源深度学习平台,亚马逊的大佬带你上手

 

在线尝试:https://djl.ai/website/demo.html#jshell

JShell 是一个 JShell 的改版,包含了 DJL 的特性。你可以直接集成已有的 Java 功能和 DJL 的 class 在线使用。我们为 JShell 提前准备了下面的引入:

import ai.djl.ndarray.NDManager;
import ai.djl.ndarray.NDArray;
import ai.djl.ndarray.types.Shape;
import ai.djl.ndarray.index.NDIndex;
NDManager manager = NDManager.newBaseManager();

后端是基于 SpringBoot 的 server 架构,前端使用了 xtermjs。

目前这个命令行支持如下操作:

  • backspace删除输入
  • <- 和 -> 移动光标
  • 复制/粘贴代码功能
  • 输入clear进行清屏操作

通过网页中提供的几种简单案例,你可以轻松使用 NDArray 来完成你所需要的功能。

想了解我们是如何构建这个 JShell 应用的,请看实现代码 。

Java 版的 Jupyter Notebook

完全基于 Java 的开源深度学习平台,亚马逊的大佬带你上手

 

地址:https://github.com/awslabs/djl/tree/master/jupyter

什么?Jupyter Notebook?我们难道说的不是 Python?不!100% 纯 Java11。

通过 Spencer Park’s IJava 项目 启发, 我们将 DJL 集成在了 Jupyter Notebook 里面。不需要繁杂的配置,直接启动就能用。我们准备了一系列使用 Jupyter Notebook 构建的 Java 深度学习训练以及推理应用 Notebook。想了解更多就点击这里吧。

Java 版本的 Notebook 可以基本实现所有 Jupyter 在 Python 上的特性:

  • 支持每个代码块独立运行
  • 展示一张图片
  • 利用 Tablesaw 展示一个图表

相比于 Python,Java 的 Notebook 可以直接引入 Maven 的库,这样用户就无需担心项目配置等问题。同时这个 Notebook 也支持在 GPU 环境下运行,你可以轻松使用 Notebook 进行深度学习训练任务。

通过下面几个 Notebook 可以帮助你快速了解 DJL 的用法以及新特性:

  • 使用 ModelZoo 进行目标检测
  • 加载 PyTorch 预训练模型
  • 加载 Apache MXNet 预训练模型
  • 迁移学习案例
  • 问答系统案例

P.S:我们甚至还准备了基于 Java 的深度学习书,现在还处于预览版阶段,敬请期待。

关于 DJL 以及未来实验室计划

完全基于 Java 的开源深度学习平台,亚马逊的大佬带你上手

 

DJL 还是一个很年轻的框架,2019 年底发布,2020 年 3 月才真正支持了所有主流的深度学习框架 (TensorFlow、PyTorch MXNet)。你可以轻松的使用 DJL 来训练以及部署你的深度学习模型。它也包含了 70 多种来自 GluonCV、HuggingFace、TorchHub 以及 Keras 的预训练模型。

关于未来实验室:我们仍旧还有很多功能处于开发阶段,需要大量小伙伴去参与并且体验我们的新功能。下面是几个正在进行中的项目:

  • D2L - Java:为《动手学深度学习》 打造一本 Java 版本的书
  • DJL NLP wordEmbedding:为 DJL 提供更多 word embedding 的接口


Tags:深度学习   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
训练深度神经网络是一项具有挑战性的任务。 多年来,研究人员提出了不同的方法来加速和稳定学习过程。 归一化是一种被证明在这方面非常有效的技术。 在这篇文章中,我将使用类...【详细内容】
2022-07-08  Tags: 深度学习  点击:(11)  评论:(0)  加入收藏
与人类不同,人工神经网络在学习新事物时会迅速遗忘先前学到的信息,必须通过新旧信息的交错来重新训练;但是,交错全部旧信息非常耗时,并且可能没有必要。只交错与新信息有实质相似...【详细内容】
2022-07-06  Tags: 深度学习  点击:(20)  评论:(0)  加入收藏
近年来,在材料科学、人工智能芯片等前沿领域,深度学习受到广泛的研究和应用。具体来说,深度学习通过学习样本数据的内在规律和表示层次实现机器像人一样具有分析和学习的能力,因...【详细内容】
2022-03-30  Tags: 深度学习  点击:(103)  评论:(0)  加入收藏
前言AugLy是一个数据增强库,可以帮助评估和提高模型的稳健性。该库支持四种模式( 音频、视频、图像和文本 ),并且包含 100 多种执行数据增强的方法。如果正在从事使用音频、视频...【详细内容】
2022-01-05  Tags: 深度学习  点击:(140)  评论:(0)  加入收藏
现如今,谈起人工智能我们都会想到的是“深度学习”(deep learning),无论是战胜李世石的AlphaGo,还是能够随意写出人类水平文章的GPT-3,它们的背后都依托的是这套算法。 它具有很好...【详细内容】
2021-09-14  Tags: 深度学习  点击:(352)  评论:(0)  加入收藏
0 前言大家好,欢迎来到“自由技艺”的知识小馆。今天我们来探讨下深度学习中的 Attention 机制,中文名为“注意力”。本文内容结构组织如下:1 为什么需要引入 Attention 机制?2...【详细内容】
2021-06-09  Tags: 深度学习  点击:(684)  评论:(0)  加入收藏
微信正用着的深度学习框架,现在你也可以上手试一试了。 就在最近,腾讯把这个名叫deepx_core的深度学习基础库正式对外开源。 相比于PyTorch、TensorFlow等流行深度学习框架,这位选手不仅具有通用性,还针对高维稀疏数据...【详细内容】
2021-04-06  Tags: 深度学习  点击:(241)  评论:(0)  加入收藏
为深度学习项目建立一个良好的环境不是一件容易的任务。因为需要处理的事情太多了:库必须匹配特定的版本,整个环境需要可以复制到其他机器上,所有东西都需要能够机器中的所有...【详细内容】
2021-03-05  Tags: 深度学习  点击:(144)  评论:(0)  加入收藏
深度学习是机器学习的一个子领域,它采用了一个特定的模型:一族通过某种方式连接起来的简单函数。由于这类模型的结构是受到人类大脑结构的启发而创造出来的...【详细内容】
2021-02-26  Tags: 深度学习  点击:(349)  评论:(0)  加入收藏
基于人工智能和深度学习方法的现代计算机视觉技术在过去10年里取得了显著进展。如今,它被用于图像分类、人脸识别、图像中物体的识别、视频分析和分类以及机器人和自动驾驶车辆的图像处理等应用上。...【详细内容】
2021-01-07  Tags: 深度学习  点击:(134)  评论:(0)  加入收藏
▌简易百科推荐
你有没有想过这样一个问题?未来五年,我们的生活会发生什么样的变化? 一、虚拟技术的改变随着AR和VR技术的发展,虚拟现实技术的越开越成熟。让计算机除了拥有视觉感知外。还有听...【详细内容】
2022-07-13  蓝星研究所    Tags:人工智能   点击:(0)  评论:(0)  加入收藏
上个月安利了一波:机器学习自动补全代(h&aacute;n)码(sh&ugrave;)神器,然后就被打脸了,Github 宣布 copilot 要开始收费了。 Github 和 OpenAI 一样,遇到微软之后就慢慢丧失灵魂...【详细内容】
2022-07-12  机器学习与Python社区    Tags:OpenAI   点击:(6)  评论:(0)  加入收藏
训练深度神经网络是一项具有挑战性的任务。 多年来,研究人员提出了不同的方法来加速和稳定学习过程。 归一化是一种被证明在这方面非常有效的技术。 在这篇文章中,我将使用类...【详细内容】
2022-07-08  deephub    Tags:深度学习   点击:(11)  评论:(0)  加入收藏
与人类不同,人工神经网络在学习新事物时会迅速遗忘先前学到的信息,必须通过新旧信息的交错来重新训练;但是,交错全部旧信息非常耗时,并且可能没有必要。只交错与新信息有实质相似...【详细内容】
2022-07-06    雷峰网  Tags:深度学习   点击:(20)  评论:(0)  加入收藏
近年来,机器人和人工智能(AI),一直是许多人关注的重点议题,人工智能能不能取代人类的工作,也常被人拿来讨论。国际会计事务所“普华永道(PwC)”发布的分析称,在未来20年内,人工智能和...【详细内容】
2022-06-20  话匣子聊天    Tags:人工智能   点击:(32)  评论:(0)  加入收藏
face_recognition是一个强大、简单、易上手的人脸识别开源项目,并且配备了完整的开发文档和应用案例,特别是兼容树莓派系统。非常最简洁的人脸识别库,使用和安装都非常简单,可以...【详细内容】
2022-06-11  AI工具箱    Tags:face_recognition   点击:(18)  评论:(0)  加入收藏
AIoT是大势所趋;“算法定义硬件”是核心理念;开放生态是必由之路当前,我们正在大踏步地迈入物联网时代,AIoT将是互联网发展的下一次浪潮。物联网一定是高度智能化的网络,“智能”...【详细内容】
2022-06-08    金融界  Tags:AIoT   点击:(35)  评论:(0)  加入收藏
人工智能作为第四次工业革命的重要抓手之一,已经成为各国科技领域争夺的焦点。中美两国在该领域各有千秋,竞争日趋激烈。国内人工智能政策环境较好,产业基础初步具备,市场需求十...【详细内容】
2022-05-26  JIEWEIGZ    Tags:AI   点击:(35)  评论:(0)  加入收藏
微克软件机器人通过模拟人工操作进行业务流程自动化处理,提高办公效率和优化办公品质,拥有鼠标键盘操作、融合OCR文字识别、目标检测等AI人工智能技术,能够轻松将日常办公中的...【详细内容】
2022-04-30  微克软件机器人    Tags:AI   点击:(152)  评论:(0)  加入收藏
人工智能是一个广义术语,包括通用人工智能、机器学习、数据挖掘等多个方面,目前我们在游戏、机器人、人脸识别、语音识别、视觉识别、搜索引擎、智能推荐上都能看到AI的身影。...【详细内容】
2022-04-29  圣普伦数字技术培训    Tags:人工智能   点击:(59)  评论:(0)  加入收藏
站内最新
站内热门
站内头条