tensorflow学习笔记(2)-反向传播
tensorflow学习笔记(2)-反向传播
反向传播是为了训练模型参数,在所有参数上使用梯度下降,让NN模型在的损失函数最小
损失函数:学过机器学习logistic回归都知道损失函数-就是预测值和真实值得差距,比如sigmod或者cross-entropy
均方误差:tf.reduce_mean(tf.square(y-y_))很好理解,假如在欧式空间只有两个点的的话就是两点间距离的平方,多点就是多点误差的平方和除以对比点个数
学习率:决定了参数每次更新的幅度
反向传播训练方法:为了减小loss的值为优化目标
# -*- coding: utf-8 -*-
"""
Created on Sat May 26 18:42:08 2018 @author: Administrator
""" import tensorflow as tf
import numpy as np
BATCH_SIZE=8
seed=23455 #基于seed产生随机数
rng=np.random.RandomState(seed)
#随机返回32行2列的矩阵 作为数据集输入
X=rng.rand(32,2) #从X这个32行2列的矩阵中取出一行 判断如果和小于1 给Y赋值1 如果和不小于1 给Y赋值0
#Y作为训练集的标签
Y=[[int((x0+x1)<1)] for(x0,x1) in X] print(X)
print(Y)
#定义输入,参数和输出
x=tf.placeholder(tf.float32,shape=(None,2))
y_=tf.placeholder(tf.float32,shape=(None,1))
#2是特征值 3是隐藏层 1是输出
w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2=tf.Variable(tf.random_normal([3,1],stddev=1,seed=1)) a=tf.matmul(x,w1)
y=tf.matmul(a,w2) #定义损失函数以及反向传播方法
loss=tf.reduce_mean(tf.square(y-y_))
train_step=tf.train.GradientDescentOptimizer(0.001).minimize(loss) #会话训练
with tf.Session() as sess:
init_op=tf.global_variables_initializer()
sess.run(init_op)
#输出未训练的参数值
print(sess.run(w1))
print(sess.run(w2)) #训练3000次
STEPS=10000
for i in range(STEPS):
start=(i*BATCH_SIZE)%32
end=BATCH_SIZE+start
#每次训练抽取start到end的数据
sess.run(train_step,feed_dict={x:X[start:end],y_:Y[start:end]})
#每500次打印一次参数
if i%500==0:
total_loss=sess.run(loss,feed_dict={x:X,y_:Y})
print("在第%d次训练,损失为%g"%(i,total_loss))
#输出训练后的参数
print("\n")
print(sess.run(w1))
print(sess.run(w2))
这是输出的内容

我们现在稍微改下参数比较下,首先是学习速率
当学习速率为0.1时候 当学习速率为0.01
可以看出来学习速率越大梯度下降越块。
再来看看隐藏层
首先是隐藏层为4时候 隐藏层为3时候

现在还不知道隐藏层怎么定义,知道以后再补上
问了群里老哥:老哥回答

tensorflow学习笔记(2)-反向传播的更多相关文章
- tensorflow学习笔记(1)-基本语法和前向传播
tensorflow学习笔记(1) (1)tf中的图 图中就是一个计算图,一个计算过程. 图中的constant是个常量 计 ...
- tensorflow学习笔记(4)-学习率
tensorflow学习笔记(4)-学习率 首先学习率如下图 所以在实际运用中我们会使用指数衰减的学习率 在tf中有这样一个函数 tf.train.exponential_decay(learning ...
- tensorflow学习笔记(3)前置数学知识
tensorflow学习笔记(3)前置数学知识 首先是神经元的模型 接下来是激励函数 神经网络的复杂度计算 层数:隐藏层+输出层 总参数=总的w+b 下图为2层 如下图 w为3*4+4个 b为4* ...
- TensorFlow学习笔记——深层神经网络的整理
维基百科对深度学习的精确定义为“一类通过多层非线性变换对高复杂性数据建模算法的合集”.因为深层神经网络是实现“多层非线性变换”最常用的一种方法,所以在实际中可以认为深度学习就是深度神经网络的代名词.从 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
- tensorflow学习笔记——自编码器及多层感知器
1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...
- TensorFlow学习笔记10-卷积网络
卷积网络 卷积神经网络(Convolutional Neural Network,CNN)专门处理具有类似网格结构的数据的神经网络.如: 时间序列数据(在时间轴上有规律地采样形成的一维网格): 图像数 ...
- Tensorflow学习笔记No.4.1
使用CNN卷积神经网络(1) 简单介绍CNN卷积神经网络的概念和原理. 已经了解的小伙伴可以跳转到Tensorflow学习笔记No.4.2学习如和用Tensorflow实现简单的卷积神经网络. 1.C ...
随机推荐
- Knowledge Point 20180305 机器数转换与进制转换
机器数(这里的机器数说的就是数值在计算机中的存储形式,相关可以了解数据在计算机中的表示)之间的转换往往是通过原码来实现的,下面我们结合进制来来一下: 进制也就是进位制,是人们规定的一种进位方法. 对于 ...
- Oracle闪回恢复误删除的表、存储过程、包、函数...
在日常的数据库开发过程汇总难免会出现一些误删除的动作, 对于一些误删的操作我们可以通过oracle提供的闪回机制恢复误删数据, 从而避免出现较大的生产事故. 下面是本人平时工作中积累的一些常用的操作, ...
- 封装一个方法获取url上面的参数
一.取参 ] : ); ]; ; ]., -); ]) === ]; , , b: 'fdfdfd', c: '9999' })); //a=123546&b=fdfdfd&c=9 ...
- CommonJs模块规范
1.什么是模块化 文件作用域 通信规则 加载 require 导出 exports 2.CommonJs模块规范 在Node中的Javascript还有一个很重要的概念:模块概念 模块作用域 使用re ...
- 访问本地方站出现EOF的分析和解决
每天早晨打开电脑运行本地项目的时候,有时候浏览器上会出现EOF 之前都都能正常访问,所以我猜想本地的项目本身肯定是没有问题的. Google了下,发现有人说是代理的问题,于是关闭代理试过后,发现可以访 ...
- 模块importlib介绍
importlib包的目的是双重的.一个是在Python源代码中提供import语句(以及扩展名为__import__()函数)的实现.这提供了可以移植到任何Python解释器的import的实现.这 ...
- MySQL建表
-- 1.创建部门表dept 1 CREATE TABLE dept( 2 deptno INT PRIMARY KEY, 3 dname VARCHAR(20) UNIQUE NOT NULL, 4 ...
- 监听浏览器返回,pushState,popstate 事件,window.history对象
在WebApp或浏览器中,会有点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面.确认离开页面或执行一些其它操作的需求.可以使用 popstate 事件进行监听返回.后退.上一页操作. 一 ...
- Linux Shell常用命令(长期更新)
#判断某个字段是否匹配指定值 awk -F"," '{if($4=="value"){print $1} else {print $0}}' file.txt ...
- laravel 中出现SQLSTATE[HY000] [2002] 如何解决?
在日常开发中总是难免遇到各式各样的错误,还有许多错误常常是重复出现的 以下是报错信息! SQLSTATE[HY000] [2002] ������ӷ���һ��ʱ���û���ȷ�