TensorFlow神经网络(二)反向传播
############### warm up! ##############
# 均方误差MSE的计算函数:
loss = tf.reduce_mean(tf.square(y_ - y))# 反向传播的训练方法/优化器:
## 梯度下降
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)## 动量法
train_step = tf.train.MomentumOptimizer(learning_rate).minimize(loss)## adam
train_step = tf.train.AdamOptimizer(learning_rate).minimize(loss)
############ formal coding! #############
# coding: utf-8
import tensorflow as tf
import numpy as np
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2' #hide warningsBATCH_SIZE = 8 # 一次喂入神经网络多少组数据,不可过大
seed = 23455 # 设置种子使随机生成值一样#*** np.random.RandomState:伪随机数产生器。seed数值相同,则产生的随机数相同
rng = np.random.RandomState(seed)#*** 随机数返回32行2列矩阵,表示32组数据,作为输入数据集
X = rng.rand(32,2)#*** classify the random samples
Y = [[int (x0 + x1 < 1)] for (x0, x1) in X] # pay attention to the square brackets !!!!#*** show the samples for training
print("X:\n", X)
print("Y:\n", Y)#*** forward propagation
x = tf.placeholder(tf.float32, shape = (None, 2))
y_= tf.placeholder(tf.float32, shape = (None, 1))# initiate the weights randomly
w1= tf.Variable(tf.random_normal([2,3], stddev = 1, seed = 1))
w2= tf.Variable(tf.random_normal([3,1], stddev = 1, seed = 1))# show the compute gragh
a = tf.matmul(x, w1)
y = tf.matmul(a, w2)#*** back propagation
# define the loss function
loss = tf.reduce_mean(tf.square(y - y_))# select one training optimizer
train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
# or: MomentumOptimizer
# or: AdamOptimizer#*** session and train
with tf.Session() as sess:init_op = tf.global_variables_initializer()sess.run(init_op)# print w1 & w2 before trainingprint("w1 and w2 before training:\n")print("w1:\n", sess.run(w1))print("w2:\n", sess.run(w2))print("\n")# trainingSTEPS = 3000for i in range(STEPS):# 共32组数据,BATCH_SIZE为8,0-8,8-16,16-24,24-32,然后再循环,共3000轮start = (i*BATCH_SIZE) % 32end = start + BATCH_SIZEsess.run(train_step, feed_dict = {x: X[start:end], y_: Y[start:end]})# print total loss every 500 rounds if i % 500 == 0:total_loss = sess.run(loss, feed_dict = {x: X, y_: Y}) # feed in all the dataprint("w1 and w2 after %d training steps, loss on all data is: %g" %(i, total_loss))print("\n")print("w1:\n", sess.run(w1))print("w2:\n", sess.run(w2))
################### 神经网络搭建八股 #################
# 1.准备## import modules
## define constants
## prepare datasets# 2.前传## define x, define correct answer y_
## initialize w1 w2... (randomly)
## define the compute relationshipe a and y (matrix multiple)# 3.反传## define loss funtion
## select one back propagation method train_step# 4.迭代## use " with tf.Session() as sess: " to iterate
## use " Init_op = tf.global_variables_initializer() " to initialize
## use " sess.run(init_op) " to run/compute the neural network
## use " for i in range(STEPS) " to iterate
################### 迭代细节 #################
TensorFlow神经网络(二)反向传播相关推荐
- 零基础入门深度学习(3) - 神经网络和反向传播算法
无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...
- 机器学习笔记丨神经网络的反向传播原理及过程(图文并茂+浅显易懂)
文章目录 一.前言 二.神经网络的前向传播原理 1. 单个神经元的计算 2. 神经元在神经网络中的计算 三.反向传播算法内容(请静下心,一步一步的看) Step1 计算误差 Step2 更新权重 四. ...
- 深度学习与自然语言处理教程(3) - 神经网络与反向传播(NLP通关指南·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...
- 深度学习与计算机视觉教程(4) | 神经网络与反向传播(CV通关指南·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/37 本文地址:https://www.showmeai.tech/article-d ...
- July深度学习笔记之神经网络与反向传播算法
July深度学习笔记之神经网络与反向传播算法 一.神经网络 神经网络的大致结构如下: 大致可以分为输入层.隐藏层与输出层. 而我们可以单独拿出来一个结点,可以发现,其实它就是类似一个逻辑回归(LR), ...
- 神经网络三:浅析神经网络backpropagation算法中的代价函数和神经网络的反向传播原理、和ResNet网络的捷径链接误差传播计算
在博客神经网络一:介绍,示例,代码中,Backpropagation Algorithm中用到了代价函数:该代价函数是否是最好的?其有没有自身的局限性?还有其他的代价函数吗,有何特点?本文将针对这些问 ...
- 卷积神经网络(CNN)反向传播算法推导
作者丨南柯一梦宁沉沦@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/61898234 编辑丨极市平台 导读 在本篇文章中我们将从直观感受和数学公式两方面来介绍CNN反 ...
- 独家思维导图!让你秒懂李宏毅2020深度学习(三)——深度学习基础(神经网络和反向传播部分)
独家思维导图!让你秒懂李宏毅2020深度学习(三)--深度学习基础(神经网络和反向传播部分) 长文预警!!!前面两篇文章主要介绍了李宏毅视频中的机器学习部分,从这篇文章开始,我将介绍李宏毅视频中的深度 ...
- 神经网络的反向传播(BP)是什么?sigmoid函数的导数是什么,有什么形式优势、优缺点?
神经网络的反向传播(BP)是什么?sigmoid函数的导数是什么,有什么形式优势? 目录
- 反向传播算法(过程及公式推导)_一文讲透神经网络的反向传播,要点介绍与公式推导...
神经网络的反向传播是什么 神经网络的反向传播,实际上就是逐层计算梯度下降所需要的$w$向量的"变化量"(代价函数$J(w1,b1,w2,b2,w3,b3...wn,bn)$对于$w ...
最新文章
- php的内存分配还是很智能的
- python 按钮事件_从django vi中的按钮获取click事件
- maven给默认中央仓库设置镜像为阿里云maven仓库并添加全局远程仓库
- hadoop深入研究:(五)——Archives
- cutterman工具使用 0921
- 设置office首字母不变大小的手段
- 能搞垮你的不止是同行
- wpf window 不执行show 就不能load执行_关于机器学习中的Scikit-Learn,你不知道的10个实用功能...
- 图(一):图的邻接表表示
- 137_原始套接字_发送UDP数据,模仿他人飞秋给另一个飞秋客户端发送信息
- MySql修改默认端口
- VB.net WinForm如何写一个分线程进度条
- 电子科技大学《图论及其应用》复习总结--第五章 匹配与因子分解
- Brocade博科光纤交换机之 常用命令
- 屏幕共享的实现与应用
- 二级c语言笔试试题及答案,1996年9月全国计算机等级考试二级C语言笔试试题及答案...
- 微信公众号与小程序对接文档
- java采用Process.destroy无法停止子进程
- 【算法基础12】最小生成树的两种解法(普里姆、克鲁斯卡尔)
- 数据库设计之冗余字段