Tensorflow
陈昊-1
路漫漫,行则将至;
展开
-
tensorflow-简单实例1
import tensorflow as tfimport numpy as np#create datax_data = np.random.rand(100).astype(np.float32)y_data = 0.5*x_data + 1.3#tensorflow中的变量,这些变量在每次sess迭代时会更新,而那么不是变量的数据不会更新Weights = tf.原创 2017-06-22 14:40:18 · 413 阅读 · 0 评论 -
tensorflow--模型持久化
一、保存模型Tensorflow 使用tf.train.Saver类进行保存。import tensorflow as tfv1 = tf.Variable(tf.constant([6.0], shape=[1]), name = 'v1')v2 = tf.Variable(tf.constant([2.0], shape=[1]), name = 'v2')resu转载 2017-09-13 20:59:25 · 345 阅读 · 0 评论 -
tensorflow-队列与多线程
1、Tensorflow数据输入简介为了避免图像预处理成为神经网络模型训练效率的瓶颈,Tensorflow提供了多线程处理输入数据的框架。流程如下:(1)指定原始数据的文件列表(2)创建文件列表队列(3)从文件中读取数据(4)数据预处理(5)整理成batch作为神经网络输入tensorflow中的队列不仅是一种数据结构,还提供了多线程的机制。队列也是多线程输入数据处理框转载 2017-09-14 17:32:00 · 1509 阅读 · 0 评论 -
tensorflow--TFRecord输入数据格式
Tensorflow提供了一种统一的格式来存储数据,这个格式就是TFRecord。 TFRecord文件中的数据都是通过tf.train.Example Protocol Buffer的格式存储的。以下代码给出了tf.train.Example的定义。message Example{ Features features = 1;};message转载 2017-09-14 20:14:13 · 526 阅读 · 0 评论 -
tensorflow_scope作用
tensorflow中有两个关于variable的op,tf.Variable()与tf.get_variable()下面介绍这两个的区别区别使用tf.Variable时,如果检测到命名冲突,系统会自己处理。使用tf.get_variable()时,系统不会处理冲突,而会报错import tensorflow as tfw_1 = tf.Variable(3,name="w_原创 2017-06-27 16:15:41 · 836 阅读 · 0 评论 -
tensorflow_mnist数据集卷积神经网络实例
程序1:import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_dataimport matplotlib.pyplot as pltmnist = input_data.read_data_sets('data', one_hot=True)#train = mnist.原创 2017-06-27 14:37:17 · 450 阅读 · 0 评论 -
tensorflow_conv2d_max_pool卷积池化padding参数为SAME和VALID的区别
卷积:conv2"VALID" = without padding: inputs: 1 2 3 4 5 6 7 8 9 10 11 (12 13) |________________| dropped |__原创 2017-06-26 19:48:57 · 15624 阅读 · 0 评论 -
tensorflow_卷积输出结果大小
先定义几个参数输入图片大小 W×WFilter大小 F×F步长 Spadding的像素数 P于是我们可以得出:N = (W − F + 2P )/S+1输出图片大小为 N×N原创 2017-06-26 19:17:04 · 2914 阅读 · 1 评论 -
tensorflow存储读取神经网络参数
import tensorflow as tfimport numpy as np#W = tf.Variable([[1,2,3],[3,4,5]], dtype = tf.float32, name='weights')#b = tf.Variable([[1,2,3]], dtype = tf.float32, name='biases')#init = tf.global_原创 2017-06-24 20:06:31 · 3061 阅读 · 0 评论 -
tensorflow训练中出现nan问题
深度学习中对于网络的训练是参数更新的过程,需要注意一种情况就是输入数据未做归一化时,如果前向传播结果已经是[0,0,0,1,0,0,0,0]这种形式,而真实结果是[1,0,0,0,0,0,0,0,0],此时由于得出的结论不惧有概率性,而是错误的估计值,此时反向传播会使得权重和偏置值变的无穷大,导致数据溢出,也就出现了nan的问题。解决办法:对输入数据进行归一化处理可以解决,特别对于层数较深的情原创 2017-06-24 14:16:22 · 16457 阅读 · 0 评论 -
tensorlow函数多个返回值问题
通过tensorflow定义的函数也可以有多个返回值,返回值可以是普通数据,也可以是张量对象,对于多个返回值可以有两种形式:一种是直接通过逗号分隔,如return weights, biases,此时返回值会以元组(tuple)的形式返回,即(weights, bisases)的形式返回,获取返回值可以通过return_data[0]、return_data[1]的方式获取。第二种形式是通原创 2017-06-24 10:17:40 · 1973 阅读 · 0 评论 -
tensorflow- 优化器
tensorflow有多种优化器:tf.train.GradientDescentOptimizer tf.train.AdadeltaOptimizer tf.train.AdagradOptimizertf.train.MomentumOptimizertf.train.AdamOptimizertf.train原创 2017-06-23 21:11:43 · 474 阅读 · 0 评论 -
Tensorflow中padding的添加方式
In summary TensorFlow uses the following equation for 'SAME' vs 'VALID'SAME Padding, the output height and width are computed as:out_height = ceil(float(in_height) / float(strides[1]))out_width原创 2018-01-08 08:10:45 · 950 阅读 · 0 评论 -
tensorflow--变量管理
一、变量管理简介 如可以通过一个函数来实现神经网络前向传播,def inference(input_tensor, avg_class, weights1, biases1, weights2, biases2),调用这个函数需要传递神经网络的所有参数。然而,当神经网络的结构更加复杂、参数更多时,就需要一个更好的方法传递和管理神经网络中的参数。 Tensorflow提转载 2017-09-13 17:55:55 · 459 阅读 · 0 评论 -
tensorflow-mnist数据集训练
程序如下;import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_dataINPUT_NODE = 784OUTPUT_NODE = 10LAYER1_NODE = 500BATCH_SIZE = 100LEARNING_RAGE_BASE = 0.8LEARNIN转载 2017-09-13 15:01:08 · 352 阅读 · 0 评论 -
tensorflow-softmax回归及交叉熵函数
tensorflow中有两个直接计算softmax回归和交叉熵的函数,softmax回归说法不太合适,其只是根据神经网络输出计算分类的概率。第一种函数为:cross_entropy = tf.nn.softmax_cross_entropy_with_logits(y, y_)其中y为原始神经网络的输出结果,而y_为给出的标准答案,两者都为[None, num_classes]的rank原创 2017-09-13 14:59:46 · 394 阅读 · 0 评论 -
tensorflow-session的使用
import tensorflow as tfimport numpy as np#大多数tf函数返回的类型都是Tensor对象,matrix1 = tf.constant([[2,2]])matrix2 = tf.constant([[2], [2]])product = tf.matmul(matrix1, ma原创 2017-06-22 15:21:32 · 793 阅读 · 0 评论 -
tensorflow-张量
从TensorFlow的名字就可以看出张量(tensor)是一个很重的概念。在tensorflow程序中所有的数据都通过张量的形式来表示。从功能的角度看,张量可以被理解为多维数组。其中零阶张量表示标量(scalar)也就是一个数;一阶张量为向量,也就是一维数组;n阶张量可以理解为一个n维数组。但张量的实现并不是直接采用数组的形式,它只是对TensorFlow中运算结果的引用。在张量中并没有保存数字转载 2017-06-22 16:21:02 · 1090 阅读 · 0 评论 -
tensorflow-Variable
import tensorflow as tf#对于tensorflow通过Variable进行定义变量,变量只有在初始化时被初始化一次,随后每次执行sess.run(a)时不再初始化,而是将当前内部的值返回。a = tf.Variable(0,name='counter') print(a.name)b = tf.constant(1)#c = tf.add(a,原创 2017-06-22 16:25:30 · 305 阅读 · 0 评论 -
tensorflow-placeholder-占位符的使用
import tensorflow as tf#placeholder用于创建占位,当需要时再将数据传入进去,第一个参数是数据类型#第二个参数是数据的维数input1 = tf.placeholder(tf.float32,[1,2])input2 = tf.placeholder(tf.float32,[1,2])output = tf.mul(input1,inpu原创 2017-06-22 16:38:08 · 2591 阅读 · 0 评论 -
tensorflow-算术运算和函数间的关系
import tensorflow as tfa = tf.Variable(3.0)b = tf.constant(4.2)c = tf.add(a,b)#张量间的普通加法也会转换成tf.add这种节点d = a+be = tf.mul(a,b)#张量间的普通乘法也会转换成tf.mul这种节点f = a*binit = tf.global_variab原创 2017-06-22 17:10:05 · 343 阅读 · 0 评论 -
Tensorflow -tf.shape(a)和a.get_shape()
1、tf.shape(a)和a.get_shape()比较 相同点:都可以得到tensor a的尺寸 不同点:tf.shape()中a 数据的类型可以是tensor, list, array a.get_shape()中a的数据类型只能是tensor,且返回的是一个元组(tuple)2、例子import tensorflow as tf原创 2017-06-22 20:53:11 · 15223 阅读 · 2 评论 -
tensorflow-搭建两层神经网络
import tensorflow as tfimport numpy as np#定义一个定义层的函数,输入参数为inputs数据,输入维度,输出维度,激活函数名称def add_layer(inputs, in_size, out_size, activation_function=None):#创建权重变量,使用random_normal函数,将产生均值为0,方差为1的高斯分原创 2017-06-22 21:47:49 · 2463 阅读 · 0 评论 -
tensorflow中tf.random_normal和tf.truncated_normal的区别
1、tf.truncated_normal使用方法tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)从截断的正态分布中输出随机值。 生成的值服从具有指定平均值和标准偏差的正态分布,如果生成的值大于平均值2个标准偏差的值则丢弃重新选择。在正态分布的曲线原创 2017-06-24 15:31:01 · 17931 阅读 · 0 评论 -
tensorflow中padding的两种类型对比
SAME means that the output feature map has the same spatial dimensions as the input feature map. Zero padding is introduced to make the shapes match as needed, equally on every side of the input map转载 2017-06-24 15:47:59 · 1076 阅读 · 0 评论 -
softmax函数与交叉熵的反向梯度传导
这几天学习了一下softmax激活函数,以及它的梯度求导过程,整理一下便于分享和交流!softmax函数softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是更形象的如下图表示:softmax直白来说就是将原来输出转载 2017-06-27 14:18:24 · 5760 阅读 · 0 评论 -
tensorflow之变量共享
对于tensorflow中的很多内容理解起来都不太容易,因为很多概念和普通编程的概念有很大的区别,比如对于变量而言,tensorflow创建变量有两种方式,分别是tf.Variable()和tf.get_variable(),而这两种方式又有所区别,下面通过实例进行介绍。实例1:wang = tf.Variable(tf.random_normal([3,3], stddev = 0.2)原创 2017-07-29 19:57:30 · 509 阅读 · 0 评论 -
tf.app.run()的作用
if __name__ == "__main__":means current file is executed under a shell instead of imported as a module.tf.app.run()As you can see through the file app.pydef run(main=None, argv=None): """R原创 2017-07-19 09:06:05 · 1766 阅读 · 1 评论 -
tensorflow数据输入
tensorflow的数据输入采用队列、线程的机制,这样可以使得系统更加轻量。如实例:#获取数据的列表image_list, label_list = read_image_label_list()images = tf.convert_to_tensor(self.image_list, dtype=tf.string)labels = tf.convert_to_tenso原创 2017-08-18 14:37:07 · 741 阅读 · 0 评论 -
tf.nn函数总结
1、tf.nn.conv2dconv2d( input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)根据给定的四维张量和滤波张量计算2-D滤波。其中,给定输入的张量维度为[batch, in_height, in原创 2017-07-28 20:52:13 · 1553 阅读 · 0 评论 -
tf函数总结(一)
1、tf.concatconcat( values, axis, name='concat')将一组张量沿某一维度连接起来。当axis=i时,如果values[i].shape=[d1,d2, ....,daxis[i], ..., dn],则连接后的张量维度为[d1,d2,..., Raxis,...,dn],其中Raxis=sum(daxis[i原创 2017-07-28 20:43:17 · 10007 阅读 · 0 评论 -
tensorflow--滑动平均模型
在采用随机梯度下降算法训练神经网络时,一般使用滑动平均模型会在一定程度上提高最终模型在测试数据上的表现。Tensorflow中提供了tf.train.ExponetialMovingAverage来实现滑动平均模型。在初始化ExponentialMovingAverage时,要提供一个衰减率decay,也可以提供一个steps用于动态改变衰减率。衰减率用于控制模型更新速度,ExponentialM转载 2017-09-13 09:22:57 · 701 阅读 · 0 评论