简要介绍DL4J中的可用示例。
DL4J的Github仓库有很多示例可以涵盖它的功能。快速入门向你展示了如何设置Intellij并克隆仓库。本页提供这些例子中的一些概述。
大多数示例都使用DataVec,这是一个通过归一化,标准化,搜索和替换,列洗牌和向量化 预处理和清洗数据 的工具包。为神经网络读取原始数据并将其转换为DataSet对象通常是训练该网络的第一步。如果你不熟悉DataVec,这里有一个描述和一些有用的例子的链接。
本例采用同名花卉品种的标准Iris数据集,其相关测量值是萼片长度、萼片宽度、花瓣长度和花瓣宽度。它从相对较小的数据集构建一个Spark RDD,并对其进行分析。
加载数据到一个Spark RDD的示例。所有 DataVec 转换操作都使用Spark RDD。这里我们使用DataVec来过滤数据,应用时间转换和删除列。
这个例子显示了打印概要工具,这些工具对于可视化和确保转换的代码行为符合预期是有用的。
在传递传递数据集到一个神经网络之前,你可能需要连接数据集。你可以用DataVec实现,这个例子告诉你如何实现。
这是使用DataVec解析日志数据的示例。明显的使用场景是是网络安全和客户关系管理。
这个例子是从下面的视频中演示的,它展示了ParentPathLabelGenerator和ImagePreProcessing缩放器。
此示例演示了DataVec中可用的预处理特征。
DataMeta数据跟踪——即查看每个示例的数据来自何处——在跟踪导致错误和其他问题的格式错误的数据时非常有用。此示例演示RecordMetaData类中的功能。
为了构建一个神经网络,你将使用多层网络或计算图。这两种选项都使用Builder接口工作。下面描述了几个例子中的亮点。
MNIST是深度学习的入门。简单,直接,重心在于图像识别,神经网络做得很好的任务。
这是一个用于识别数字的单层感知器。请注意,这会从包含数据集的二进制包中提取图像,这是数据提取的一种特殊情况。
MNIST的两层感知器,展示对于一个给定的数据集有不止一个有用的网络。
通过前馈神经网络的数据流, 通过隐藏层从输入到输出的单向传递。
这些网络可用于各种各样的任务,这取决于它们被配置。除了对MNIST数据进行图像分类之外,这个目录还有演示回归、分类和异常检测的示例。
卷积神经网络主要用于图像识别,虽然它们也适用于声音和文本。
此示例可以使用LeNet或AlexNet运行。
在大量训练数据上训练网络需要时间。幸运的是,你可以保存一个经过训练的模型并加载模型以供以后的训练或推断。
演示了保存和加载用计算图构建的神经网络。
演示如何保存和加载用多层网络构建的神经网络。
我们的视频系列显示了包括保存和加载模型以及推理的代码。
你需要添加一个不可用的或是没有预构建的损失函数吗?查看这些示例。
你需要添加一个在DL4J中没有的特征的层吗?这个例子展示了如何开始。
我们也有自己的自然语言处理神经网络
用于词表示的全局向量对于检测词之间的关系是有用的。
单词的矢量化表示。这里有描述。
表示句子的一种方式是单词序列。
这里有描述
T-分布随机相邻嵌入(T-SNE)对于数据可视化是有用的。我们在NLP部分包括一个例子,因为词相似性可视化是一种常用的用法。
循环神经网络可用于处理时间序列数据或其他顺序馈送的数据,如视频。循环神经网络的示例文件夹有以下内容:
学习字符串的循环神经网络。
将莎士比亚的全部作品作为字符序列,并训练神经网络逐字创作“莎士比亚”。
这个例子训练一个神经网络做加法。
这个例子训练一个神经网络来执行各种数学运算。
一个公开的六类时间序列数据集,循环,向上等,例如,一个学习分类时间序列的RNN示例。
自动驾驶车辆如何区分行人、停车标志和绿灯?在一组视频上训练卷积和循环层的复杂神经网络。实况车载视频传递给训练好的网络,并且基于来自神经网络的目标检测的决策确定车辆动作。
这个例子类似,但简化了。它结合卷积、最大池、密连(前馈)和循环(LSTM)层来对视频中的帧进行分类。
该情感分析实例使用词向量和循环神经网络将情感分类为正或负。
DL4J支持使用Spark集群进行网络训练。这里是例子。
这是一个多层感知机对手写数字的MNIST数据集进行训练的例子。
在Spark上的一个LSTM循环网络
ND4J是张量处理库。它可以被认为是JVM版的Numpy。神经网络通过处理和更新多维数值数组来工作。在典型的神经网络应用程序中,您使用DataVec提取并转换数据为数字。使用的类是RecordReader。一旦需要将数据传递到神经网络,通常使用RecordReaderDataSetIterator。RecordReaderDataSetIterator返回DataSet对象。DataSet由输入特征和标签的NDArray组成。
学习算法和损失函数作为ND4J操作被执行。
这是一个带有创建和操作NDArrays示例的目录
深度学习算法已经学会了使用强化学习来玩《Space Invaders》和《Doom》。DL4J/RL4J强化学习的例子在这里可用: