实现placeholer机。placeholder相当于定义了一个位置,而feed_dict为一个字典
placeholder类似于一个通达,feed_dict则为这通道传入数据
import tensorflow as tf
#声明w1,w2两个变量,产生一个随机数的矩阵,stddev指标准差为1
w1 = tf.Variable(tf.random_normal([2,3],stddev = 1))
w2 = tf.Variable(tf.random_normal([3,1],stddev = 1))
#Tensorflow提供了placeholer机制用于输入数据,placeholder相当于定义了一个位置
#这个位置中的数据在程序运行时再制定,这样在程序中就不需要生存大量常量来提供输入数据
#placeholder的维度不一定要定义,如果维度确定可以降低出错率
x = tf.placeholder(tf.float32,shape=(3,2),name="input")
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)
sess = tf.Session()
init_op = tf.initialize_all_variables()
sess.run(init_op)
#feed_dict是一个字典,在字典中需要给出每个用到的placeholder的取值
#在训练神经网络时,需要每次提供一个batch的训练样例。对于这样的需求,placeholder可以很好的支持
#因为x在定义时指定了n为3,所以在运行前向传播过程时需要提供3哥样例数据
print(sess.run(y,feed_dict={x : [[0.7,0.9],[0.1,0.4],[0.5,0.8]]}))