[Deeplearning4j应用教程00]_DL4J技术介绍
文章目录
- 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上的NumpySameDiff
用于符合微分和计算图库DataVec
数据处理库,提供采样、过滤、变换等操作Arbiter
神经网络超参数搜索和优化库RL4J
JVM上的强化学习库Model Import
模型导入库,可以导入ONNX,TensorFlow,Keras(Caffe)模型Jumpy
ND4J对应python语言APIPython4j
可以在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 标准)。
[Deeplearning4j应用教程00]_DL4J技术介绍相关推荐
- VAPS XT开发入门教程00:基本介绍
昨天(2021.10.12)到某研究所对其人员进行培训,发现一些问题,经过整理之后,形成本文比较系统化的培训流程. 当然,如果需要打补丁,本文会更新. VAPS XT介绍 VAPS XT基于PC机的人 ...
- 乐行学院RabbitMQ学习教程 第一章 RabbitMQ介绍(可供技术选型时使用)
乐行学院RabbitMQ学习教程 第一章 RabbitMQ介绍 RabbitMQ介绍 1.RabbitMQ技术简介 2.RabbitMQ其他扩展插件 2.1监控工具rabbitmq-managemen ...
- Unity+Vuforia SDKAR开发系列教程--1.1 AR技术介绍
1.1 AR技术介绍 提起AR技术,相信真正了解它的人还不多,或者是大多数的人都会第一时间把这种技术和各种各样的智能穿戴设备例如谷歌眼镜.智能手表等联系起来.其实,AR应用的领域是非常广的,并不仅仅局 ...
- 线上分享会预告之三维模型检索技术介绍
大家好.本周公众号将迎来第一位线上直播分享会,此次分享是一次接力,我们希望更多的加入我们一起分享.这里先预告一下,线上直播的时间在本周三晚上19::00,大家多多关注. 本周线上分享会预告 主讲题目: ...
- Arduino可穿戴开发入门教程Arduino开发环境介绍
Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...
- arkit技术介绍_面向移动AR的触觉技术:如何以“触摸”感增强ARKit应用
arkit技术介绍 by Neil Mathew 通过尼尔·马修(Neil Mathew) 面向移动AR的触觉技术:如何以"触摸"感增强ARKit应用 (Haptics for m ...
- 容器技术介绍之docker核心技术概述
容器简单来说是一种沙盒技术,将应用"装"进沙盒中,像集装箱一样,把应用封装起来,使得应用之间不会相互干扰,而放进沙盒中的应用也方便"搬家".本文基于docker ...
- 昆石VOS2009/VOS3000 2.1.6.00 新功能介绍
昆石VOS2009/VOS3000 2.1.6.00 新功能介绍 VOS 2009/VOS 3000 各种安装包/安装激活教程: http://51voip.org/catalog.asp?cate= ...
- 大数据技术介绍:01大数据概述
大数据技术介绍:01大数据概述 大数据技术框架: Hadoop生态系统(1) Hadoop生态系统(2) Hadoop构成:Flume(非结构化数据收集): Cloudera开源的日志收集系统 用于非 ...
最新文章
- 高并发01_synchronized
- python安装多少位_python安装流程
- 银行卡突然收到500万银行会监控吗?
- BZOJ2301: [HAOI2011]Problem b(莫比乌斯反演)
- 服务器集成显卡性能,Win8.1与Ubuntu 14.10:集成显卡性能PK
- 模板解压下来是php文件,smarty模板解压完将libs目录放到哪?
- stm32固件库文件
- (亲测有效)Win11卸载Edge浏览器
- LMS自适应滤波的MATLAB实现——实例仿真
- 音乐频率的划分及播放器均衡器设置
- 更改iterm2命令行从$到%
- win10html网页运行空白,win10系统Ie浏览器无法打开HTML格式的网页文件的处理秒方...
- 如何在word中使用latex输入下括号?
- 如何清理C盘(小白版)
- 基于matlab的蝗虫优化(Grasshopper Optimization Algorithm,GOA)算法仿真
- CTFshow——MISC入门
- Windows 10 Excel批量导入打印条形码标签免费工具介绍
- notepad转换json_Notepad++的Json格式化插件
- 交换机串行损耗解决之预加重
- 详细分析一般贸易出口流程
热门文章
- [PHP] 高并发 php uniqid 不重复唯一标识符生成方案
- 利用widget实现一个时钟功能小插件
- 最标准的系统字体规范font-family
- MAC OS 命令行删除分区方法
- cs6导航栏代码html,总算认识网页设计教程|Dreamweaver-CS6工具栏详解
- BootStrap中修改navbar导航条的默认高度
- 【毕业设计】机器视觉答题卡识别系统 - python 深度学习
- java游戏魔塔20层_▓▓◇◆20层魔塔超详细攻略◇◆ ▓▓
- 学计算机去华科还是哈工大,我想学工科,哈工大、武汉大学、东南大学、华科,到底选哪个?...
- 化工专业学c语言吗,985院校的哪些专业在C+之下?