deeplearning4j

通俗话说一说各种Normalization以及用deeplearning4j实现Layer Normalization

寵の児 提交于 2019-11-30 03:52:15
一、Normalization是什么 Normalization一句话概括来说就是用一种办法,将一组数据压到均值为0,方差为1的正态分布上去,具体做法是数据集的每一个元素减去均值再除以标准差。公式如下:(请忽略参数g,g的问题很诡异,后面说) 这个公式说的更直白一点就是,把每一个a,经过平移和缩放,得到一个新值。而这样做的一个理由是,平移缩放并不会改变原始数据的分布情况,原来最大的还是最大,原来最小的还是最小。 Deeplearning中有很多Normalization的方法,有BN、LN、IN、GN等等,每一种Normalization公式都一样,只是沿着的轴不一样,BN就是沿着minibatch方向,LN就是沿着影藏层的output vector维方向,举个例子,对于四维张量[minibatch,depth、height、width],那就是沿着depth方向,把height、width维约简掉。 二、说说Layer Normalization Layer Normalization对于时间序列数据有奇效,下面截一段论文的原文。这是在RNN上用Layer Normalization 简短的话说一下论文的变量含义,a表示t时刻点rnn的预输出值(还没有经过激活函数哦),h表示rnn某一个隐层t时刻点的输出。 那么,这里Normalization是哪一个维度呢

使用Scrapy爬取开源项目文档

半世苍凉 提交于 2019-11-29 22:36:46
import scrapy import re import os class MySpider(scrapy.Spider): name = "deeplearning4j-api" start_urls = ["https://deeplearning4j.org/api/latest/index-files/index-1.html"] crawledLinks = {} # times = 200 def parse(self, response): # 输出html页面 def output2html(htmlcontent,filepath,folder='./document-deeplearning4j/'): filepath = folder + filepath if not os.path.exists(os.path.split(filepath)[0]): os.makedirs(os.path.split(filepath)[0]) f = open(filepath, 'wb') f.write(htmlcontent) f.close() # 处理链接成统一格式 def htmlprocess(url,preStr="https://deeplearning4j.org",endStr=".html"): url = url.replace

Java第三方工具库/包汇总

一个人想着一个人 提交于 2019-11-29 21:33:54
一、科学计算或矩阵运算库 科学计算包: JMathLib 是一个用于计算复杂数学表达式并能够图形化显示计算结果的Java开源类库。它是Matlab、Octave、FreeMat、Scilab的一个克隆,但完全采用纯Java实现。 JSci :Java 科学对象(JSci)开放源代码项目是 Durham(英国 Durham)大学粒子理论中心的三年级研究生 Mark Hale 创立的。JSci 是一个包集合,包含数学和科学类。 使用 JSci,您既可以在 AWT 中也可以在 Swing 中创建简单的条形图、折线图和饼形图。 JSci.swing.JBarGraph 、 JSci.swing.JPieChart 和 JSci.swing.JLineGraph API 组件设计得也很好,这些组件和 AWT 绘图类都遵守 MVC 体系结构。 JScience : http://jscience.org/ JScience 是一个Java的科学计算包 jLab :jLab是数值计算的Java执行环境。该jLab环境的目的是提供一个基于Matlab / Scilab喜欢的科学计算平台所支持的脚本引擎执行的Java语言。 The current jLab ND4J :在JVM上实现快速的科学计算;ND4J是一个开源的数值计算扩展 ,它将 Python中著名的 numpy

Java实现中文word2vec

天涯浪子 提交于 2019-11-26 12:06:03
依赖: java深度学习框架,deeplearning4j: http://deeplearning4j.org/word2vec 开源中文分词框架,ansj_seg: http://www.oschina.net/p/ansj 项目GitHub地址: https://github.com/YuyuZha0/word2vec 说明:word2vec深层次的原理不做说明,要实现word2vec主要要做到只有一件事,那就是词汇的识别。英文由于是空格符隔开的,所以分词比较容易,但是中文(包括日文、韩文)等是靠字形成句子的,所以借助分词工具将句子进行语法拆分很重要。word2vec借助一定的模型,通过对语料上下文进行分析,从而将词的含义投射到向量空间。相似的词在向量空间夹角很小,而不同的词差别则较大。需要注意的是,这一过程是不需要人工干预的,你只需要准备好语料即可. 2016-12-19更新:所有代码均迁移到了GitHub 来源: oschina 链接: https://my.oschina.net/u/2541538/blog/663761