数据向量:一个向量化的ETL(抽取、转换和加载)库
数据向量解决了有效机器或深度学习的最重要障碍之一:将数据转换成神经网络可以理解的格式。神经网络理解向量。向量化是数据科学家开始在数据上训练他们算法之前必须解决的首要问题。数据向量应该适用于你99%的数据转换,如果你不确定它是否适用于你,请在gitter 上咨询。数据向量支持大多数数据格式,但是您也可以实现自己的自定义记录读取器。如果你的数据是以CSV(逗号分割值)格式存在文本文件中,必须转换为数值并攫取,或者您的数据是标记图像的目录结构,那么数据向量就是帮助您组织这些数据以便在Deeping4J中使用的工具。在使用数据向量之前请阅读这一整页,特别是下面的记录读取章节。
视频介绍
这个视频描述了图片数据到向量的转换。
<iframe src="https://www.youtube.com/embed/EHHtyRKQIJ0" frameborder="0" width="425" height="350"></iframe>
关键方面
- 数据向量使用一个输入/输出格式系统(类似于MapReduce使用InputFormat来决定InputSplits(输入分割器)和RecordReaders(记录读取器)的某些方式,数据向量也提供了RecordReaders来系列化数据 )
- 设计为支持所有主要输入数据类型(文本, CSV, 音频, 图像和视频)
- 使用一个输出格式系统来指定一个实现- 中性型向量格式(ARFF, SVMLight,等.)
- 可被扩展且于特殊的输入格式(例如exotic图片格式 );你可以写你自己的定制的输入格式并让代码库的其余部分处理转换管道。
- 把向量化当作一等公民
- 内置转换工具用于转换和归一化数据
- 请查看DataVec Javadoc
下面有一个简短的教程。
一些示例
- 将基于CSV的UCI Iris数据集转换为svmLight开放矢量文本格式
- 从原始的二进制文件将MNIST数据集转换为svmLight开放矢量文本格式
- 转换原始文本为metronome向量格式
- 在一个文本向量格式{svmLight, metronome, arff}中将原始文本转换为基于TF-IDF(词频-逆文件频率) 的向量
- 在一个文本向量格式{svmLight, metronome, arff}中将原始文本转换为word2vec向量
定向向量化引擎
- 用脚本转换语言将任意的CSV转换为向量
- MNIST 转换为向量
- 文本转换为向量
- TF-IDF(词频-逆文件频率)
- 词袋
- word2vec
CSV转换引擎
如果数据是数字的和适当的格式,那么CSVRecordReader可能是令人满意的。然而如果你的数据有非数字属性比如有代表布尔值(T/F)的字符或是用于标签的字符那么概要转换是有必要的。数据向量使用apache spark 来完成转换操作。请注意你不需要知道spark内部机置就可以成功地用数据向量完成转换。
概要转换视频演示
一个简单的数据向量转换视频教程和一个如下可用的代码。
<iframe src="https://www.youtube.com/embed/MLEMw2NxjxE" frameborder="0" width="425" height="350"></iframe>
JAVA示例代码
我们的例子包括一系列数据向量的例子。
记录读取,数据迭代
如下代码展示了一个例子如何工作,原始图片,把它们转换为可以和dl4j和nd4j一起工作的格式。
// 初始化 RecordReader.指定图片的高、宽、和通道.
// 注意到灰度输出通道= 1, 当用作RGB图片时, 通道=3
RecordReader recordReader = new ImageRecordReader(28, 28, 3);
// 指向一个数据路径.
recordReader.initialize(new FileSplit(new File(labeledPath)));
RecordReader是数据向量中的一个类,帮助把面向字节的输入转换为面向记录的数据;元素的一个集合是以一个数字固定的并以一个惟一ID索引。把数据转换为记录是向量化的过程。记录本身是个向量,每个元素都是一个特征。ImageRecordReader 是 RecordReader的子类并且它内置自动摄取28×28像素图像。
因此,LFW图像被缩放到28像素×28像素。你可以通过更改传给ImageRecordReader的参数来更改维度以匹配自定义图像,只要你确保适应nIn超参数即可,nIn超参数等于图像高度x图像宽度的乘积。上面显示的其他参数包括true,它指示读取器将标签附加到记录中,标签是用于验证神经网络模型结果的一组监督值(例如,目标) 这里是所有来自数据向量预构建的记录读取器的扩展(在IntelliJ中,你可以通过在RecordReader右击,在下拉菜单中再点击 Go go 并选择 Implementations 来找到它们)
DataSetIterator 是Deeplearning4J 中 用于访问列表元素的类。
迭代器遍历数据列表,顺序访问每个元素项,通过指向其当前元素跟踪其进度,并修改自身以指向遍历中的每个新步骤的下一个元素。
// DataVec to DL4J
DataSetIterator iter = new RecordReaderDataSetIterator(recordReader, 784, labels.size());
DataSetIterator迭代输入数据集,每次迭代获取一个或多个新示例,并将这些示例加载到神经网络可以使用的数据集对象中。
需要注意的是 ImageRecordReader产生4维图像数据,匹配dl4j所需要的激活层。因此,每一个28x28 RGB图像用一个4维数组表示,例如维度[小批量,通首,高,宽]=[1,3,28,28]。注意到上面的构造器行也指明了标签的数量。注意到 ImageRecordReader 不会规一化图片数据,因此每个像素/通道值将会在0到255之间(一般应分别归一化-例如使用ND4J的 ImagePreProcessingScaler 和其它的规一化器)。RecordReaderDataSetIterator
可以作为你想指定的记录读取器的参数(图片,声音)和批量大小。 对于有监督学习,它还将采取标签索引和可应用于输入的可能标签的数量(对于LFW,标签的数量是5749)。
执行
作为本地串行进程和一个MapReduce进程来运行,没有代码更改的扩展过程。
定向向量格式
- svmLight
- libsvm
- Metronome
- ARFF
内置通用功能
- 理解如何通用文本和文本转换为向量,并把它与例如核散列和TF-IDF库存技术结合使用。
有任何问题请联系微信
相关推荐
赠送jar包:datavec-api-1.0.0-M1.1.jar; 赠送原API文档:datavec-api-1.0.0-M1.1-javadoc.jar; 赠送源代码:datavec-api-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:datavec-api-1.0.0-M1.1.pom; 包含...
赠送jar包:datavec-data-image-1.0.0-M1.1.jar; 赠送原API文档:datavec-data-image-1.0.0-M1.1-javadoc.jar; 赠送源代码:datavec-data-image-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:datavec-data-...
赠送jar包:datavec-api-1.0.0-M1.1.jar; 赠送原API文档:datavec-api-1.0.0-M1.1-javadoc.jar; 赠送源代码:datavec-api-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:datavec-api-1.0.0-M1.1.pom; 包含...
赠送jar包:datavec-data-image-1.0.0-M1.1.jar; 赠送原API文档:datavec-data-image-1.0.0-M1.1-javadoc.jar; 赠送源代码:datavec-data-image-1.0.0-M1.1-sources.jar; 赠送Maven依赖信息文件:datavec-data-...
赠送jar包:deeplearning4j-datavec-iterators-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-datavec-iterators-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-datavec-iterators-1.0.0-M1.1-sources....
赠送jar包:deeplearning4j-datavec-iterators-1.0.0-M1.1.jar; 赠送原API文档:deeplearning4j-datavec-iterators-1.0.0-M1.1-javadoc.jar; 赠送源代码:deeplearning4j-datavec-iterators-1.0.0-M1.1-sources....
数据载体DataVec是Apache 2.0许可的库,用于机器学习ETL(提取,转换,加载)操作。 DataVec的目的是将原始数据转换为可用的矢量格式,然后将其提供给机器学习算法。 通过向该存储库贡献代码,您同意根据Apache 2.0...
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 ...
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 ...
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 ...
- **数据预处理**:DataVec是DL4J的一部分,专门用于数据清洗和转换,如归一化、标准化等。 3. **DL4J Spark**: - **分布式训练**:DL4J与Apache Spark结合,可以在大规模分布式环境中进行深度学习,利用Spark的...
#### Deeplearning4j概述 Deeplearning4j(简称DL4J)是一款由AI创业公司Skymind主导开发并维护的开源深度学习框架。该框架专为Java及JVM环境设计,得到了包括腾讯、SVAngel、GreatPoint Ventures在内的多家知名...
2. **datavec-hadoop-0.9.1.jar**:Datavec是DL4J的一部分,它是一个数据采集和转换工具,此版本支持Hadoop,允许大规模分布式数据处理,适合处理大型数据集。 3. **deeplearning4j-zoo-0.9.1.jar**:DL4J Zoo提供...
(DL4J)生态系统是一组项目,旨在满足基于JVM的深度学习应用程序的所有需求。 这意味着从原始数据开始,从任何位置以任何格式加载和预处理原始数据,以构建和调整各种简单和复杂的深度学习网络。...
基于java+深度学习开发的农作物病虫害识别+APP软件+源码+项目解析+数据+模型训练+数据库,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于java+深度学习开发的...
dl4j-examples-0.9.1.jar 深度学习示例,其中包括: •deeplearning4j-core,包含神经网络实现方法 •nd4j-native-platform,ND4J库的CPU版本,驱动DL4J •datavec-api - Datavec是我们的数据向量化和加载库
作者通过使用DL4J、ND4J和DataVec等Java生态系统中的关键库,为读者提供了一条在实际项目中应用深度学习的清晰路径。 深度学习是机器学习的一个子领域,它借鉴了人脑神经网络的结构,通过构建多层的非线性模型来...
for i in range(len(dataVec) - 3): # 非数值特征 for j in range(numList[i]): if dataVec[i] == featureDic[features[i]][j]: newData.append(j + 1) ``` 这段代码首先遍历每条记录中的非数值特征,然后查找该...
deeplearning4j-docs Deeplearning4j及其所有库(DL4J,ND4J,Arbiter,DataVec等)的文档都位于此存储库中。 警告:请勿直接在此存储库中编辑用户指南。 提交将被还原。 请对主存储库进行更改,运行自动生成过程,...