深度学习
繁华落叶草
这个作者很懒,什么都没留下…
展开
-
Tensorflow笔记之图像预处理
import tensorflow as tfimport matplotlib.pyplot as pltimport numpy as npdef distort_color(image, color_ordering=0): if color_ordering == 0: image = tf.image.random_brightness(image, ma...原创 2020-04-16 16:14:04 · 202 阅读 · 0 评论 -
LeNet-5模型代码(在mnist_train.py上修改)
首先是mnist_train.py的修改如下:import osimport tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_dataimport numpy as np# 加载mnist_inference.py中定义的常量和前向传播的函数import mnist_inference...原创 2020-04-08 15:12:08 · 478 阅读 · 0 评论 -
Tensorflow笔记之卷积神经网络
如上图所示,该结构为卷积神经网络结构中最重要的部分,被称为过滤器(filter)或者内核(kernel),其作用是将当前层神经网络上的一个子节点矩阵转化为下一层神经网络上的一个单位节点矩阵。单位节点矩阵指长和宽都为1,但深度不限的节点矩阵。在一个卷积层中,过滤器所处理的节点矩阵的长和宽都是人工指定的,这个节点矩阵的尺寸也被称之为过滤器的尺寸。通常用的尺寸为3x3或5x5.因为过滤器处理的矩...原创 2020-04-07 15:59:40 · 246 阅读 · 1 评论 -
Tensorflow笔记之卷积神经网络简介
卷积神经网络和全链接神经网络的区别就是神经网络中相邻两层的连接方式。使用全连接神经网络处理图像的最大问题是全连接层的参数太多,对弈MNIST数据集,每一张图的大小是28x28x1,假设第一层的隐藏节点数为500个,那么一个全连接层的神经网络将有28x28x500+500=392500个参数当图片更大时,参数会更多,参数增多会导致计算变慢,同时会导致过拟合。所以需要一个合理的结构来减少神经网络...原创 2020-04-06 14:30:47 · 321 阅读 · 0 评论 -
Tensorflow笔记之图像识别常用数据集简介
1 图像识别问题简介及经典数据集 视觉是人类认识世界非常重要的一种知觉。对于计算机来说,让计算机识别图片中的内容是很困难的。常用的经典数据集如下:MNIST手写体识别数据集是一个相对简单的数据集,在其他更加复杂的图像识别处理集上,卷积神经网络有更加突出的表现。CIFAR数据集就是一个影响力很大的图像分类数据集。CIFAR数据集分为CIFAR-10和CIFAR-100两个问题,他们都是图像...原创 2020-04-06 13:52:09 · 757 阅读 · 0 评论 -
Tensorflow笔记之持久化原理及数据格式
事实上原创 2020-04-01 21:54:24 · 232 阅读 · 0 评论 -
Tensorflow笔记之Tensorflow模型持久化
为了让训练结果可以复用,需要将训练得到的神经网络模型持久化。Tensorflow提供了一个非常简单的API来保存和还原一个神经网络,这个API就是tf.train.Saver类,下面代码给出了保存Tensorflow计算图的方法,如下所示...原创 2020-03-31 16:15:04 · 206 阅读 · 0 评论 -
Tensorflow笔记之变量管理
在前面已经讲了Tensorflow常用的五种优化方法,其中在结构设计上使用激活函数和多层隐藏层。在优化过程中使用指数衰减来设置学习率,加入正则化的损失函数以及滑动平均模型,有效的提高了神经网络模型的正确率。下面学习变量管理: 在上一篇博文中,将计算神经网络前向传播结果的过程抽象成了一个函数。通过这种方式在训练和测试过程中可以统一调用这个函数来获得模型的前向传播结果,函数帝国一如下...原创 2020-03-30 16:21:06 · 151 阅读 · 0 评论 -
Tensorflow笔记之神经网络训练及不同模型结果对比
(1)前面已经介绍了利用指数衰减的学习率设置、使用正则化来避免过拟合,以及使用滑动平均模型来使得最终模型更加健壮,下列代码给出了一个在MNIST数据集上实现这些完整Tensorflow程序。 ...原创 2020-03-25 21:50:14 · 1223 阅读 · 0 评论 -
Tensorflow笔记之MNIST数据处理
首先MNIST是一个非常有名的手写字体数字识别数据集,Tensorflow对这个数据集进行了封装,让其使用起来更加方便。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练集,10000张图片作为测试集。每一张图片都代表了0-9中的一个数字。图片的大小都是28x28,且数字都会出现在图片正中间。 为了方便使用,Tensorflow提供了一个类来...原创 2020-03-22 20:06:00 · 316 阅读 · 0 评论 -
Tensorflow笔记之滑动平均模型
为了使模型在测试数据上更健壮的方法——————滑动平均模型。在采用随机梯度下降算法训练神经网络时,使用滑动平均模型在很多应用中都可以在一定程度上提高最终模型在测试训练数据上的表现。 在Tensorflow中提供tf.train.ExponentialMovingVaerage来实现滑动平均模型。在初始化ExponentialMovingAverage时,需要提供一个衰减率,...原创 2020-03-22 15:18:58 · 205 阅读 · 0 评论 -
Tensorflow笔记之过拟合问题
前面已经说到如何在训练数据上优化一个给定的损失函数,但是在真实的应用中想要的并不是让模型尽量拟合训练数据,而是通过训练出来的模型对未知的数据给出判断。所谓拟合,指的是当前一个模型过于复杂之后,它可以很好地“记忆”每一个训练数据中随机噪声的部分而忘了要去“学习”训练数据中通用的趋势。举一个例子,如果一个模型中的参数比训练数据总数还多,那么只要训练数据不冲突,这个模型就可以记住所有训练数据的结...原创 2020-03-21 23:26:06 · 276 阅读 · 1 评论 -
Tensorflow笔记之神经网络进一步优化
在前面已经介绍了神经网络优化的基本算法,通过梯度下降算法和反向传播算法。其中梯度下降算法学习率的设置尤为重要,因为它是控制参数更新的速度,决定了每次更新的幅度,如果幅度过大,那么可能导致参数在极优值得两侧来回移动。以为例,如果优化中使用的学习率为1,那么整个优化过程如下表所示:当学习率过大时,梯度下降算法的运行过程 轮数 当前轮参数值 梯度X学习率 更新后参数值...原创 2020-03-18 21:20:05 · 136 阅读 · 0 评论 -
Tensorflow笔记之神经网络优化算法
神经网络中的优化算法最常用反向传播算法和梯度下降算法来调整神经网络中参数的取值。梯度下降算法主要用于优化单个参数的取值,而反向传播算法给出了一个高效的方式在所有参数上使用梯度下降算法,从而使神经网络模型在训练数据上的损失函数尽可能小。反向传播算法是训练神经网络的核心算法,他可以根据定义好的损失函数优化神经网络中参数的取值,从而使神经网络模型在训练数据集上的损失函数达到一个较小值。 神...原创 2020-03-17 22:47:06 · 384 阅读 · 0 评论 -
Tensorflow笔记之自定义损失函数
Tensorflow不仅支持经典损失函数,还可以优化任意的自定义损失函数。下面以预测产品销量为例。在预测产品销量时,如果预测多了,商家损失的是生产商品的成本,如果预测少了,损失的是商品的利润。前面所讲到的均方误差损失函数不能很好的最大化销售利润。下面的公式给出了一个当预测多于真实值和预测少于真实值时有不同损失系数的损失函数:其中yi为一个batch中第i个数据的正确答案,yi‘为神经...原创 2020-03-16 22:07:06 · 319 阅读 · 0 评论 -
Tensorflow笔记之多层网络解决异或问题
深度学习的一个重要性质———多层变换。在神经网络发展历程中,有一个重要的问题就是异或。最开始的单层神经网络并无法解决异或问题。当加入隐藏 之后,异或问题就可以很好地解决。因为深层神经网络有组合特征提取的功能,这个特征对于解决不易提取特征向量的问题有很大帮组。...原创 2020-03-14 19:56:24 · 433 阅读 · 0 评论 -
Tensorflow笔记之激活函数去线性化
如果将每一个神经元的输出通过一个非线性函数,那么整个神经网络的模型就变成了非线性的了。这个非线性函数就是激活函数。那么前向传播算法加上激活函数和偏置项后,如下定义:相比前面的公式,主要有两个改变。第一个是增加了偏置项(bias),偏置项是神经网络中常用的一种结构。第二个是每个节点不再是淡出的加权和,在加权和的基础上还做了一个非线性变换。常用的几种非线性激活函数图像如下:目前Ten...原创 2020-03-12 22:20:08 · 476 阅读 · 0 评论 -
Tensorflow笔记之深层神经网络
前面的学习中已经介绍了Tensorflow的基本概念。下面会学习深层神经网络。深层神经网络的定义为:一类通过多层非线性变换对高复杂性数据建模算法的合集。因为深层神经网络是实现“多层非线性变换”最常用的一种方法。深度学习具有两个非常重要的特性:多层和非线性。(1)线性模型的局限性在线性模型中,模型的输出为输入的加权和。假设一个模型的输出y和输入满足以下关系,那么这个模型就是一个线性模型。...原创 2020-03-11 21:06:25 · 152 阅读 · 0 评论 -
深度学习简介
传统机器学习算法的特征:输入-》人工特征提取-》权重学习-》预测结果深度学习算法: 输入-》基础特征提取-》多层复杂特征提取-》权重学习-》预测结果例如深度学习在图像中的应用:输入-》基础特征提取(基础特征:图片像素)-》多层复杂特征提取(第一层(线条),第二层(简单形状)第三层(复杂形状))-》权重学习-》预测结果机器学习领域三大方向:自然语言处理、计算机视觉和语音识别...原创 2020-02-29 21:15:40 · 331 阅读 · 0 评论