深度学习
深度学习
AquilaEAG
时间并不会改变什么,行动才会
展开
-
tensorflow计算模型——计算图
1.计算图的概念tensorflow中的所有计算都会转化为计算图中的节点tensor就是张量(即多维数组),flow就是“流”(计算模型:张量之间的计算)tensorflow的每一个计算都是计算图上的一个节点,节点之间的边描述了计算之间的依赖关系。注:如果一个运算的输入依赖另一个运算的输出,那么这两个运算有依赖关系。2.计算图的使用tensorflow程序分两个阶段:第一阶段:定义计...原创 2018-11-11 19:42:59 · 1653 阅读 · 0 评论 -
tensorflow-gpu测试代码
1.测试代码:import tensorflow as tf with tf.device('/cpu:0'): a = tf.constant([1.0,2.0,3.0],shape=[3],name='a') b = tf.constant([1.0,2.0,3.0],shape=[3],name='b')with tf.device('/gpu:1'): c ...原创 2018-11-18 19:57:49 · 11236 阅读 · 1 评论 -
线性回归模型
1.线性回归本质是一个神经元。-*-线性回归预测的是一个连续值或任意实数。(1)模型定义#初始化变量或模型参数W = tf.Variable(tf.zeros([2, 1]), name=“weights”)b = tf.Variable(0, name=“bias”)#推断函数def inference(X):return tf.matmul(X, W) + b(2)损失函数...原创 2018-11-18 20:00:07 · 345 阅读 · 0 评论 -
对数几率回归模型
1.对数几率回归本质是一个神经元。对数几率回归可以回答Yes-No类的问题。logistic函数,亦称为sigmod函数。f(x)=1/(1+exp(-x))sigmod函数是一个概率分布函数,即给定某个特定输入,该函数将计算输出为“success”的概率。sigmod函数接收单个输入值。对于多维数据,需要将他们合并为单个值,可利用前面的线性回归模型表达式。-*-牢记:sigmod...原创 2018-11-18 20:02:14 · 2168 阅读 · 0 评论 -
梯度下降法
1.梯度下降法梯度下降法是一种致力于找到函数极值点的算法。 weights(i+1) = weights(i) - v * g(weights(i))其中v为学习速率, g(weights(i))是损失函数total_loss对应于权值weights(i)的梯度(1)梯度-梯度的输出是一个由若干偏导数构成的向量,它的每个分量对应于函数对输入向量的对应分量的偏导。--梯度的输出向量表明...原创 2018-11-18 20:06:00 · 165 阅读 · 0 评论 -
有监督学习的一般结构
1.有监督学习的一般结构-*-数据流图的高层,通用训练闭环:*模型参数初始化:通常采用对参数随机赋值*读取训练数据:读取每个数据样本及其期望输出*在训练数据上执行推断模型:在当前模型参数配置下,每个训练样本都会得到一个输出值*计算损失:损失函数有多种类型*调整模型参数:最常见的策略是采用梯度下降法当训练结束之后,便进入评估阶段。一种常见的方法是将原始数据集一分为二,将70%的...原创 2018-11-19 01:39:02 · 1122 阅读 · 0 评论 -
保存训练检查点
1.保存训练检查点由于变量都保存在内存中,若计算机长时间训练后突然断电,所有工作都将丢失。所以通过tf.train.Saver类可将数据流图中的变量保存到专门的二进制文件中。我们应当周期性地保存所有变量,创建检查点(checkpoint)文件,并在必要时从最近的检查点恢复训练。2.使用Saver类,修改之前的训练闭环代码框架#模型定义代码...#创建一个Saver对象saver ...原创 2018-11-19 01:39:22 · 757 阅读 · 0 评论 -
卷积神经网络
1.卷积神经网络从技术角度看,卷积神经网络是一种至少包含一个层(tf.nn.conv2d)的神经网络,该层的功能是计算其输入f与一组可配置的卷积核g的卷积,以生成该层的输出。--卷积--卷积的目的是将卷积核(滤波器)应用到某个张量的所有点上,并通过将卷积核在输入张量上滑动而生成经过滤波处理的张量。卷积的表示: (f*g)(t)其中f(t)为输入矩阵,g(t)为卷积核.-*-简单的...原创 2018-11-19 01:39:41 · 296 阅读 · 0 评论 -
池化层
1.池化层Pooling层输出值的计算: Pooling层主要的作用是下采样,通过去掉Feature Map(卷积的结果)中不重要的样本,进一步减少参数数量。注:下采样——定义:对于一个样值序列间隔几个样值取样一次,这样得到新序列就是原序列的下采样。Pooling的方法很多,最常用的是Max Pooling。(1)Max PoolingMax Pooling实际上就是在n*n的样本中...原创 2018-11-19 01:39:58 · 3851 阅读 · 0 评论 -
为什么要分batch来学习?
Batch_size参数的作用:决定了下降的方向。极端一:batch_size为全数据集(Full Batch Learning):好处:1.由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。2.由于不同权重的梯度值差别巨大,因此选择一个全局的学习率很困难。Full Batch Learning可以使用Rprop只基于梯度符号并且针对性单独更新各权值。坏处...原创 2018-11-19 01:40:21 · 5187 阅读 · 0 评论 -
tensorflow实现CNN
exercise11_cnn.py编码流程:1.写出weight_variable、bias_variable的实现函数,写出卷积层、池化层的实现函数;2.定义placeholder,定义各个卷积层、各个全连接层import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data# numb...原创 2018-11-19 01:53:07 · 385 阅读 · 0 评论 -
tensorflow reduction_indices理解
在tensorflow的使用中,经常会使用tf.reduce_mean,tf.reduce_sum等函数,在函数中,有一个reduction_indices参数,表示函数的处理维度,如图:需要注意的一点,在很多的时候,我们看到别人的代码中并没有reduction_indices这个参数,此时该参数取默认值None,将把input_tensor降到0维,也就是一个数。调用reduce_sum(...原创 2018-11-18 19:51:50 · 469 阅读 · 0 评论 -
tensorflow的tensorboard神器
tensorboard 作为一款可视化神器,可以说是学习tensorflow时模型训练以及参数可视化的法宝。而在训练过程中,主要用到了tf.summary()的各类方法,能够保存训练过程以及参数分布图并在tensorboard显示。tf.summary有诸多函数:1、tf.summary.scalar用来显示标量信息,其格式为:tf.summary.scalar(tags, values...原创 2018-11-18 19:37:53 · 190 阅读 · 0 评论 -
tensorflow数据模型——张量
1.张量的概念从功能角度看,张量(tensor)可以简单理解为多维数组。零阶张量表示标量(scalar),即一个数;第一阶张量为向量(vector),即一个一维数组;第n阶张量可以理解为一个n维数组。但是张量在tensorflow中并不是直接采用数组的形式,它只是对tensorflow中计算结果的引用。在张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程。tensorfl...原创 2018-11-11 19:48:37 · 524 阅读 · 0 评论 -
tensorflow运行模型——会话
1.会话(Session)tensorflow的会话(Session)用来执行定义好的运算。会话拥有并管理tensorflow程序运行时的所有资源。当所有计算完成后要关闭会话来帮助系统回收资源,否则可能出现资源泄露的问题。tensorflow中的会话的使用模式有两种:(1)第一种模式需要明确调用会话生成函数和关闭会话函数。代码流程: import tensorflow as tf ...原创 2018-11-11 19:53:08 · 890 阅读 · 0 评论 -
数据流图的执行——Session
1.Tensorflow SessionSession类负责数据流图的执行,构造方法tf.Session()接收3个可选参数:target参数——指定了所要使用的执行引擎,默认为空字符串。graph参数——指定了将要在Session对象中加载的graph对象,默认值为None,表示使用当前默认数据流图。config参数——允许用户指定配置Session对象所需的选项。注意:数据流图的每...原创 2018-11-11 19:55:44 · 417 阅读 · 0 评论 -
tensorflow变量——Variable
1.tensorflow变量——Variable(1)在tensorflow中,变量(tf.Variable)的作用就是保存和更新神经网络中的参数。tensorflow中的变量也需要指定初始值。在神经网络中,一般给参数赋予随机初始值,即使用随机数给tensorflow中的变量初始化。示例:weights = tf.Variable(tf.random_normal([2,3], stdd...原创 2018-11-11 19:57:51 · 972 阅读 · 0 评论 -
数据流图笔记
1.数据流图数据流图由两个基本构件(节点和边)组成。(1)节点(node)在数据流图的语境中,节点通常以圆圈、椭圆和方框表示,代表了对数据所做的运算或某种操作。(2)边(edge)对应于向Operation传入和从Operation传出的实际数值,通常以箭头表示。注:在数据流图中的每一个节点都被称为一个Operation(简记为Op)。 各Op接收0个或多个Tensor对象作为...原创 2018-11-11 20:00:34 · 2514 阅读 · 0 评论 -
利用占位节点添加输入——placeholder
1.占位符——placeholder如果每轮迭代中选取的数据都要通过常量来表示,那么tensorflow的计算图将会太大。因为每生成一个常量,tensorflow都会在计算图中增加一个节点为了避免这个问题,tensorflow提供了placeholder机制用于提供输入数据。placeholder相当于定义了一个位置,这个位置中的数据在程序运行时再指定。这样在程序中就不需要生成大量常量...原创 2018-11-11 20:05:08 · 2077 阅读 · 0 评论 -
完整神经网络样例程序
1.训练神经网络解决二分类问题import tensorflow as tf#numpy是一个科学计算的工具包,这里通过Numpy工具包生成模拟数据集from numpy.random import RandomState#定义训练数据batch的大小batch_size = 8#定义神经网络的参数w1 = tf.Variable(tf.random_normal([2,3],...原创 2018-11-11 20:07:15 · 1599 阅读 · 1 评论 -
tensorflow生成随机数
1.tf.random_normaltf.random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None)random_normal: 正态分布随机数,均值mean,标准差stddev2.tf.truncated_normaltf.truncated_normal(shape, mean=0.0, s...原创 2018-11-18 19:19:04 · 3712 阅读 · 0 评论 -
激活函数
1.激活函数的要求评价激活函数是否有用的主要因素:(1)该函数应是单调的。这样输出便会随着输入的增长而增长,从而利用梯度下降法寻找局部极值点成为可能。(2)该函数是可微分的。以保证该函数定义域内的任意一点上的导数均存在,从而使得梯度下降法能够正常使用来自这类激活函数的输出。-*-任何满足这些条件的函数都可以用作激活函数。2.常用激活函数(1)tf.nn.relu线性修正单元,也叫斜坡...原创 2018-11-18 19:29:38 · 414 阅读 · 0 评论 -
tensorflow优化器——optimizer
具体各种优化器算法公式推导见:https://blog.csdn.net/shichaog/article/details/73123801optimizer种类tensorflow优化器种类如下,其中Optimizer是基类tf.train.Optimizer tf.train.GradientDescentOptimizer 梯度下降法(有批量梯度下降法、随机梯度下降法、mini-b...原创 2018-11-18 19:33:18 · 333 阅读 · 0 评论 -
tensorflow实现一般的神经网络
exercise9_classification.py1.概要实现mnist手写数字预测。2.结构只有一层softmax层。3.代码import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data# number 1 to 10 datamnist = input_data.rea...原创 2018-11-19 13:12:22 · 234 阅读 · 0 评论