[Deeplearning4j应用教程00]_DL4J技术介绍

article/2025/4/30 3:49:15

文章目录

  • Deeplearning 4j概览
  • Deeplearning主要组件
    • nd4j
    • SameDiff
    • Datavec
    • Deeplearning
    • Deeplearning技术栈与工作流
  • Konduit

Deeplearning 4j概览

Deeplearning4j当前最大、最流行的基于JAVA的深度学习框架,截止目前,社区人数为4900+,拥有11800+颗星,160000+的下载量。Deeplearning4j正式诞生于2013年,在2017年加入Eclipse基金会,由美国的Skymind开源并维护。

  • 支持神经网络模型的构建、模型训练和部署
  • 能够与现有大数据生态进行无缝衔接(Hadoop、Spark等),也是可以原生态支持分布式模型训练的框架之一
  • 支持多线程
  • 跨平台(硬件:CUDA GPu,x86,ARM,PowerPC;操作系统:Windows/Mac/Linux/Android)

社区

Deeplearning主要组件

  • Deeplearning4j,ScalNet
    Jvm和Spark上运行神经网络构建、训练和部署的基础框架库

  • ND4J/libND4J
    支持CPU/GPU加速的高性能数值计算库,可以说是JVM上的Numpy

  • SameDiff
    用于符合微分和计算图库

  • DataVec
    数据处理库,提供采样、过滤、变换等操作

  • Arbiter
    神经网络超参数搜索和优化库

  • RL4J
    JVM上的强化学习库

  • Model Import
    模型导入库,可以导入ONNX,TensorFlow,Keras(Caffe)模型

  • Jumpy
    ND4J对应python语言API

  • Python4j
    可以在JVM里运行python脚本语言

下面,我们将对几个主要的组件进行具体介绍。

nd4j

在这里插入图片描述
ND4J中常用的类
在这里插入图片描述
ND4J中的NDArray使用示例

  • 创建NDArray对象
    Nd4j.zeros(int nRows,int nCols)
    Nd4j.create(float [],int int[])

  • 获取属性
    尺寸:arr.size(i),长度:arr.length(),行:arr.rows()

  • 运算(加减乘除…)
    arr.add(myDouble);arr.sub(myDouble);arr.mul(myDouble);arr.di v(myDouble);Nd4j.sort(Array,0,true)

  • 规约操作
    arr.normal(),arr.prod()

  • 矩阵操作
    arr.transpose();arr.Reshape(…);
    Nd4j.toFlattened(arr)

SameDiff

SameDiff是具有自动微分功能的张量计算库8,其自动微分方法是基于静态图的方法,提供神经网络运算中更为底层的接口,主要用于自定义神经网络拓扑结构。

使用示例如下:
在这里插入图片描述
在这里插入图片描述
另外,SameDiff支持导入Tensorflow冻结模型格式的.pd(protobuf)模型。对ONNX、TensorFlow SaveModel和Keras模型的导入正在完善中。我们可以简单的认为SameDiff和DL4J的关系类似于Tensorflow和Keras。

Datavec

DataVec是一个用于机器学习ETL(提取、转换、加载)操作的库,目的是将原始数据转化为可用的向量格式,从而将其输入到机器学习算法中。

整体流程如下:
在这里插入图片描述
同时,DataVec也支持所有主要类型的输入(CSV、文本、图像、音频、视频和数据库)

整体流程如下:
在这里插入图片描述
除了明显提供经典数据格式的读取器,DataVec还提供了一个接口。因此,如果你想摄取特定的自定义数据,你就不必构建整个管道。你只需要编写第一步就可以了。例如,如果你通过API描述你的数据如何符合符合接口的通用格式,DataVec将为每条记录返回一个可写列表。你会在相应的模块中找到更多关于API的细节。你可以用DataVec做的另一件事是数据清洗。比方说,你不是拥有干净的、随时可以使用的数据,而是从不同形式或不同来源的数据开始。您可能需要进行采样、过滤,或者在现实世界中准备数据所需的几个令人难以置信的混乱的ETL任务。DataVec提供了过滤器和转换,帮助你策划、准备和处理数据。它利用Apache Spark来大规模地完成这些任务。最后,DataVec为您的列式数据跟踪一个模式,跨越所有转换。该模式会通过探测进行主动检查,如果您的数据与模式不匹配,DataVec会引发异常。您也可以指定过滤器:例如,您可以将正则表达式附加到类型为String的输入列中,DataVec将只保留符合该过滤器的数据。

DataVec使用示例:

在这里插入图片描述
在这里插入图片描述

Deeplearning

神经网络高层API库,用于构建具有各种层的MultiLayerNetworks和ComputationGraphs,支持从其他框架导入模型和在Apache Spark上进行分布式训练。
在这里插入图片描述
在这里插入图片描述

Deeplearning主要类

Layer
● Feedforward Layers
● Output Layers
● Convolutional Layers
● Recurrent Layers
● Unsupervised Layers
● …
在这里插入图片描述
Configuration
● Activation Functions
● Weight Initialization
● Updaters (Optimizers)
● Learning Rate Schedules
● Regularization
○ L1/L2 regularization
○ Dropout
○ Weight Noise
○ Constraints
在这里插入图片描述
Deeplearing示例:
在这里插入图片描述
在这里插入图片描述

Deeplearning技术栈与工作流

在这里插入图片描述
在这里插入图片描述
Deeplearning可视化界面:
在这里插入图片描述

Konduit

Konduit 是一个专注于将机器学习工作流部署到生产环境中的服务系统和框架,核心概念是PipelineStep(工作流步骤 )。
在这里插入图片描述
Konduit-旨在使模型开发和部署更加高效和易用
在这里插入图片描述
Konduit与其他部署方式的比较
在这里插入图片描述
另外,Konduit支持多种输入和输出数据格式,如:numpy、Json、ND4J 图片、ARROW。

Konduit工作流水线步骤(Pipeline steps)
在这里插入图片描述

Konduit框架结构
在这里插入图片描述
使用Konduit部署MNIST模型示例:
一:将工作流水线参数写入配置文件
1、输入、输出数据类型和格式
2、流水线步骤
二:启动konduit服务
命令行方式:konduit serve --config tf_mnist.yaml -id server
在这里插入图片描述
Konduit可视化监控
在这里插入图片描述
● Konduit推行的现代化的可视化标准,用于监控在服务器端从GPU到推理时段的一切行为。
● Konduit支持可视化应用程序,如Grafana (该程序支持数据可视化领域的Prometheus 标准)。


http://chatgpt.dhexx.cn/article/K0SbOfC5.shtml

相关文章

[Deeplearning4j应用教程04]_基于DL4J的神经网络实现

DL4JScala的神经网络实现 一、内容简介二、准备工程与环境三、准备工作空间四、准备要加载的数据五、神经网络的搭建六、训练神经网络模型七、评估模型 一、内容简介 Deeplearning4j(也称为“ DL4J”)是一种高性能的特定领域语言,用于配置由…

从TensorFlow到DL4J——主流深度学习框架对比分析

从TensorFlow到DL4J——主流深度学习框架对比分析 2022年2月22日 极链AI云 官网地址 点击注册 更多AI小知识,关注《极链AI云》公众号 文章目录 从TensorFlow到DL4J——主流深度学习框架对比分析一、深度学习框架概述与深度学习技术的四大阵营二、主流开源深度学习框…

DL4J中文文档/ND4J/概述

本用户指南旨在解释(并提供示例)ND4J中的主要功能。 简介 NDArrays:它们在内存中是如何存储的?视图:当两个或更多NDArrays引用相同的数据创建NDArrays 0,1和标量值初始化数组随机数组从Java数组创建NDArrays从其它NDArrays创建ND…

DL4J实战之五:矩阵操作基本功

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 作为《DL4J实战》系列的第五篇,在前面对深度学习有一定的了解后,本篇会暂停深度学习相关的操作,转为基本功练习&…

DL4J实战之六:图形化展示训练过程

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是《DL4J实战》系列的第六篇,咱们继续夯实基本功,这次学习的是如何更加形象完整的展示训练过程:图形化页面&…

使用tensorflow搭建深层神经网络

6在吴恩达老师的《深度学习》第二课第三周的课程中,提及到了多种深度学习框架,包括caffe/caffe2,CNTK,DL4J,Keras,Lasagne,mxnet,paddlepadle,tensorflow,The…

[Deeplearning4j应用教程02]_DL4J环境搭建教程-Windows版

Windows下DL4J环境搭建教程 一、DL4J简介二、Windows下DL4J环境搭建三、安装JDK1.1、JDK简介1.2、JDK下载安装1.3、安装JDK1.3.1、环境变量配置 四、安装Intellij idea五、Maven Apache安装六、在IDEA中配置Maven七、安装Git八、获取DL4J示例代码九、在IDEA中导入项目并运行 一…

DL4J源码分析

目录 源码目录(部分) NDArray 工作间 DL4J的层工作间管理器 沿维张量(TAD) 反向减法 源码目录(部分) DeepLearning4J: 包含用于既在单个机器上,又在分布式上学习神经网络的所有代码。 N…

DL4J实战之四:经典卷积实例(GPU版本)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 作为《DL4J实战》的第四篇,今天咱们不写代码,而是为今后的实战做些准备:在DL4J框架下用GPU加速深度学习的训练过…

DL4J实战之三:经典卷积实例(LeNet-5)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 作为《DL4J》实战的第三篇,目标是在DL4J框架下创建经典的LeNet-5卷积神经网络模型,对MNIST数据集进行训练和测试&#xff0…

DL4J实战之二:鸢尾花分类

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《DL4J》实战的第二篇,前面做好了准备工作,接下来进入正式实战,本篇内容是经典的入门例子:鸢…

DL4J实战之一:准备

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于DL4J DL4J是Deeplearning4j的简称,是基于Java虚拟机的深度学习框架,是用java和scala开发的,已开源,官网&…

【DL4J】基本操作_学习笔记(二)

DL4J基本操作 文章目录 DL4J基本操作1. 创建矩阵2. 矩阵元素读取3. 矩阵行元素读取4. 矩阵运算 导入依赖 <nd4j.version>1.0.0-beta2</nd4j.version><dependency><groupId>org.nd4j</groupId><artifactId>nd4j-native-platform</artifa…

【DL4J速成】Deeplearning4j图像分类从模型自定义到测试

文章首发于微信公众号《有三AI》 【DL4J速成】Deeplearning4j图像分类从模型自定义到测试 欢迎来到专栏《2小时玩转开源框架系列》&#xff0c;这是我们第九篇&#xff0c;前面已经说过了caffe&#xff0c;tensorflow&#xff0c;pytorch&#xff0c;mxnet&#xff0c;keras&…

深度学习框架DeepLearning4J(DL4J)的安装及配置

一、DeepLearning4J的简介和系统要求 1、DeepLearning4J简介 Deeplearning4J&#xff08;以下简称DL4J&#xff09;不是第一个开源的深度学习项目&#xff0c;但与此前的其他项目相比&#xff0c;DL4J在编程语言和宗旨两方面都独具特色。DL4J是基于JVM、聚焦行业应用且提供商…

适合中学生看的英文电影

怎样利用好丰富的资源来学习英语口语呢&#xff1f;其实其实看什么样的剧、如何看剧都是很讲究的。一起来解锁吧。 一、选剧要学会拆解自己学习目标&#xff0c;选定合适的类型&#xff0c;各取所需。 并不是所有类型的国外影视剧都适合作为学习的素材&#xff0c;主要依据自身…

springboot+mybatis实现简单的增、删、查、改

这篇文章主要针对java初学者&#xff0c;详细介绍怎么创建一个基本的springboot项目来对数据库进行crud操作。 目录 第一步&#xff1a;准备数据库 第二步&#xff1a;创建springboot项目 方法1&#xff1a;通过spring官网的spring initilizer创建springboot项目 方法2&am…

tk-mybatis使用介绍,springboot整合tk-mybatis、PageHelper实现分页查询

Mybatis-Plus极大简化了我们的开发&#xff0c;作为mybatis的增强版&#xff0c;Mybatis-Plus确实帮我们减少了很多SQL语句的编写&#xff0c;通过其提高的API&#xff0c;可以方便快捷第完成增删查改操作。但是&#xff0c;其实除了Mybatis-Plus以外&#xff0c;还有一个技术t…

SXSW 2022线下展回归,今年有哪些有趣的AR/VR内容?

如今海外的线下活动开始逐渐恢复&#xff0c;今年的SXSW活动也回归线下。与往年相比&#xff0c;这场艺术、音乐、电影的年度盛会在今年进一步融合新兴科技&#xff0c;比如将AR/VR与线下活动结合&#xff0c;带来了更多样化的娱乐应用场景。 那么今年活动上都有哪些看点&#…

UE4 Ultra Dynamic Sky 参数翻译及功能概述

Ultra Dynamic Sky的虚幻商城链接: Ultra Dynamic Sky Ultra_Dynamic_Sky翻译及功能概述 basic controls 基础控制 Refresh Settings 刷新设置 检查此布尔一次&#xff0c;以刷新所有设置&#xff1b; Time Of Day 一天中的时间 一天中天空模仿的时间&#xff0c;从0000到…