Tensorflow机器学习,学习前向传播过程

本文介绍了TensorFlow中搭建简单神经网络的前向传播过程,包括truncated_normal()和random_uniform()函数的使用,以及如何通过matmul()进行矩阵运算。通过示例解释了固定组数和多组数据的输入方式,并强调了placeholder()函数和全局变量初始化的重要性。
摘要由CSDN通过智能技术生成

Tensorflow机器学习,前向传播过程

简介

——搭建一个简单的神经网络

——前向传播

——方向传播过程

——八股之正则化

首先我们来学习这两个函数

——正态分布:truncated_normal()

——平均分布: random_uniform()

我们来举个例子,例如:tf.Variable(tf.random_normal([2, 3]), stddev=2, mean=0, seed=1))

  • random_normal() 指的是正态分布,其填入的值是列表,如给的样例中的[2, 3],表示生成2x3的矩阵
  • stddev=x意思是标准差为x(x为任意整数),样例中给的是2
  • mean=x 均值为x
  • seed=x 随机种子为x ;如果定义了,表示每次生成的结果都一样
    Variable中后三者可写可不写,根据特殊要求而定

其中,truncated_normal()函数为正态分布,表示超过特定的差值会重新生成数据

————————————————————————————————

前向传播的过程 :搭建NN结构(Neural Network),指值的输入到运算完值后的输出

————————————————————————————————

举例:?

例如想要通过两个变量 x1 和 x2 输入 NN ,通过NN后输出一个数值。我们拟定 x 是为1x2的矩阵 ,==W |x的节点,a的节点| |层数| ==的格式来输入

给出W(1)为 【 w1.1(1) w1.2(1) w1.3(1) 】 如图输入层到隐藏层
-------------------- 【 w2.1(1) w2.2(1) w2.3(1) 】

a(1)=【a11, a12, a13】 为 1 x 3 的矩阵 = xW(1)

W(2)=【 w1.1(2) 】 是一个3 x 1 的矩阵 如图隐藏层到输出层
--------【 w2.1(2) 】
--------【 w3.1(2) 】
——

用矩阵来表示就是 a = tf.matmul(x, W1)、y = tf.matmul(a, W2)

a = tf.matmul(x, W1)
y = tf.matmul(a, W2)

在这里插入图片描述

接下来,我们来喂入数值,有两种喂入的方法,其一种是可以喂入固定组数的数值,另一种是可以喂入多组数值。

先讲喂入固定组数值的方法:?
# coding:utf-8
# 两层简单神经网络(全连接)
import tensorflow as tf

# 定义输入和参数
x = tf.constant([[0.7, 0.5]])
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 is:\n", sess.run(y))
# y is:
#  [[3.0904665]]

其上输出的结果:
y is: [[3.0904665]]

其次,我们来讲可以喂入多组数据的方法:?

# 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 is:\n", sess.run(y, feed_dict={x: [[0.7, 0.5]]}))
# y in tf3_4.py is:
#  [[3.0904665]]

输出的结果为
y is: [[3.0904665]]

输出的结果都一样表示成功了

其中

placeholder()函数是在神经网络构建graph的时候在模型中的占位

函数模型
tf.placeholder( dtype, shape=None, name=None )

run(tf.global_variables_initializer())方法初始化
初始化后可调用run()方法
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值