############### 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神经网络(二)反向传播相关推荐

  1. 零基础入门深度学习(3) - 神经网络和反向传播算法

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...

  2. 机器学习笔记丨神经网络的反向传播原理及过程(图文并茂+浅显易懂)

    文章目录 一.前言 二.神经网络的前向传播原理 1. 单个神经元的计算 2. 神经元在神经网络中的计算 三.反向传播算法内容(请静下心,一步一步的看) Step1 计算误差 Step2 更新权重 四. ...

  3. 深度学习与自然语言处理教程(3) - 神经网络与反向传播(NLP通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...

  4. 深度学习与计算机视觉教程(4) | 神经网络与反向传播(CV通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/37 本文地址:https://www.showmeai.tech/article-d ...

  5. July深度学习笔记之神经网络与反向传播算法

    July深度学习笔记之神经网络与反向传播算法 一.神经网络 神经网络的大致结构如下: 大致可以分为输入层.隐藏层与输出层. 而我们可以单独拿出来一个结点,可以发现,其实它就是类似一个逻辑回归(LR), ...

  6. 神经网络三:浅析神经网络backpropagation算法中的代价函数和神经网络的反向传播原理、和ResNet网络的捷径链接误差传播计算

    在博客神经网络一:介绍,示例,代码中,Backpropagation Algorithm中用到了代价函数:该代价函数是否是最好的?其有没有自身的局限性?还有其他的代价函数吗,有何特点?本文将针对这些问 ...

  7. 卷积神经网络(CNN)反向传播算法推导

    作者丨南柯一梦宁沉沦@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/61898234 编辑丨极市平台 导读 在本篇文章中我们将从直观感受和数学公式两方面来介绍CNN反 ...

  8. 独家思维导图!让你秒懂李宏毅2020深度学习(三)——深度学习基础(神经网络和反向传播部分)

    独家思维导图!让你秒懂李宏毅2020深度学习(三)--深度学习基础(神经网络和反向传播部分) 长文预警!!!前面两篇文章主要介绍了李宏毅视频中的机器学习部分,从这篇文章开始,我将介绍李宏毅视频中的深度 ...

  9. 神经网络的反向传播(BP)是什么?sigmoid函数的导数是什么,有什么形式优势、优缺点?

    神经网络的反向传播(BP)是什么?sigmoid函数的导数是什么,有什么形式优势? 目录

  10. 反向传播算法(过程及公式推导)_一文讲透神经网络的反向传播,要点介绍与公式推导...

    神经网络的反向传播是什么 神经网络的反向传播,实际上就是逐层计算梯度下降所需要的$w$向量的"变化量"(代价函数$J(w1,b1,w2,b2,w3,b3...wn,bn)$对于$w ...

最新文章

  1. php的内存分配还是很智能的
  2. python 按钮事件_从django vi中的按钮获取click事件
  3. maven给默认中央仓库设置镜像为阿里云maven仓库并添加全局远程仓库
  4. hadoop深入研究:(五)——Archives
  5. cutterman工具使用 0921
  6. 设置office首字母不变大小的手段
  7. 能搞垮你的不止是同行
  8. wpf window 不执行show 就不能load执行_关于机器学习中的Scikit-Learn,你不知道的10个实用功能...
  9. 图(一):图的邻接表表示
  10. 137_原始套接字_发送UDP数据,模仿他人飞秋给另一个飞秋客户端发送信息
  11. MySql修改默认端口
  12. VB.net WinForm如何写一个分线程进度条
  13. 电子科技大学《图论及其应用》复习总结--第五章 匹配与因子分解
  14. Brocade博科光纤交换机之 常用命令
  15. 屏幕共享的实现与应用
  16. 二级c语言笔试试题及答案,1996年9月全国计算机等级考试二级C语言笔试试题及答案...
  17. 微信公众号与小程序对接文档
  18. java采用Process.destroy无法停止子进程
  19. 【算法基础12】最小生成树的两种解法(普里姆、克鲁斯卡尔)
  20. 数据库设计之冗余字段

热门文章

  1. weex npm 报错 cb() never called!
  2. Yii2创建自定义小部件
  3. jenkins pipeline之如何创建一个流水线
  4. jsoup解析器快速入门
  5. pg批量插入_在PostgreSQL中批量/批量更新/提升
  6. oracle 安装ora 27102,Oracle ora-27102 错误
  7. 学会java基础能找工作吗?
  8. 如何高效的学习前端的网页设计?
  9. 你们的前端是怎么入门的?(并且找到工作)?
  10. 如何成为一名Web前端开发人员?入行学习完整指南