第一讲:人工智能概述

   

 

第三讲:Tensorflow框架

 

 

 

 

前向传播:

反向传播:

总的代码:

  1. #coding:utf-8
  2. #1.导入模块,生成模拟数据集
  3. import tensorflow as tf
  4. import numpy as np #np为科学计算模块
  5. BATCH_SIZE = 8#表示一次喂入NN多少组数据,不能过大,会噎着
  6. seed = 23455
  7.  
  8. #基于seed产生随机数
  9. rng = np.random.RandomState(seed)
  10. #随机数返回32*2列的矩阵,每行2个表示属性(体积和质量),作为输入数据集
  11. X = rng.rand(32,2)
  12. #从x这个矩阵中,取出每一行,判断如果和<1,y=1,否则,y=0
  13. #作为输入数据集的标签(正确答案)
  14. Y=[[int(x0+x1<1)] for (x0,x1) in X]
  15. print("X:\n",X)
  16. print("Y:\n",Y)
  17.  
  18. #2.定义神经网络的输入,参数和输出,定义前向传播过程
  19. x = tf.placeholder(tf.float32,(None,2))
  20. y_ = tf.placeholder(tf.float32,(None,1))
  21.  
  22. w1 = tf.Variable(tf.random_normal([2,3], stddev=1, seed=1))
  23. w2 = tf.Variable(tf.random_normal([3,1], stddev=1, seed=1))
  24.  
  25. a = tf.matmul(x, w1)
  26. y = tf.matmul(a, w2)
  27.  
  28. #3.定义损失函数及反向传播方法
  29. loss = tf.reduce_mean(tf.square(y-y_))
  30. train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss)#梯度下降
  31. #train_step = tf.train.MomentumOptimizer(0.001,0.9).minimize(loss)
  32. #train_step = tf.train.AdamOptimizer(0.001,0.9).minimize(loss)
  33.  
  34. #4.生成会话,训练STEPS轮
  35. with tf.Session() as sess:
  36. init_op=tf.global_variables_initializer()
  37. sess.run(init_op)
  38. #输出目前还未训练的参数取值
  39. print("w1:\n", sess.run(w1))
  40. print("w2:\n", sess.run(w2))
  41. print("\n")
  42.  
  43. #训练模型
  44. STEPS=3000
  45. #训练3000轮,每次从训练集中挑选strart到end的数据,喂入数据
  46. for i in range(STEPS):
  47. start = (i*BATCH_SIZE)%32
  48. end = start + BATCH_SIZE
  49. sess.run(train_step, feed_dict={x:X[start:end], y_:Y[start:end]})
  50. if i%500 == 0:#每500次打印一轮
  51. total_loss = sess.run(loss,feed_dict={x:X,y_:Y})
  52. print("After %d training steps,loss on all data is %g" % (i,total_loss))
  53.  
  54. #输出训练后的参数取值
  55. print("\n")
  56. print("w1:\n", sess.run(w1))
  57. print("w2:\n", sess.run(w2))

 输出的结果:

  1. X:
  2. [[ 0.83494319 0.11482951]
  3. [ 0.66899751 0.46594987]
  4. [ 0.60181666 0.58838408]
  5. [ 0.31836656 0.20502072]
  6. [ 0.87043944 0.02679395]
  7. [ 0.41539811 0.43938369]
  8. [ 0.68635684 0.24833404]
  9. [ 0.97315228 0.68541849]
  10. [ 0.03081617 0.89479913]
  11. [ 0.24665715 0.28584862]
  12. [ 0.31375667 0.47718349]
  13. [ 0.56689254 0.77079148]
  14. [ 0.7321604 0.35828963]
  15. [ 0.15724842 0.94294584]
  16. [ 0.34933722 0.84634483]
  17. [ 0.50304053 0.81299619]
  18. [ 0.23869886 0.9895604 ]
  19. [ 0.4636501 0.32531094]
  20. [ 0.36510487 0.97365522]
  21. [ 0.73350238 0.83833013]
  22. [ 0.61810158 0.12580353]
  23. [ 0.59274817 0.18779828]
  24. [ 0.87150299 0.34679501]
  25. [ 0.25883219 0.50002932]
  26. [ 0.75690948 0.83429824]
  27. [ 0.29316649 0.05646578]
  28. [ 0.10409134 0.88235166]
  29. [ 0.06727785 0.57784761]
  30. [ 0.38492705 0.48384792]
  31. [ 0.69234428 0.19687348]
  32. [ 0.42783492 0.73416985]
  33. [ 0.09696069 0.04883936]]
  34. Y:
  35. [[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]]
  36. w1:
  37. [[-0.81131822 1.48459876 0.06532937]
  38. [-2.4427042 0.0992484 0.59122431]]
  39. w2:
  40. [[-0.81131822]
  41. [ 1.48459876]
  42. [ 0.06532937]]
  43.  
  44. After 0 training steps,loss on all data is 5.13118
  45. After 500 training steps,loss on all data is 0.429111
  46. After 1000 training steps,loss on all data is 0.409789
  47. After 1500 training steps,loss on all data is 0.399923
  48. After 2000 training steps,loss on all data is 0.394146
  49. After 2500 training steps,loss on all data is 0.390597
  50.  
  51. w1:
  52. [[-0.70006633 0.9136318 0.08953571]
  53. [-2.3402493 -0.14641267 0.58823055]]
  54. w2:
  55. [[-0.06024267]
  56. [ 0.91956186]
  57. [-0.0682071 ]]

 

 

 

 

Tensorflow笔记——神经网络图像识别(一)前反向传播,神经网络八股的更多相关文章

  1. 深度学习课程笔记(三)Backpropagation 反向传播算法

    深度学习课程笔记(三)Backpropagation 反向传播算法 2017.10.06  材料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS1 ...

  2. Deep Learning 学习笔记(7):神经网络的求解 与 反向传播算法(Back Propagation)

    反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能 ...

  3. ML(5)——神经网络2(BP反向传播)

    上一章的神经网络实际上是前馈神经网络(feedforward neural network),也叫多层感知机(multilayer perceptron,MLP).具体来说,每层神经元与下一层神经元全 ...

  4. 深度神经网络(DNN)反向传播算法(BP)

    在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向 ...

  5. 【原】Coursera—Andrew Ng机器学习—编程作业 Programming Exercise 4—反向传播神经网络

    课程笔记 Coursera—Andrew Ng机器学习—课程笔记 Lecture 9_Neural Networks learning 作业说明 Exercise 4,Week 5,实现反向传播 ba ...

  6. 第四节课-反向传播&&神经网络1

    2017-08-14 这节课的主要内容是反向传播的介绍,非常的详细,还有神经网络的部分介绍,比较简短. 首先是对求导,梯度的求解.反向传播的核心就是将函数进行分解,分段求导,前向计算损失,反向计算各个 ...

  7. 深度学习——深度神经网络(DNN)反向传播算法

    深度神经网络(Deep Neural Networks,简称DNN)是深度学习的基础. 回顾监督学习的一般性问题.假设我们有$m$个训练样本$\{(x_1, y_1), (x_2, y_2), …, ...

  8. AI 反向传播神经网络

    反向传播(Back Propagation,简称BP)神经网络

  9. Python3 反向传播神经网络-Min-Batch(根据吴恩达课程讲解编写)

    # -*- coding: utf-8 -*- """ Created on Sat Jan 20 13:47:54 2018 @author: markli " ...

随机推荐

  1. 分布式缓存--系列1 -- Hash环/一致性Hash原理

    当前,Memcached.Redis这类分布式kv缓存已经非常普遍.从本篇开始,本系列将分析分布式缓存相关的原理.使用策略和最佳实践. 我们知道Memcached的分布式其实是一种“伪分布式”,也就是 ...

  2. "CMAKE_CXX_COMPILER-NOTFOUND"

    CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CM ...

  3. NYOJ 720 DP+二分

    项目安排 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时间,假设做完每个 ...

  4. UVALive-2531 The K-League (最大流建模+枚举)

    题目大意:有n支足球队,已知每支球队的已胜场数和任意两支球队之间还需要的比赛场数a[i][j],求最终可能夺冠的所有球队. 题目分析:枚举所有的球队,对于球队 i 让它在接下来的比赛中全部获胜,如果这 ...

  5. java--Quartz 定时执行

    第一步:引包(Maven) <!-- 定时任务 --> <dependency> <groupId>org.quartz-scheduler</groupId ...

  6. ArcGIS 10 Raster Calculator 在哪儿

    ArcGIS 10 Raster Calculator 在哪儿? 现在大家用的最多的是ArcGIS9.3,所以大家都知道Raster Calculator在ArcToolbox->Spatial ...

  7. 在CMD中使用for命令对单行字符串做分割的方法

    我们都知道CMD中的for命令是执行循环命令的,数据来源可以是一个文件,一个命令的结果或一个字符串,只有这3种来源 如果是一个文件则对这个文件的所有字符串进行循环处理 如果是一个命令结果,那么对这个命 ...

  8. Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 05

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2287] 版本控制:https://git.coding.net/liuyy08 ...

  9. [置顶] Android Studio apk打包以及获取apk签名信息

    首先说下Android Studio 主要分为以下几步 填写你的签名的一些信息 (例如签名的文件名.省份.密码 别名 就是你比如叫xxx 但是别名是xx张三 认证年限就是apk过期默认是25年 其他就 ...

  10. mysql 多条语句合并查询

    select count(*) from matches where StartTime > 1519315200 and endtime < 1519401600 and matchty ...