Deeplearning4j的数据是由一个叫做DataSet的对象传入网络进行训练的,DataSet由四个主要元素组成,Features,Labels,FeaturesMask,LabelsMask,这四个元素都是INDArray,即是N维矩阵或者叫做N维张量。一般来说是2-4维矩阵,分别对应全联接网络、RNN网络、CNN网络的输入。

四个元素简单介绍如下:

  • Features 特征,特征可以是N维矩阵,以RNN举例,RNN的输入矩阵各维度的维数是[MiniBatch,FeaturesLength,TimeSeqLength],其中第二个维度就是特征列的个数,单个值[x,y,z]的含义就是MiniBatch的某一个批次x,时间序列TimeSeq的某一个时间点z,某一个Feature特征y的值。
  • Labels 标签,标签的维度需要和特征相对应,还是以RNN为例,标签的维度的维数就是[MiniBatch,LabelLength,TimeSeqLength],其中,如果网络是一个分类器网络的话,LabelLength是对应标签的独热处理,即LabelLength相当于分类数classes;如果网络是一个回归函数的话,那么LabelLength就是对应输出的几个回归目标值y的个数(一般是一个)。即是说,FeaturesLength相当于网络的InputSize;LabelLength相当于网络的OutputSize。输入输出的宽度。
  • FeaturesMask以及LabelsMask 特征掩模和标签掩模,如果需要掩盖某些数据的输入输出,即我们需要扔掉一些数据的输入或者输出,比方说RNN序列输出我只需要输出最后一个,或者输入我只需要前三个,那么这两个元素就有用了。以RNN为例,如果我的Label每个TimeSeq只输出最后一个时间点的值,那么LabelsMask就可以这么写,labelsMask的维度是[MiniBatch,TimeSeqLength],比方说是[x,y]当且仅当y = TimeSeqLength - 1 的时候[x,y] = 1,其余[x,y] = 0。这样就写好了一个输出的掩模。

关于RNN掩模的具体介绍可以看官网:

通过DL4J使用循环网络

Dataset的初始化方法源码:

/*** Creates a dataset with the specified input matrix and labels** @param first  the feature matrix* @param second the labels (these should be binarized label matrices such that the specified label*               has a value of 1 in the desired column with the label)*/
public DataSet(INDArray first, INDArray second) {this(first, second, null, null);
}/**Create a dataset with the specified input INDArray and labels (output) INDArray, plus (optionally) mask arrays* for the features and labels* @param features Features (input)* @param labels Labels (output)* @param featuresMask Mask array for features, may be null* @param labelsMask Mask array for labels, may be null*/
public DataSet(INDArray features, INDArray labels, INDArray featuresMask, INDArray labelsMask) {this.features = features;this.labels = labels;this.featuresMask = featuresMask;this.labelsMask = labelsMask;// we want this dataset to be fully committed to deviceNd4j.getExecutioner().commit();
}

可以用getRange函数来截取一部分数据。

DataSet可以用merge函数竖向拼接。

可以用load函数来从流(或将文件转化为流)中读取数据。

可以用save函数来将DataSet存成流或者文件。Save和load函数会规定好用一个Byte的数据表示读取的一些属性,这样load的时候就能正确解析。

DL4J的神经网络输入处理DataSet介绍相关推荐

  1. DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码

    DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码 目录 基于自定义数据集利用深度神经网络(输入层(10个 ...

  2. 神经网络的基本结构介绍

    文章目录 一.一个最简单的神经网络 (一)实例引入--利用神经网络预测房价 (二)神经网络输入层,中间层和输出层的理解 二.神经网络中机器学习的三要素 三.神经网络的模型 (一)神经网络模型直观上的理 ...

  3. 递归神经网络教程(1)-RNN介绍

    递归神经网络教程(1)-RNN介绍 Source: http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-in ...

  4. java spark dataset_Spark 2.0介绍:Dataset介绍和使用

    <Spark 2.0技术预览:更容易.更快速.更智能>文章中简单地介绍了 Dataset介绍 Dataset是从Spark 1.6开始引入的一个新的抽象,当时还是处于alpha版本:然而在 ...

  5. 神经网络输入图片大小,神经网络提取图片特征

    BP神经网络输入输出格式问题 在你的代码基础上说了.clc;clear;closeall;p=load('');%你问题最后说的数据文件名跟这个不同. p1=p';t=[1];%这个输出(Target ...

  6. 彩虹6号联那个服务器延迟低,彩虹六号围攻减少卡顿和输入延迟方法介绍

    彩虹六号围攻减少卡顿和输入延迟方法介绍 2018-04-05 12:25:03来源:贴吧编辑:野狐禅评论(0) <彩虹六号围攻>如何减少卡顿和输入延迟呢?很多玩家都想知道,下面就为大家带来 ...

  7. 深度神经网络中Inception-ResNet模块介绍

    之前在https://blog.csdn.net/fengbingchun/article/details/113482036 介绍了Inception,在https://blog.csdn.net/ ...

  8. 开源神经网络框架Caffe2全介绍

    本文作者吴逸鸣,整理自作者在GTC China 2017大会上的演讲,首发于作者的知乎文章. 我个人认为这是一份很值得分享的资料,因为 这应该是第一次使用全中文来讲解Caffe2和FB的AI应用的演讲 ...

  9. PyG图神经网络框架学习--示例介绍

    实例介绍 通过自带的示例介绍并学习PyG.主要从以下4各方面: 图数据处理 通用基准数据集 Mini-batches 数据转换 图学习方法 图数据处理 图用于对对象(节点)之前的关系(边)进行建模.P ...

最新文章

  1. messenger支持查找附近的人功能吗_最新的 macOS Catalina 正式版,值得更新吗?
  2. 建议15: 使用dynamic来简化反射实现
  3. (2)MATLAB 车牌图像配准
  4. jzoj3319-[BOI2013]雪地踪迹【bfs】
  5. matlab7.0 run,新手求救啊!!!matlab7.0在win7启动后命令窗口出现大段代码!
  6. html5 实现波浪效果图,利用HTML5实现Canvas流动的波浪特效
  7. 在 2017 年将会更加流行的 6 个 Web 开发趋势
  8. python的变量与注释
  9. hadoop 命令行运行
  10. javaweb课程PSP(1)
  11. 怎么批量抠复杂的图_抠图怎么抠?一次教你五招!
  12. 适配ofd签章SES_CertList
  13. shell脚本中select循环语句用法
  14. 网络抖动多少ms算正常_网络延迟多少ms算正常 - 卡饭网
  15. html中嵌入flvplayer.swf播放器,播放视频
  16. C语言 | 杭州电子科技大学ACM | 求和问题
  17. Unity3D开发游戏坦克大战
  18. 火星探险问题 网络流
  19. 第1107期AI100_机器学习日报(2017-09-29)
  20. java libraries在哪_java.library.path在哪?

热门文章

  1. 【华为机试真题 Python实现】华为机试题整理(已更新211篇)
  2. 礼金记账本安卓_份子钱记账本下载-份子钱记账本最新版下载(暂未上线)_预约_飞翔手机下载站...
  3. 「菜鸟初探」纯CSS实现二级导航
  4. 软件测试面试题:你自认为测试的优势在哪里?
  5. html div居中属性,让div水平居中设置margin属性
  6. Vlayout使用详细介绍
  7. OSError: [WinError 127] 找不到指定的程序。
  8. 笔记本电池9针脚图解_上柴Econtrols天然气发动机控制系统原理图解
  9. pro6 surface 黑苹果_Surface Pro6典雅黑入手体验
  10. 为什么国内互联网中大厂都酷爱造轮子?