您当前的位置: 首页 >  tensorflow

Better Bench

暂无认证

  • 0浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【北京大学】3 TensorFlow1.x的前向传播推导与实现

Better Bench 发布时间:2020-12-19 16:50:22 ,浏览量:0

目录
  • 1 神经网络实现过程
  • 2 前向传播
    • 2.1 推导过程
    • 2.2 TensorFlow代码介绍
    • 2.3 前向传播代码实现
  • 相关笔记

1 神经网络实现过程

(1)tf.Variable(tf.random_normal([2, 3], stddev=2, mean=0,seed=1))# 生成正态分布随机数[3, 1] 在这里插入图片描述

(2)神经网络实现过程 • 准备数据集,提取特征,作为输入喂给神经网络 • 搭建NN结构,从输入到输出(先搭建计算图,再用会话执行) • 大量特征数据喂给NN,迭代优化NN参数 • 使用训练好的模型预测和分类

2 前向传播 2.1 推导过程

生产一批零件将体积x1和重量x2为特征输入NN,通过NN后输出一个数值。 在这里插入图片描述

前向传播过程用TensorFlow描述出来。X是输入为1*2的矩阵;用a = tf.matmul(X,W1)实现输入值与权重的乘积得到第一个计算层a1,用y =tf.matmul(a,W2)实现计算层与第二层权重的乘积,得到输出层结果。 在这里插入图片描述

2.2 TensorFlow代码介绍

(1)变量初始化、计算图节点运算都要用会话(with结构)实现

with tf.Session() as sess:
    sess.run()#计算

(2)变量初始化:在seee.run函数中用tf.global_variables_initiallizer()

    init_op = tf.global_variables_initializer()#变量初始化
    sess.run(init_op)#计算

(3)计算图节点运算:在sess.run函数中写入待运算的节点sess.run(y) (4)用tf.placeholder占位,在sess.run韩式中用feed_dict喂数据 喂一组数据:

x = tf.placeholder(tf.float32,shape=(1,2))# 这里的2表示输入特征的个数
sess.run(y,feed_dict={x:[[0.5,0.6]]})
喂多组数据
x = tf.placeholder(tf.float32,shape=(None,2))# 这里的2表示输入特征的个数
sess.run(y,feed_dict={x:[[0.5,0.6],[0.2,0.3],[0.3,0.4],[0.4,0.5]]})
2.3 前向传播代码实现

(1)两层简单神经网络(全连接),直接定义输入

#coding:utf-8
#两层简单神经网络(全连接)
import tensorflow as tf
#表示生成正态分布随机数,形状两行三列,标准差是 2,均值是 0,随机种子是 1。 
x = tf.constant([[0.7, 0.5]])#定义一个张量等于[1.0,2.0]
w1= tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1))# 生成正态分布随机数[2, 3]
w2= tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1))# 生成正态分布随机数[3, 1]
#定义前向传播过程
a = tf.matmul(x, w1)#点积
y = tf.matmul(a, w2)#点积
#用会话计算结果
with tf.Session() as sess:
    init_op = tf.global_variables_initializer()#变量初始化
    sess.run(init_op)#计算
    print"y in tf3_3.py is:\n",sess.run(y) #打印计算结果
'''
y in tf3_3.py is : 
[[3.0904665]]
'''
# √神经网络的实现过程:
# 1、准备数据集,提取特征,作为输入喂给神经网络(Neural Network,NN)
# 2、搭建 NN 结构,从输入到输出(先搭建计算图,再用会话执行)
# ( NN 前向传播算法        计算输出)
# 3、大量特征数据喂给 NN,迭代优化 NN 参数
#        ( NN 反向传播算法         优化参数训练模型)
# 4、使用训练好的模型预测和分类

(2)两层简单神经网络(全连接)用placeholder实现输入定义。喂入一组特征。

#coding:utf-8
#两层简单神经网络(全连接)
import tensorflow as tf
#定义输入和参数
#用placeholder实现输入定义 (sess.run中喂一组数据)
x = tf.placeholder(tf.float32, shape=(1, 2))
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)
#用会话计算结果
with tf.Session() as sess:
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    print"y in tf3_4.py is:\n",sess.run(y, feed_dict={x: [[0.7,0.5]]})
'''
y in tf3_4.py is:
[[3.0904665]]
'''

(3)两层简单神经网络(全连接)用placeholder实现输入定义。喂入N组特征

#coding:utf-8
#两层简单神经网络(全连接)
import tensorflow as tf
#定义输入和参数
#用placeholder定义输入(sess.run喂多组数据)
x = tf.placeholder(tf.float32, shape=(None, 2))#None表示不知输入的特征数量
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)
#调用会话计算结果
with tf.Session() as sess:
    init_op = tf.global_variables_initializer()  
    sess.run(init_op)
    print "the result of tf3_5.py is:\n",sess.run(y, feed_dict={x: [[0.7,0.5],[0.2,0.3],[0.3,0.4],[0.4,0.5]]})
    print "w1:\n", sess.run(w1)
    print "w2:\n", sess.run(w2)
'''
the result of tf3_5.py is:
[[ 3.0904665 ]
 [ 1.2236414 ]
 [ 1.72707319]
 [ 2.23050475]]
w1:
[[-0.81131822  1.48459876  0.06532937]
 [-2.4427042   0.0992484   0.59122431]]
w2:
[[-0.81131822]
 [ 1.48459876]
 [ 0.06532937]]
'''
相关笔记

以下所有源码以及更详细PDF笔记请在github下载 TensorFolwNotebook-from-Peking-University

  1. 【北京大学】1 TensorFlow1.x中Python基础知识
  2. 【北京大学】2 TensorFlow1.x的张量、计算图、会话
  3. 【北京大学】3 TensorFlow1.x的前向传播推导与实现
  4. 【北京大学】4 TensorFlow1.x的反向传播推导与实现
  5. 【北京大学】5 TensorFlow1.x的损失函数和交叉熵举例讲解及实现
  6. 【北京大学】6 TensorFlow1.x的学习率、滑动平均和正则化实例及实现
  7. 【北京大学】7 TensorFlow1.x的神经网络模块设计思想举例及实现
  8. 【北京大学】8 TensorFlow1.x的Mnist数据集实例实现
  9. 【北京大学】9 TensorFlow1.x的实现自定义Mnist数据集
  10. 【北京大学】10 TensorFlow1.x的卷积神经网络(CNN)相关基础知识
  11. 【北京大学】11 TensorFlow1.x的卷积神经网络模型Lenet5实现
  12. 【北京大学】12 TensorFlow1.x的卷积神经网络模型VGGNet实现
  13. 【北京大学】13 TensorFlow1.x的项目实战之手写英文体识别OCR技术
  14. 【北京大学】14 TensorFlow1.x的二值神经网络实现MNIST数据集手写数字识别
  15. 【北京大学】15 TensorFlow1.x的项目实战之人脸表情识别
  16. 【北京大学】16 TensorFlow1.x的项目实战之图像风格融合与快速迁移
关注
打赏
1665674626
查看更多评论
立即登录/注册

微信扫码登录

0.0426s