AI
bewithme
这个作者很懒,什么都没留下…
展开
-
DL4J中文文档/配置/Maven
配置 Maven 构建工具你可以通过Maven使用DL4J,将以下内容添加到你的pom.xml:<dependencies> <dependency> <groupId>org.deeplearning4j</groupId> <artifactId>deeplearning4j-core</a...翻译 2018-10-28 08:26:27 · 973 阅读 · 0 评论 -
DL4J中文文档/配置/SBT/Gradle和其它构建工具
配置你的构建工具虽然我们鼓励Deeplearning4j、ND4J和DataVec用户使用Maven,但是为如何为其它工具配置构建文件编写文档是值得的,就像Ivy, Gradle 和 SBT,特别是对于Android项目,Google更喜欢Gradle而不是Maven。下面的指令适用于所有DL4J和ND4J子模块,例如deeplearning4j-api、deeplearning4j-sc...翻译 2018-10-28 09:04:12 · 212 阅读 · 0 评论 -
DL4J中文文档/配置/CuDNN
与cuDNN一起使用DL4JDL4J支持CUDA,但可以进一步通过cuDNN加速。大多数2D 卷积神经网络层(如ConvolutionLayer、SubsamplingLayer等),以及LSTM和BatchNormalization层都支持cuDNN。为了可以使用cuDNN,你首先要切换ND4J到CUDA后端。这可以通过在pom.xml文件中用nd4j-cuda-8.0, nd4j-cu...翻译 2018-10-28 10:11:42 · 328 阅读 · 0 评论 -
DL4J中文文档/配置/快照
内容快照介绍 安装说明 局限 ND4J后端配置 Gradle用户需知概述/介绍我们提供仓库的自动化日常构建,如ND4J, DataVec, DeepLearning4j, RL4J等等,所以所有最新的功能和最新的bug修复都是每天发布的。快照像任何其他的Maven依赖一样工作。唯一的区别是,它们是从自定义存储库提供的,而不是从Maven Central提供的。由于正在进行...翻译 2018-10-28 11:51:29 · 259 阅读 · 0 评论 -
DL4J中文文档/配置/内存工作间
什么是工作间?ND4J提供了一个额外的内存管理模型:工作间。这允许你在没有用于堆外内存跟踪的JVM垃圾回收器的情况下,重用循环工作负载的内存。换句话说,在工作间循环结束时,所有的数组内存内容都会失效。工作间被集成到DL4J中进行训练和推理。基本思想很简单:你可以在工作间(或空间)内执行你需要的操作,并且如果你要从其去除一个INDArray(即,将结果移出工作空间),只需调用INDArray...翻译 2018-10-28 18:49:43 · 465 阅读 · 0 评论 -
DL4J中文文档/语言处理/概述
DL4J的自然语言处理功能尽管没有设计成可以与诸如Stanford CoreNLP或NLTK之类的工具相提并论,但DL4J确实包括本文描述的一些核心文本处理工具。DL4J的NLP依赖 ClearTK,一个开源的机器学习和Apache非结构化信息管理架构的自然语言处理框架,或UIMA。UIMA的使我们能够执行的语言识别,特定语言的分割,句子边界检测和实体检测(专有名词:个人、企业、地方和事物...翻译 2018-10-31 10:26:33 · 438 阅读 · 0 评论 -
DL4J中文文档/开始/从源码构建
在本地从主干构建注意:大多数用户应该使用Maven Central上的快速入门指南,而不是从源代码构建。除非你有一个非常好的从源码构建的理由(例如开发新的特性——不包括自定义层、自定义激活函数、自定义丢失函数等——所有这些都可以在不直接修改DL4J的情况下添加),否则不应该从源码构建。从源码上构建可能相当复杂,在很多情况下都没有好处。对于那些喜欢使用最新版本的Deeplearning4...翻译 2018-10-26 14:20:01 · 569 阅读 · 0 评论 -
DL4J中文文档/开始/初学者
我该如开始使用深度学习?你从哪里开始取决于你已经知道了什么。真正理解深度学习的先决条件是线性代数、微积分和统计学,以及编程和一些机器学习。应用它的先决条件是学习如何部署模型。在DL4J的场景中,你应该很了解JAVA并且对类似IntelliJ IDE的工具和自动化构建工具Maven感到舒服。 Skymind 的SKIL还包括使用Python的机器学习工具的托管Conda环境。下面你会...翻译 2018-10-23 14:11:02 · 1312 阅读 · 0 评论 -
DL4J中文文档/开始/速查表
快速检索 DL4J(和相关项目)有很多功能。此篇的目标是总结这个功能,以便用户知道存在什么功能,以及在哪里可以找到更多信息。内容层 前馈层 输出层 卷积层 循环层 无监督层 其它层 图顶点 输入预处理器 迭代/训练监听器评估网络保存和加载网络配置激活函数权重初始化更新器 (...翻译 2018-10-21 20:03:52 · 1652 阅读 · 0 评论 -
DL4J中文文档/开始/贡献
先决条件在做出贡献之前,确保你知道所有的Eclipse DL4J库的结构。早在2018年初,所有的库都入住在Deeplearning4j monorepo。这些包括:DeepLearning4J: 包含用于既在单个机器上,又在分布式上学习神经网络的所有代码。 ND4J: “Java的n维数组”。ND4J是建立DL4J的数学后端。所有的DL4J神经网络都是使用ND4J中的运算(矩阵乘法、向...翻译 2018-10-26 16:04:26 · 390 阅读 · 0 评论 -
DL4J中文文档/语言处理/Word2Vec
Word2Vec, Doc2vec & GloVe: 用于自然语言处理的神经词嵌入内容介绍 神经词嵌入 有趣的Word2Vec结果 给我代码 Word2Vec 剖析 安装,加载与训练 代码示例 问题排查与Word2Vec调试 Word2Vec用例 外语 GloVe(全局向量)与Doc2VecWord2Vec介绍Word2Vec是一个处理文本的两层神经...翻译 2018-11-01 18:54:41 · 2070 阅读 · 0 评论 -
DL4J中文文档/开始/通用基准测试准则
通用基准测试准则准则1: 在基准测试之前运行预热迭代预热期是你开始计时进行更多迭代之前,在没有计时的情况下运行多个(例如 几百个)迭代。为什么有预热期?任意ND4J/DL4J 执行的前几次迭代可能比后面的迭代要慢,有以下原因:在初始化基准测试迭代中,JVM没有时间去进行代码的即时编译。一旦即时编译完成,对于所有后续操作,代码可能执行得更快。 在ND4J 和 DL4J (和其它库)...翻译 2018-10-25 17:56:38 · 370 阅读 · 0 评论 -
DL4J中文文档/开始/Eclipse DL4J示例之旅
DL4J示例调研DL4J的Github仓库有很多示例可以涵盖它的功能。快速入门向你展示了如何设置Intellij并克隆仓库。本页提供这些例子中的一些概述。DataVec 示例大多数示例都使用DataVec,这是一个通过归一化,标准化,搜索和替换,列洗牌和向量化 预处理和清洗数据 的工具包。为神经网络读取原始数据并将其转换为DataSet对象通常是训练该网络的第一步。如果你不熟悉Dat...翻译 2018-10-27 13:54:32 · 1971 阅读 · 0 评论 -
DL4J中文文档/配置/GPU/CPU设置
用于GPU和CPU的ND4J后端你可以通过更改ND4J的POM.xml文件中的依赖项来为后端线性代数操作选择GPU或本地CPU。你的选择将影响应用程序中正在使用的ND4J和DL4J。如果你的CUDA v9.2+已经安装并且有NVIDIA兼容的硬件,那么你的依赖声明将看起来像:<dependency> <groupId>org.nd4j</groupId...翻译 2018-10-27 20:08:34 · 1344 阅读 · 0 评论 -
DL4J中文文档/配置/内存管理
ND4J/DL4J内存管理: 它是如何工作的?ND4J使用堆外内存来存储NDArray,以便在与来自本地代码(如BLAS和CUDA库)的NDAArray一起工作时提供更好的性能。“堆外”意味着内存被分配到JVM(Java虚拟机)之外,因此不受JVM垃圾收集(GC)的管理。在Java/JVM方面,我们只保存指向堆外内存的指针,这些指针可以通过JNI传递给底层C++代码,用于ND4J操作。...翻译 2018-10-27 22:12:25 · 1042 阅读 · 0 评论 -
DL4J中文文档/语言处理/Doc2Vec
在DL4J中的Doc2Vec, 或段落向量Doc2Vec的主要目的是将任意文档与标签关联,因此需要标签。Doc2Vec是Word2Vec的一个扩展,它学习关联标签和单词,而不是用单词关联单词。DL4J实现它的意图是为了服务于Java、Scala和Culjule社区。第一步是提出一个表示文档“含义”的向量,然后可以将其用作有监督的机器学习算法的输入,来把文档与标签相关联。在Paragra...翻译 2018-11-01 19:12:58 · 490 阅读 · 0 评论 -
DL4J中文文档/语言处理/SentenceIterator
句子迭代器SentenceIterator (句子迭代器)用于 Word2vec 和 词袋 。它将一些文本以向量的形式输入到神经网络中,也涵盖了文本处理中的文档概念。在自然语言处理中,文档或句子通常用来封装算法应该学习的上下文。一些例子包括分析推文和成熟的新闻文章。句子迭代器的目的是把文本分成可处理的位。注意句子迭代器是输入不可知的。因此,一些文本(文档)可以来自文件系统、Twit...翻译 2018-11-01 19:51:33 · 477 阅读 · 0 评论 -
DL4J中文文档/模型/迭代器
什么是迭代器?数据集迭代器允许将数据轻松加载到神经网络中,并帮助组织批处理、转换和掩码。包含在Eclipse DL4J中的迭代器有助于用户提供的数据,或者自动加载公共的基准数据集如MNIST和IRIS。用法对于大多数用例,初始化迭代器和传递一个引用到MultiLayerNetwork或ComputationGraph 的fit()方法是开始训练任务所需的全部内容:MultiLay...翻译 2018-11-16 15:46:05 · 785 阅读 · 0 评论 -
DL4J中文文档/语言处理/Tokenization
什么是分词?分词是将文本分解成单个单词的过程。单词窗口也是由词组成。 Word2Vec还可以输出文本窗口,这些文本窗口包括用于输入神经网络中的训练示例,如本文所见。示例下面是一个用DL4J工具进行分词的例子: //带有词形还原,词性标注,句子分割的分词 TokenizerFactory tokenizerFactory = new UimaTokenizerFa...翻译 2018-11-02 10:27:53 · 571 阅读 · 0 评论 -
DL4J中文文档/模型/计算图
用计算图构建复杂网络架构本页描述了如何使用 DL4J的计算图功能来构建更复杂的网络。内容计算图概述 计算图:一些用例 配置一个计算图网络 图顶点类型 示例1:具有跳过连接的循环网络 示例2:多个输入和合并顶点 例3:多任务学习 自动添加预处理器和计算nIns 用于计算图的训练数据 RecordReaderMultiDataSetIterator 示例 1...翻译 2018-11-05 14:25:14 · 927 阅读 · 0 评论 -
DL4J中文文档/语言处理/Vocabulary Cache
词汇缓存的工作原理词汇缓存是DL4J中处理通用自然语言任务的机制,包括普通TF-IDF、单词向量和某些信息检索技术。词汇缓存的目标是成为文本向量化的一站式商店,其中封装了单词袋和单词向量等常用的技术。词汇缓存通过倒排索引处理词、词统计频率、倒排文档频率和文档出现的存储。InMemoryLookupCache是参考实现。为了在迭代文本和索引词时使用词汇缓存,你需要确定词是否应该包括在词汇...翻译 2018-11-02 11:09:27 · 148 阅读 · 0 评论 -
DL4J中文文档/模型/自编码器
什么是自编码器?自编码器是用于无监督学习的神经网络。Eclipse DL4J支持某些自动编码器层,如变分自编码器。受限波尔滋曼机在哪?0.9.x版本已不再支持受限波尔滋曼机了,对于多数机器学习问题它们不再是最好的选择了。支持的层AutoEncoder(自编码器)[源码]自编码器层,添加噪声到输入并学习重建函数。corruptionLevelpublic Bui...翻译 2018-11-04 09:44:28 · 396 阅读 · 0 评论 -
AI数学基础/高中数学英语
词汇 释义 assume that 假设 approximation 近似,近似值 absolute value 绝对值 acute 锐(角) adjacent angle ...转载 2018-11-02 16:33:44 · 168 阅读 · 0 评论 -
DL4J中文文档/模型/卷积
什么是卷积神经网络?神经网络配置中的每一层表示隐藏单元的单元。当层堆叠在一起时,它们代表了一个深度神经网络。可用的层Convolution1D (一维卷积)[源码]一维卷积层。形状期望的输入激活[小批量,通道,序列长度]Convolution2D(二维卷积)[源码]二维卷积层Convolution3D(三维卷积)[源码]三维卷积层配置hasBias...翻译 2018-11-05 16:40:28 · 560 阅读 · 0 评论 -
DL4J中文文档/模型/层
什么是层?神经网络配置中的每一层表示隐藏单元的单元。当层堆叠在一起时,它们代表了一个深度神经网络。使用层在Eclipse DL4J中可用的所有层都可以用在多层网络或计算图中。当配置一个神经网络时,你传递层配置,网络会为你实例化该层。层VS顶点如果你正在配置诸如InceptionV4之类的复杂网络,则需要使用计算图API,并使用顶点将不同的分支连接在一起。检查顶点以获取更多信息。...翻译 2018-11-06 22:09:35 · 729 阅读 · 0 评论 -
DL4J中文文档/模型/多层网络
为什么用多层网络?MultiLayerNetwork类是Eclipse DL4J中可用的最简单的网络配置API。该类对于不需要复杂和分支的网络图的初学者或用户很有用。如果你正在创建复杂的损失函数、使用图顶点或执行类似如三重网络的高级训练,则不希望使用MultiLayerNetwork配置。这包括流行的复杂网络,如InceptionV4。用法下面的例子展示了如何使用DenseLaye...翻译 2018-11-05 19:35:22 · 515 阅读 · 0 评论 -
DL4J中文文档/模型/顶点
顶点是什么?在Eclipse DL4J中,顶点是在计算图中充当节点的一种层。它可以接受多个输入,提供多个输出,并且可以帮助构建流行的网络,如InceptionV4。可用的类L2NormalizeVertex[源码]L2NormalizeVertex 在单个输入上执行L2归一化。L2Vertex[源码]L2Vertex 计算两个输入的L2最小二乘误差。例如,在三重...翻译 2018-11-05 21:12:13 · 168 阅读 · 0 评论 -
DL4J中文文档/模型/监听器
什么是监听器?监听器允许用户在Eclipse DL4J中“挂钩”到某些事件中。这允许你收集或打印对训练等任务有用的信息。例如,一个ScoreIterationListener允许你从神经网络的输出层打印训练分数。用法要将一个或多个监听器添加到一个多层网络或计算图中,请使用addListener方法:MultiLayerNetwork model = new MultiLayerN...翻译 2018-11-08 17:19:45 · 240 阅读 · 0 评论 -
DL4J中文文档/模型/自定义层
编写自定义层有两个组件可添加自定义层:添加层配置类: 扩展 org.deeplearning4j.nn.conf.layers.Layer 添加层实现类: 实现 org.deeplearning4j.nn.api.Layer配置层(以上(1))类处理设置。这是你在构建多层网络或计算图时所使用的方法。你可以在这里添加自定义设置,并在你的图层中使用这些设置。实现层(以上(2))类具有参...翻译 2018-11-08 17:46:32 · 346 阅读 · 0 评论 -
DL4J中文文档/模型/模型持久化
神经网络的存储与加载ModelSerializer(模型序列化器)是一个处理加载和保存模型的类。通过链接显示的示例中保存模型有两种方法。第一个例子保存了一个正常的多层网络,第二个例子保存了一个计算图。下面是一个基本示例,其中包含使用ModelSerializer类保存计算图的代码,以及使用ModelSerializer保存使用MultiLayer配置构建的神经网络的示例。RNG 种子...翻译 2018-11-08 22:13:37 · 779 阅读 · 0 评论 -
DL4J中文文档/模型/RNN(循环神经网络)
DL4J中的循环神经网络本文概述了在DL4J中如何使用循环神经网络的具体训练特征和实用性。本文假定对循环神经网络及其使用有一定了解,而不是对递归神经网络的介绍,并且假定你对它们的使用和术语有一些熟悉。内容基础:数据和网络配置 RNN训练特征 通过时间截断的反向传播 掩码:一对多、多对一和序列分类 训练后的掩码与序列分类 RNN层与其它层结合 测试时间:一步一...翻译 2018-11-15 15:21:36 · 1452 阅读 · 0 评论 -
DL4J中文文档/调优与训练/可视化
内容用DL4J UI可视化网络训练 DL4J UI:概述 DL4J UI:模型 DL4J UI与Spark训练 使用 DL4J UI调整你的网络 TSNE与Word2Vec 修复UI问题:“No configuration setting”异常用DL4J UI可视化网络训练注意:这里的信息属于DL4J版本0.7.0和更高版本。DL4J在浏览器中提供了一个用户界面来可...翻译 2018-11-19 16:31:30 · 2634 阅读 · 0 评论 -
DL4J中文文档/模型/模型动物园
可用模型AlexNet[源码]AlexNetDl4J的AlexNet模型解释基于原始论文《基于深度卷积神经网络的ImageNet分类》和引用的imagenet示例代码。参考文献:http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pd...翻译 2018-11-17 11:12:40 · 954 阅读 · 0 评论 -
DL4J中文文档/调优与训练/评估
为什么要评估?当训练或部署神经网络时,了解模型的准确性是有用的。在DL4J中,评估类和评估类的变体可用于评估模型的性能。分类评价评估类用于评估二分类和多类分类器(包括时间序列分类器)的性能。本节介绍了评估类的基本用法。给定一个DataSetIterator形式的数据集,执行评估的最简单方法是使用MultiLayerNetwork和ComutationGraph上的内置评估方法:...翻译 2018-11-24 10:35:26 · 947 阅读 · 0 评论 -
DL4J中文文档/模型/动物园用法
关于DL4J模型动物园DL4J具有可直接从DL4J访问和实例化的本地模型动物园。模型动物园还包括用于不同数据集的预训练权重,这些数据集是自动下载的,并使用校验总和机制检查完整性。如果你想使用新的模型动物园,你需要添加它作为依赖项。Maven POM将添加以下内容:<dependency> <groupId>org.deeplearning4j</...翻译 2018-11-17 13:39:17 · 647 阅读 · 0 评论 -
DL4J中文文档/模型/激活
什么是激活?在一个简单的层次上,激活函数有助于决定神经元是否应该被激活。这有助于确定神经元接收的信息是否与输入相关。激活函数是在输入信号上发生的非线性变换,并且变换后的输出被发送到下一个神经元。用法使用激活的推荐方法是在你的神经网络中添加激活层,并配置所需的激活:GraphBuilder graphBuilder = new NeuralNetConfiguration.Buil...翻译 2018-11-17 14:05:43 · 286 阅读 · 0 评论 -
DL4J中文文档/模型/更新器
什么是更新器?更新器之间的主要区别是他们如何对待学习率。随机梯度下降是深度学习中最常用的学习算法,它依赖于Theta(隐藏层中的权重)和alpha(学习率)。不同的更新器有助于优化学习速率,直到神经网络收敛到其最高性能状态为止。用法若要使用更新器,请将一个新类传递到计算图或多层网络中的updater()方法。ComputationGraphConfiguration conf =...翻译 2018-11-17 18:49:36 · 187 阅读 · 0 评论 -
DL4J中文文档/调优与训练/故障排查
神经网络训练的故障排查神经网络很难调优。如果网络超参数选择不当,网络学习可能会慢,或者根本不学习。本页旨在提供在调优网络时应采取的一些基准步骤。这些技巧中的许多已经在学术文献中讨论过。我们的目的是把它们合并在一个网站中,并尽可能清楚表达他们。内容 数据归一化 权重初始化 Epoch(时期)与迭代 学习率 激活函数 损失函数 正则化 小批量大小 更新器与优化算法 ...翻译 2018-11-18 16:46:25 · 621 阅读 · 0 评论 -
DL4J中文文档/分布式深度学习/介绍与入门
DL4J与Spark分布式深度学习DL4J支持使用Apache Spark在CPU或GPU机器集群上进行神经网络训练。DL4J还支持分布式评估以及使用Spark的分布式推理。DL4J的分布式训练实现DL4J有两种分布式训练实现。梯度共享,1.0.0-beta版本可用:基于Nikko Strom的论文,是一种异步SGD实现,在Spark+Aeron中实现量化和压缩更新 参数平均:一...翻译 2018-11-26 09:54:48 · 1183 阅读 · 0 评论 -
DL4J中文文档/调优与训练/迁移学习
DL4J迁移学习APIDL4J迁移学习API使用户能够:修改现有模型的结构 调优现有模型的学习配置。 在训练期间保持指定层参数为常量(恒定不变),也称为“冻结”。将某些层冻结在网络上,并且训练实际上与对输入的转换版本的训练相同,转换版本是冻结层边界处的中间输出。这是从输入数据中“特征提取”的过程,在本文档中称为“特征化”。迁移学习帮手在大型的、预训练的网络上,对输入数据进行“...翻译 2018-11-24 21:50:30 · 488 阅读 · 0 评论