Tensorflow官方网站:http://tensorflow.org/

极客学院Tensorflow中文版:http://wiki.jikexueyuan.com/project/tensorflow-zh/

使用Tensorflow写的第一个示例程序,用来做线性回归

import tensorflow as tf
import numpy as np #create data
x_data=np.random.rand(100).astype(np.float32)
y_data=x_data*0.1+0.3 #create tensorflow stucture start
Weight=tf.Variable(tf.random_uniform([1],-1.0,1.0))
biases=tf.Variable(tf.zeros([1])) y=Weight*x_data+biases #loss function
loss=tf.reduce_mean(tf.square(y-y_data))
#learning rate=0.5
optimizer=tf.train.GradientDescentOptimizer(0.5)
#minimize loss
train=optimizer.minimize(loss) #variables initialize
init=tf.global_variables_initializer()
#create tensorflow stucture end sess=tf.Session()
sess.run(init) for step in range(201):
sess.run(train)
if step%20==0:
print(step,sess.run(Weight),sess.run(biases))

loss function为代价函数,也被称为平方误差函数

学习率的调整

learning rate则是学习率,它决定了我们沿着能让代价函数下降程度最大方向向下迈出的步子有多大,学习率不能太大也不能太小,如果学习率过小,那么学习的速率过慢,可能需要花很多步才能走到最低点,而学习率过大的话,会导致无法收敛。上面代码中的学习率为0.5,这个学习率是随意设置的,通常可以考虑尝试0.01,0.03,0.1,0.3,1,3,10

在每次迭代中调节不同的学习率

在每次迭代中去调整学习率的值是另一种很好的学习率自适应方法。此类方法的基本思路是当你离最优值越远,你需要朝最优值移动的就越多,即学习率就应该越大;反之亦反。但是这里有一个问题,就是我们并不知道实际上的最优值在哪里,我们也不知道每一步迭代中我们离最优值有多远。

解决办法是,我们在每次迭代的最后,使用估计的模型参数检查误差函数(error function)的值。如果相对于上一次迭代,错误率减少了,就可以增大学习率,以5%的幅度;如果相对于上一次迭代,错误率增大了(意味着跳过了最优值),那么应该重新设置上一轮迭代ωj 的值,并且减少学习率到之前的50%。这种方法叫做Bold Driverhttp://www.willamette.edu/~gorr/classes/cs449/momrate.html

Tensorflow学习笔记01的更多相关文章

  1. Tensorflow学习笔记2019.01.22

    tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...

  2. Tensorflow学习笔记2019.01.03

    tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...

  3. tensorflow学习笔记(3)前置数学知识

    tensorflow学习笔记(3)前置数学知识 首先是神经元的模型 接下来是激励函数 神经网络的复杂度计算 层数:隐藏层+输出层 总参数=总的w+b 下图为2层 如下图 w为3*4+4个   b为4* ...

  4. tensorflow学习笔记(2)-反向传播

    tensorflow学习笔记(2)-反向传播 反向传播是为了训练模型参数,在所有参数上使用梯度下降,让NN模型在的损失函数最小 损失函数:学过机器学习logistic回归都知道损失函数-就是预测值和真 ...

  5. tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)

    tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...

  6. tensorflow学习笔记——自编码器及多层感知器

    1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...

  7. TensorFlow学习笔记——LeNet-5(训练自己的数据集)

    在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练 ...

  8. tensorflow学习笔记——VGGNet

    2014年,牛津大学计算机视觉组(Visual Geometry Group)和 Google DeepMind 公司的研究员一起研发了新的深度卷积神经网络:VGGNet ,并取得了ILSVRC201 ...

  9. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

随机推荐

  1. MySQL 基础 备份和恢复

    数据库备份 mysqldump [args] > file_name 例如:备份所有数据库 shell> mysqldump --all-databases > dump.sql # ...

  2. Cocos Creator 获得设备分辨率

    var b = cc.director.getWinSizeInPixels() var bx = b.width var by = b.height

  3. mysql group_concat用法

    MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔 ...

  4. node.js初识10

    post请求 form.html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  5. python入门第二篇

    整体注释:ctrl+? 1.运算符 +  -  *  /   //(取商) **(幂) %(求余) 判断某个东西是否在某个东西里面包含:  in           not in 不等于: <& ...

  6. caffe训练脚本文件时遇到./build/tools/caffe: not found

    原文转载:https://blog.csdn.net/zhongshaoyy/article/details/53502373 cifar10训练步骤如下: (1)打开终端,应用cd切换路径,如 cd ...

  7. VS2017

    Visual Studio常用快捷键https://www.cnblogs.com/DonetRen/p/8182911.htmlVisual Studio 2017 Product Family S ...

  8. 六 js函数和this

    js的所有代码都是由funtion组成,funtion即函数的类型. 一.函数有两种写法 -----1.定义式 function test() { //定义一个函数 console.log(" ...

  9. python 文件写入错误

    在保存网页文字到txt文件下时,出现如下错误 UnicodeEncodeError: 'gbk' codec can't encode character u'\xa9' in position 24 ...

  10. 3.用Thead子类及Runnable接口类实现车站购票的一个场景(static关键字)

    如上图所示,我们这里模拟一下去车站买票的情形:这里有3个柜台同时售票,总共是1000张票,这三个柜台同时买票,但是只能一个柜台卖同一张票,也就是说1号票卖了之后我们就只能买2号票,2号票卖了之后我们只 ...