TensorFlow 深度学习笔记
介绍TensorFlow 深度学习笔记
ouprince
这个作者很懒,什么都没留下…
展开
-
对深度学习的认知 -- 深度模型可以解决什么问题
在跟深度模型打交道的过程中,使用 DNN 解决了一些分类的问题。目前 DNN 好像是非常流行的一种学习方法。但是,如果要问我什么是 DNN,DNN 到底为什么这么受欢迎,它到底有哪些优势?以下是我个人的一些看法和回答。1.什么是 DNN?对于这个问题,我觉得 DNN 就是利用多层抽象表示概念和特征的一种方法。如图,隐藏层就是 DNN 的秘密所在,它模拟的是人体神经元的传输机制。加权...转载 2018-07-12 11:26:38 · 4613 阅读 · 0 评论 -
tensorflow 笔记附注(全)
附注一:常用的 TensorFlow 数据处理函数 & TensorBoard 可视化# 主要是写一些 TensorFlow 经常用到的东西import tensorflow as tftf.multiply(a,b) a * btf.add(a,b) a + btf.cast(x,dtype,name = None) 类型转换tf.ones(sh...转载 2018-10-15 09:58:27 · 1797 阅读 · 0 评论 -
自编码网络的使用方法 -- 栈式自编码神经网络 SA
栈式自编码神经网络(Stacked Autoencoder, SA)是对自编码网络的一种使用方法。而前面说的自编码(包括卷积,变分,条件变分都只是一种自编码结构),而这里是应用。 SA 是一个由多层训练好的自编码器组成的神经网络。由于网络中的每一层都是单独训练而来,相当于都初始化了一个合理的数值。所以,这样的网络更容易训练,并且有更快的收敛性及更高的准确度。栈式自编码常常用于预训练(初始化)深度网...转载 2018-11-07 15:30:31 · 2252 阅读 · 1 评论 -
采用自编码网络(AE)实现无监督学习
(1)最简单的自编码网络 -- 样本重构功能自编码网络是输入等于输出的网络,最基本的模型可以视为三层的神经网络,即输入层,隐藏层,输出层。也就看成压缩和解压的过程。编码就是压缩的过程,解码就是解压的过程。一般是一个对称的网络。基本实现代码(MNIST 数据集图片的压缩和解压)将 784 维数据压缩成 128 维,实现输入数据的低维重构问题。#-*- coding:utf-8 -*-...转载 2018-11-07 11:05:18 · 3649 阅读 · 5 评论 -
基于rnn 的 基本seq2seq 任务
seq2seq 函数说明处理 seq2seq 任务 序列到序列问题编码 - 解码框架: Encoder - Decoder 先使用编码器将输入编码映射到语义空间,得到一个固定维数的向量,这个向量就表示输入的语义;然后再使用解码器将这个向量解码,获得所需要的输出。注意:基本的 seq2seq 是Encoder 生成的最后一个时刻的 c 参与到Decoder 的初始时刻在 seq2se...转载 2018-11-02 12:28:08 · 1030 阅读 · 0 评论 -
使用 rnn 训练词向量模型
词向量说明如下:词向量模型表征的是词语与词语之间的距离和联系,词向量也叫词嵌入 word embeddingCBOW 模型: 根据某个词的上下文,计算中间词出现的概率,预测的是中心词Skip-Gram 模型: 跟据中间词,分别计算它的上下文概率,与 CBOW 模型相反,预测的是上下文比如 "我喜欢你" 在Skip-Gram 中,取出其中的一个字当做输入,将其前面和后面的子分别当做标签...转载 2018-10-31 14:03:17 · 3214 阅读 · 1 评论 -
lstm 结构图解析 和 TensorFlow 中的 RNN 类
LSTM 结构解析如图所示但是这样的结构说是有一个缺陷,当前的状态 Ct 不能影响输入门和遗忘门在下一时刻的输出,使得整个结构对上个序列的处理丢失了部分信息。所以增加了 窥孔连接。如图:黑线条即是窥视孔连接TensorFlow 中的 RNN 类:tf.contrib.rnn.BasicRNNCell(num_units,activation = tanh,reuse ...转载 2018-10-25 16:55:45 · 936 阅读 · 0 评论 -
TensorFlow 深度学习框架(14) -- 使用 RNN 进行自然语言建模
自然语言建模的目的就是为了计算一个句子出现的概率。把句子看做是单词的序列,于是自然语言模型计算的就是 p(w1,w2,..wn)。利用语音模型,可以确定哪个单词序列出现的可能性更大,或者给定若干个单词,可以预测下一个最可能出现的词语。那么如何计算一个句子的概率呢?首先一个句子可以被看做单词组成的序列。s = (w1,w2,w3 ... Wm) 其中 m 是下标,表示句子的长度。那么,它的概...转载 2018-07-31 19:20:02 · 1702 阅读 · 0 评论 -
TensorFlow 深度学习框架(13) -- 循环神经网络 RNN 简介
在我们处理的大多数网络结构中,虽然两层神经网络之间都有连接,但是,同一层的网络节点之间是独立的。但是往往一个神经网络的输出不仅仅与他的输入有关,还与之前的输入有关。循环神经网络通过上一时刻的状态来代替上一层的输入,并与新的输入一起组成一个输入序列,从而作为新的输入传入网络。也就是说,循环神经网络擅长解决与时间序列相关的问题。一个经典的循环神经网络示意图如下:设想一下,在自然语言处理领域,我...转载 2018-07-31 10:44:48 · 474 阅读 · 0 评论 -
TensorFlow 深度学习框架(12)-- 多线程输入数据处理框架
(一)队列与多线程TensorFlow 提供了FIFIQueue 和 RandomShuffleQueue 两种队列。FIFOQueue 顾名思义就是先进先出的意思,RandomShuffleQueu 会将队列中的元素打乱,每次出队列操作得到的是当前队列所有元素中随机的一个。(在训练神经网络时会希望每次使用的训练数据尽量随机)在TensorFlow中,队列不仅仅是一种数据结构,还是异步计算...转载 2018-07-23 18:56:25 · 740 阅读 · 4 评论 -
TensorFlow 深度学习框架(11) -- 图像数据处理
图像编码处理图像在存储时并不是直接记录矩阵中的数字,而是经过压缩编码后的结果。所以要将一张图像还原成一个三维矩阵,需要解码的过程。TensorFlow 提供了对 jpeg 和 png 格式图像的编码/解码 函数。# 读取原始图像的数据import tensorflow as tfimport matplotlib.pyplot as pltimage_raw_data = tf....转载 2018-07-19 16:33:21 · 1132 阅读 · 0 评论 -
TensorFlow 深度学习框架(10) -- TFRecord 文件存储
TensorFlow 提供了 TFRecord 来统一输入数据的格式。tf.train.Example 中包含了一个从属性名称到取值的字典。其中属性名称为一个字符串,属性的值可以为 字符串(BytesList),实数列表(FloatList)或者整数列表(Int64List)。比如将一张解码前的图像存为一个字符串,图像所对应的类别编号存为整数列表。import tensorflow as t...转载 2018-07-19 10:34:39 · 592 阅读 · 0 评论 -
TensorFlow 深度学习框架(9)-- 经典卷积网络模型 : LeNet-5 模型 & Inception-v3 模型
LeNet -5 模型LeNet-5 模型总共有 7 层,以数字识别为例,图展示了 LeNet-5 模型的架构第一层,卷积层这一层的输入就是原始的图像像素,LeNet-5 模型接受的输入层大小为 32*32*1 。第一个卷积层过滤器的尺寸为 5 * 5,深度为 6,步长为 1 。因为没有使用全 0 填充,所以这一层的输出尺寸为 32-5+1 = 28,深度为 6 。这一个卷积层共有 ...转载 2018-03-23 17:13:05 · 1464 阅读 · 0 评论 -
TensorFlow 深度学习框架(8)-- 卷积神经网络结构 CNN
卷积神经网络简介如图显示了全连接神经网络与卷积神经网络的机构对比图、虽然图中显示的全连接神经网络结构和卷积神经网络机构直观上差异比较大,但是实际上它们的整体架构是非常相似的。卷积神经网络也是通过一层一层的节点组织起来的。和全连接神经网络一样,卷积神经网络每一个节点都是一个神经元。在全连接网络中,每相邻两层之间的节点都有边相连,于是一般会将每一层全连接层中的节点组织成一列,这样方便显示连...转载 2018-03-22 17:59:55 · 3278 阅读 · 0 评论 -
TensorFlow 深度学习框架(7)-- 变量管理及训练模型的保存与加载
变量管理#下面两个定义是等价的v = tf.get_variable("v",shape = [1],initializer = tf.constant_initializer(1.0))v = tf.Variable(tf.constant(1.0,shape = [1]),name = "v")从以上的代码可以看出,通过 tf.Variable 和 tf.get_variabl...转载 2018-03-22 10:03:53 · 701 阅读 · 0 评论 -
TensorFlow 深度学习框架(6)-- mnist 数字识别及不同模型效果比较
以下代码给出了一个在 mnist 数据集上实现 使用指数衰减学习率设置,使用正则化来避免过度拟合,以及使用滑动平均模型 功能的完整的TensorFlow 程序。import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data# mnist 数据集相关常数INPUT_NODE = 784...转载 2018-03-20 14:50:44 · 930 阅读 · 3 评论 -
TensorFlow 深度学习框架(5)-- 神经网络优化算法(梯度下降、学习率设置、正则化、滑动平均模型)
(1)梯度下降模型梯度下降算法主要用于优化单个参数的取值,而反向传播算法给出了一个高效的方式在所有的参数上使用梯度下降算法,从而使得神经网络模型在训练数据上的损失函数尽可能小。反向传播算法是训练神经网络的核心算法,它可以根据定义好的损失函数优化神经网络中参数的取值,从而使神经网络的模型在训练数据集上的损失函数达到一个较小值。假设用θ表示神经网络中的参数,J(θ)表示在给定的参数取值下,训练...转载 2018-03-19 15:35:50 · 3036 阅读 · 1 评论 -
TensorFlow 深度学习框架(4)-- 损失函数
神经网络模型的效果以及优化的目标是通过损失函数的定义来实现的,接下来针对分类问题和回归问题中使用到的经典的损失函数简单介绍。分类问题--交叉熵通过神经网络解决多分类问题最常用的方法是设置n个输出节点,其中n为类别的个数。对于每一个样例,神经网络可以得到的一个n维数组作为输出结果。数组中的每一个维度(也就是每一个输出节点)对应一个类别。在理想情况下,如果一个样本属于类别k,那么这个类别所对应...转载 2018-03-16 18:01:51 · 926 阅读 · 0 评论 -
TensorFlow 深度学习框架(3)-- 深层神经网络
线性模型的局限性在线性模型中,模型的输出为输入的加权和。假设一个模型的输出 y 和输入 xi 满足线性加权的关系,那么这个模型就是一个线性模型,跟前面体现过的模型一样。被称之为线性模型是因为当输入有n个的时候,x 和 y 组成了 n + 1 维空间的一个平面。一个线性模型中通过输入得到输出的函数被称之为一个线性变换。线性模型最大的特点是任意线性模型的组合仍然还是线性模型,只通过线性变换,任...转载 2018-03-16 15:50:34 · 528 阅读 · 0 评论 -
TensorFlow 深度学习框架 (2)-- 反向传播优化神经网络
训练神经网络的过程就是设置神经网络参数的过程,只有经过有效训练的神经网络模型才可以真正的解决分类问题或回归问题。使用监督学习的方式设置神经网络参数需要有一个标注好的训练数据集。监督学习的最重要的思想是,在已知答案的标注数据集上,模型给出的预测结果要尽可能接近真实的答案。在神经网络优化算法中,最常用的就是反向传播算法。反向传播算法的具体工作流程如图如图所示是训练的流程图,那么在训练之前,...转载 2018-03-16 09:32:26 · 745 阅读 · 0 评论 -
TensorFlow 深度学习框架 (1)-- 神经网络与前向传播
基本概念:计算图,张量,会话计算图是相互运算不影响的两个计算模型,是定义计算的运行,且互不影响#在TensorFlow程序中,系统会自动维护一个默认的计算图,也支持通过tf.Graph 生成新的计算图#不同计算图上的张量和运算都不会共享import tensorflow as tfprint(a.graph is tf.get_default_graph()) #获取默认的计算图...转载 2018-03-15 15:49:42 · 870 阅读 · 5 评论