Tensorflow笔记——神经网络图像识别(一)前反向传播,神经网络八股
第一讲:人工智能概述
第三讲:Tensorflow框架
前向传播:
反向传播:
总的代码:
- #coding:utf-8
- #1.导入模块,生成模拟数据集
- import tensorflow as tf
- import numpy as np #np为科学计算模块
- BATCH_SIZE = 8#表示一次喂入NN多少组数据,不能过大,会噎着
- seed = 23455
- #基于seed产生随机数
- rng = np.random.RandomState(seed)
- #随机数返回32*2列的矩阵,每行2个表示属性(体积和质量),作为输入数据集
- X = rng.rand(32,2)
- #从x这个矩阵中,取出每一行,判断如果和<1,y=1,否则,y=0
- #作为输入数据集的标签(正确答案)
- Y=[[int(x0+x1<1)] for (x0,x1) in X]
- print("X:\n",X)
- print("Y:\n",Y)
- #2.定义神经网络的输入,参数和输出,定义前向传播过程
- x = tf.placeholder(tf.float32,(None,2))
- y_ = tf.placeholder(tf.float32,(None,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)
- #3.定义损失函数及反向传播方法
- loss = tf.reduce_mean(tf.square(y-y_))
- train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss)#梯度下降
- #train_step = tf.train.MomentumOptimizer(0.001,0.9).minimize(loss)
- #train_step = tf.train.AdamOptimizer(0.001,0.9).minimize(loss)
- #4.生成会话,训练STEPS轮
- with tf.Session() as sess:
- init_op=tf.global_variables_initializer()
- sess.run(init_op)
- #输出目前还未训练的参数取值
- print("w1:\n", sess.run(w1))
- print("w2:\n", sess.run(w2))
- print("\n")
- #训练模型
- STEPS=3000
- #训练3000轮,每次从训练集中挑选strart到end的数据,喂入数据
- for i in range(STEPS):
- start = (i*BATCH_SIZE)%32
- end = start + BATCH_SIZE
- sess.run(train_step, feed_dict={x:X[start:end], y_:Y[start:end]})
- if i%500 == 0:#每500次打印一轮
- total_loss = sess.run(loss,feed_dict={x:X,y_:Y})
- print("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))
输出的结果:
- X:
- [[ 0.83494319 0.11482951]
- [ 0.66899751 0.46594987]
- [ 0.60181666 0.58838408]
- [ 0.31836656 0.20502072]
- [ 0.87043944 0.02679395]
- [ 0.41539811 0.43938369]
- [ 0.68635684 0.24833404]
- [ 0.97315228 0.68541849]
- [ 0.03081617 0.89479913]
- [ 0.24665715 0.28584862]
- [ 0.31375667 0.47718349]
- [ 0.56689254 0.77079148]
- [ 0.7321604 0.35828963]
- [ 0.15724842 0.94294584]
- [ 0.34933722 0.84634483]
- [ 0.50304053 0.81299619]
- [ 0.23869886 0.9895604 ]
- [ 0.4636501 0.32531094]
- [ 0.36510487 0.97365522]
- [ 0.73350238 0.83833013]
- [ 0.61810158 0.12580353]
- [ 0.59274817 0.18779828]
- [ 0.87150299 0.34679501]
- [ 0.25883219 0.50002932]
- [ 0.75690948 0.83429824]
- [ 0.29316649 0.05646578]
- [ 0.10409134 0.88235166]
- [ 0.06727785 0.57784761]
- [ 0.38492705 0.48384792]
- [ 0.69234428 0.19687348]
- [ 0.42783492 0.73416985]
- [ 0.09696069 0.04883936]]
- Y:
- [[1], [0], [0], [1], [1], [1], [1], [0], [1], [1], [1], [0], [0], [0], [0], [0], [0], [1], [0], [0], [1], [1], [0], [1], [0], [1], [1], [1], [1], [1], [0], [1]]
- w1:
- [[-0.81131822 1.48459876 0.06532937]
- [-2.4427042 0.0992484 0.59122431]]
- w2:
- [[-0.81131822]
- [ 1.48459876]
- [ 0.06532937]]
- After 0 training steps,loss on all data is 5.13118
- After 500 training steps,loss on all data is 0.429111
- After 1000 training steps,loss on all data is 0.409789
- After 1500 training steps,loss on all data is 0.399923
- After 2000 training steps,loss on all data is 0.394146
- After 2500 training steps,loss on all data is 0.390597
- w1:
- [[-0.70006633 0.9136318 0.08953571]
- [-2.3402493 -0.14641267 0.58823055]]
- w2:
- [[-0.06024267]
- [ 0.91956186]
- [-0.0682071 ]]
Tensorflow笔记——神经网络图像识别(一)前反向传播,神经网络八股的更多相关文章
- 深度学习课程笔记(三)Backpropagation 反向传播算法
深度学习课程笔记(三)Backpropagation 反向传播算法 2017.10.06 材料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS1 ...
- Deep Learning 学习笔记(7):神经网络的求解 与 反向传播算法(Back Propagation)
反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能 ...
- ML(5)——神经网络2(BP反向传播)
上一章的神经网络实际上是前馈神经网络(feedforward neural network),也叫多层感知机(multilayer perceptron,MLP).具体来说,每层神经元与下一层神经元全 ...
- 深度神经网络(DNN)反向传播算法(BP)
在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向 ...
- 【原】Coursera—Andrew Ng机器学习—编程作业 Programming Exercise 4—反向传播神经网络
课程笔记 Coursera—Andrew Ng机器学习—课程笔记 Lecture 9_Neural Networks learning 作业说明 Exercise 4,Week 5,实现反向传播 ba ...
- 第四节课-反向传播&&神经网络1
2017-08-14 这节课的主要内容是反向传播的介绍,非常的详细,还有神经网络的部分介绍,比较简短. 首先是对求导,梯度的求解.反向传播的核心就是将函数进行分解,分段求导,前向计算损失,反向计算各个 ...
- 深度学习——深度神经网络(DNN)反向传播算法
深度神经网络(Deep Neural Networks,简称DNN)是深度学习的基础. 回顾监督学习的一般性问题.假设我们有$m$个训练样本$\{(x_1, y_1), (x_2, y_2), …, ...
- AI 反向传播神经网络
反向传播(Back Propagation,简称BP)神经网络
- Python3 反向传播神经网络-Min-Batch(根据吴恩达课程讲解编写)
# -*- coding: utf-8 -*- """ Created on Sat Jan 20 13:47:54 2018 @author: markli " ...
随机推荐
- 分布式缓存--系列1 -- Hash环/一致性Hash原理
当前,Memcached.Redis这类分布式kv缓存已经非常普遍.从本篇开始,本系列将分析分布式缓存相关的原理.使用策略和最佳实践. 我们知道Memcached的分布式其实是一种“伪分布式”,也就是 ...
- "CMAKE_CXX_COMPILER-NOTFOUND"
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CM ...
- NYOJ 720 DP+二分
项目安排 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个 ...
- UVALive-2531 The K-League (最大流建模+枚举)
题目大意:有n支足球队,已知每支球队的已胜场数和任意两支球队之间还需要的比赛场数a[i][j],求最终可能夺冠的所有球队. 题目分析:枚举所有的球队,对于球队 i 让它在接下来的比赛中全部获胜,如果这 ...
- java--Quartz 定时执行
第一步:引包(Maven) <!-- 定时任务 --> <dependency> <groupId>org.quartz-scheduler</groupId ...
- ArcGIS 10 Raster Calculator 在哪儿
ArcGIS 10 Raster Calculator 在哪儿? 现在大家用的最多的是ArcGIS9.3,所以大家都知道Raster Calculator在ArcToolbox->Spatial ...
- 在CMD中使用for命令对单行字符串做分割的方法
我们都知道CMD中的for命令是执行循环命令的,数据来源可以是一个文件,一个命令的结果或一个字符串,只有这3种来源 如果是一个文件则对这个文件的所有字符串进行循环处理 如果是一个命令结果,那么对这个命 ...
- Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 05
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2287] 版本控制:https://git.coding.net/liuyy08 ...
- [置顶]
Android Studio apk打包以及获取apk签名信息
首先说下Android Studio 主要分为以下几步 填写你的签名的一些信息 (例如签名的文件名.省份.密码 别名 就是你比如叫xxx 但是别名是xx张三 认证年限就是apk过期默认是25年 其他就 ...
- mysql 多条语句合并查询
select count(*) from matches where StartTime > 1519315200 and endtime < 1519401600 and matchty ...