前向传播代码

使用tensorflow进行简单的前向传播算法。

定义w1和w2的时候并没有真正运行,仅仅是定义了,需要在后面初始化

虽然直接调用每一个变量的初始化过程是一个可行方案,但是当变量数目增多,或者变量之间存在依赖关系时,单个调用方案就比较麻烦了。为了解决这个问题,tensorflow提供了一种更加便捷的方式来完成变量初始化过程。以下程序展示了通过tf.global_variables_initalizer函数实现初始化所有变量的过程

所谓假Random,是指所返回的随机数字其实是一个稳定算法所得出的稳定结果序列,而不是真正意义上的随机序列。 Seed就是这个算法开始计算的第一个值。所以就会出现只要seed是一样的,那么后续所有“随机”结果和顺序也都是完全一致的。 所以在声明变量w1 和w2的时候,使用的seed=1,表示将随机生成的数都从1开始。

init_op=tf.global_variables_initializer()
sess.run(init_op)
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import tensorflow as tf

#声明变量w1和w2两个,stddev设置标准差为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))

#此处使用了两个[][]是因为x是一个1*2的矩阵,如果只用一个则只是一个列表
x=tf.constant([[0.7,0.9]])

#前向传播算法
a=tf.matmul(x,w1)
y=tf.matmul(a,w2)

#使用会话初始化变量w1和w2,是因为这两个没有运行初始化过程
sess=tf.Session()
sess.run(w1.initializer)
sess.run(w2.initializer)

#输出值,并关闭会话
print(sess.run(y))
sess.close()






猜你喜欢

转载自blog.csdn.net/sinat_38369128/article/details/81121480