0 Ftwhale

尚未进行身份认证

一只在人工智能大海寻找知识的鲸鱼,欢迎和我做朋友,一起学习。

等级
TA的排名 16w+

以mnist为例探究tensorboard

Tensorboard的数据形式Tensorboard可以记录与展示以下数据形式:(1)标量Scalars(2)图片Images(3)音频Audio(4)计算图Graph(5)数据分布Distribution(6)直方图Histograms(7)嵌入向量EmbeddingsTensorboard的可视化过程(1)建立一个graph,你想从这个graph中获取某些数据的信息(2)确定要在graph中的哪些节点放置summary operations以记录信息使用tf.summary.s

2020-06-01 09:21:10

MNIST 手写字识别的可视化

本节将通过一个简单的 MNIST 手写数字识别的例子,讲解各种类型的数据汇总和展示的方法。这个例子中为了简单和凸显较偏重于 TensorBoard的使用,所以没有使用各种复杂的优化,比如滑动平均等。首先,还是和之前一样导入一些需要用到的库,并设置一些需要用到的量。存放日志文件的路径为 log dir。为了在 TensorBoard 中可视化计算图时更好地组织图中的计算节点,也为了在 TensorBoard中可视化其他汇总为图表类型的数据(如 SCALARS、HISTORGRAMS 等)时将这些数据按照

2020-05-29 08:47:09

TensorBoard 简要介绍

在使用 TensorFlow训练大型深度学习神经网络时,中间的计算过程可能非常复杂。出于理解、调试和优化我们设计的网络的目的,模型训练过程中各种汇总数据都可以通过 TensorBoard 展示出来,包括标量(Scalars)、图片(images)、音频(Audio)、计算图(Graphs)、数据分布(Distributions)、直方图(Histograms)和嵌入向量(Embeddings)。TensorBoard 是 TensorFlow官方推出的可视化工具,并不需要额外的安装过程,在 TensorF

2020-05-27 10:15:02

ResNet的skip connection 残差网络的学习

今天我们介绍一下残差网络,学习完前面的知识我们会知道网络的深度对于模型的性能是至关重要的,所以理论上而言模型更深可以取得更好的结果。但是事实真的是这样的吗?实现发现深度网络会出现退化的问题:网络深度增加时,网络准确度出现饱和,甚至会出现下降。这不是过拟合问题,而是由于深层网络中存在梯度消失和梯度爆炸的问题,这使得深度学习模型很难训练, ResNet的skip connection就是为了解决梯度消失这个问题,skip connection则能在后传过程中更好地把梯度传到更浅的层次中。梯度消失问题:在反向传播

2020-05-26 10:29:30

持久化的MNIST手写字识别,实现的那个MLP网络模型可以在MNIST数据集上得到98%的正确率

在前面的内容中我们写过一个完整的Tensorflow程序去解决MNSIT手写字识别问题,实现的那个MLP网络模型可以在MNIST数据集上得到98%的正确率,虽然准确率是很高但是也出现了一个问题,那就是每一次使用网络就需要重新训练一次,这样就造成了时间的浪费。尤其是在大型的神经网络中,模型训练的时间会变得更长,甚至会花上几天几周的时间。每次重新训练这样的大型神经网络显然是不行的,因此在训练的时候保存模型是非常有必要的。结合Tensorlfow模型持久化和前面所介绍的变量空间的知识,在本小节我们会重构MLP来实

2020-05-25 08:37:19

模型持久化原理,对 4 个文件进行详细的介绍

在上一节中,我们保存了一个向量相加的模型并得到了总共 4 个文件,然而并没有对这 4 个文件进行详细的介绍。接下来阐述模型持久化原理的同时也会对这些文件的具体内容加以介绍,理解文件的内容有助于我们理解模型持久化的原理。除了 checkpoint 文件之外,剩余的 3 个文件都是模型保存的核心文件(二进制文件形式〉。对于这些二进制文件,我们无法直接打开。此时可以通过一些 函数将这些二进制文件转换为我们容易打开的文件形式,进而揭开这些文件的真正面貌。model.ckpt.mate 文件中存储的是 TensorF

2020-05-24 08:49:13

模型持久化,实现模型持久化可以使得模型训练后的结果重复使用

前面几节已经讲了有关于队列和多线程的内容,内容不多但是却很实用。接下来我们讲一章新的内容:模型持久化。模型持久化的特点:实现模型持久化可以使得模型训练后的结果重复使用,这样既可以节省重复训练模型的时间,又可以提高编程工作的效率,因为遇到稍大的神经网络一般都要训练很多天。通过代码实现train.Saver类是Tensorflow提供的用于保存和还原一个神经网络模型的API,使用起来很简单,比如说要持久化一个向量项加,我们可以写成这样的代码:上面的代码就实现了一个简单的Tensorflow模型持久化的功

2020-05-22 09:10:29

使用多线程处理输入的数据

TensorFlow 的 Session 对象是支持多线程的,因此多个线程可以很方便地在同一个会话下对同一个队列并行地执行操作。Python 本身也提供了创建线程的threading.py,这个文件提供了Thread 类来创建线程,Thread 类的 start()函数可以用于启动线程。但是使用Python程序实现这样的并行运算没有那么简单,因为所有的线程需要能同步终止,同时需要正确察觉每个线程触发的异常。在会话终止的时候,操作队列的多个线程必须能被正确关闭。Tensorflow提供了两个类来实现多线程—t

2020-05-19 09:01:49

数据读取之队列

在前面的内容中我们介绍了使用Tensorflow提供的一些函数来处理图像数据,比如旋转、增亮、锐化等等。尽管使用这些图像数据预处理方法可以在一定程度上减少无关因素对图像识别模型效果的影响,这些复杂的预处理过程仍会影响整个训练过程。 为了对大而多的图像数据做预处理,Tensorflow提供了队列加多线程处理输入数据的解决方案。在这之前我们先来学习一下Tensorflow中的队列。数据队列大家所熟悉的是队列(Queue)是一种先进先出的线性表数据结构,队列只允许在前端(Front)进行删除操作,在后端(Re

2020-05-18 08:58:34

Tensorflow之数据读取

今天我们介绍全新的内容:使用Tensorflow来读取数据。Tensorflow读取数据一共三种方法:(1) 预加载数据:这种方法适合用于数据量较小的时候,通过在程序中定义常量或者变量的方式来保存所有数据,这种方法较为简单。(2) 供给数据(Feeding):关于这种方法,我们在前面的会话(Session)内容中也有所提及,供给数据是通过run()函数输入feed_dict参数的方式把数据注入到placeholder后再启动程序。由于之前的内容里我们已经进行了详细介绍,所以这里就不再赘述。(3) 从文

2020-05-17 19:54:25

强化学习的常用方法

上一节我们讲述了马尔可夫过程, 这一节我们要讲的是强化学习中常用的方法。Model-free和Model-based我们可以将所有强化学习的方法分为理不理解所处环境,如果我们不尝试去理解环境, 环境给了我们什么就是什么. 我们就把这种方法叫做 model-free, 这里的 model 就是用模型来表示环境, 那理解了环境也就是学会了用一个模型来代表环境, 所以这种就是 model-based 方法. 我们假设有一个机器人,在Model-free方法中, 机器人只能按部就班, 一步一步等待真实世界的反馈

2020-05-13 11:47:23

强化学习之马尔可夫决策

大家学过机器学习的话应该对隐马尔可夫模型(HMM)有所了解,它具有的马尔可夫特性就是指系统的下个状态只和当前状态信息有关,而与更早之前的状态无关,即:马尔科夫决策过程(Markov Decision Process, MDP)以马尔可夫随机过程为理论基础,马尔科夫决策过程也可以用一个元组(S,A,P,R,γ)(S,A,P,R,γ)来表示。SS是决策过程中的状态集合;AA是决策过程中的动作集合;...

2020-05-08 09:04:54

强化学习(Reinforcement Learning)

本章节开始讲述一些新的东西—强化学习(Reinforcement Learning)内容,这一小节将是对强化学习做一个简单的介绍以及讲述大概的思路。 强化学习是一个非常广泛的话题,强化学习(Reinforcement Learning)也属于机器学习的一个拓展分支,强化学习能够在负责不确定的环境中解决问题。强化学习主要包含3个概念:环境状态、动作、奖惩制度。强化学习的目标是在回报奖惩制度中获得更多...

2020-05-06 10:12:53

词向量

词表示在自然语言处理任务中,首先需要考虑词如何在计算机中表示。通常,有两种表示方式:one-hotrepresentation(离散表示)和distributionrepresentation(分布式表示)分布式表示:即通过共现矩阵的方式来进行词的表示,词的意义来源于其在语料中的分布。离散式表示:即将语言表示为稠密、低维、连续的向量,每个词被表示为“a patternof activation...

2020-05-02 17:55:54

自然语言处理模型

前面几个小节已经介绍了RNN和LSTM模型等等,在最先谈到RNN模型的时候我们就说过,RNN模型应用最广的领域就是自然语言处理(NLP)领域。从今天开始我们简单介绍语言模型。语言模型语言模型,即针对某种语言给定句子们分配概率值的任务,或者针对一串单词后跟一个词或者词串的可能性分配概率值的任务,实际这两个任务是等价的,可转换。语言模型在机器翻译和自动语音识别中具有重要作用,即对系统产生的多个翻译...

2020-04-27 11:12:30

循环神经网络的变种

循环神经网络除了有不同的设计方法之外,还能够造出一些比较实用的 “变种”,用于提高循环神经网络解决一些特定问题的能力。常用的循环神经网络变种就是双向循环神经网络和深层循环神经网络,本节将会对这两个网络变种进行简要的介绍。双向循环神经网络到目前为止,我们讨论的循环神经网络只能将状态按照从前向后的方 向传递,这意味着循环体在时刻 t 的状态只能从过去的输入序列 x(t=0) ,…, x(t-1)以...

2020-04-26 11:42:18

循环神经网络的 Dropout

循环神经网络(RNNs)是基于序列的模型,对自然语言理解、语言生成、视频处理和其他许多任务至关重要。模型的输入是一个符号序列,在每个时间点一个简单的神经网络(RNN单元)应用于一个符号,以及此前时间点的网络输出。RNNs是强大的模型,在许多任务中表现出色,但会快速过拟合。RNN模型中缺少正则化使他难以处理小规模数据,为避免这种情况研究者经常使用提早停止,或者小规模的或未充分定义的模型。Dropo...

2020-04-23 11:04:54

长短期记忆网络LSTM

上两小节我们主要讲述了循环神经网络RNN,但是尽管 RNN 被设计成可以利用历史的信息来预测当前的决策,例如使用之前出现的单词来加强对当前单词的理解,但是预测RNN决策的主要还是最后输入的一些信号,更早之前的信号会随着时间的推迟而变得强度越来越低,它对后续的影响越来越弱。这样就会给RNN带来了新的技术挑战一一长期依赖(Long-Term Dependencies) 问题。当遇到一些上下文信息场景...

2020-04-21 09:36:09

RNN的前向传播和反向传播

在上一节当中,我们讲到了RNN的其中一个特点是参数共享,在这一节当中,我们用具体代码来展示RNN的前向传播。首先是给出每一个参数具体的值:W指的是相邻时刻隐藏单元间的权重矩阵,U指的是从X(t)计算得到的对应隐藏单元时用到的权重矩阵;V是由h(t)计算得到o(t)时用到的权重矩阵;b_o是由h(t)计算得到o(t)时用到的偏置值。这就是一个简单循环神经网络的前向传播计算过程,输出的O(t...

2020-04-20 16:01:43

使用TensorFlow实现Inception-V3神经网络

上一讲我们讲述了Inception-V3卷积神经网络的基本模型及其实现原理,这一节我们将使用TensorFlow去实现Inception-V3这个卷积神经网络。使用TensorFlow实现Inception-V3卷积神经网络,InceptionModule将不同的卷积层通过并行连接的方式结合在一起。同时使用所有不同尺寸的过滤器,然后再将得到的矩阵拼接起来。如下图,Inception V3 模型总共...

2020-04-19 16:26:53

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。