本节将再举一个构建+执行数据流图的完整流程的简单例子。
placeholder()函数
在上一节中我们已经清楚,在数据流图中的结点op代表的就是一次操作,这个操作可以是被封装好的函数。
比如在下面的代码中,tf.placeholder()这个函数就是一次操作,代表图中的一个结点。这个操作起到的作用是创建了占位符。
占位可以理解为在图书馆预约好了位子,但是这个位子暂时还没有人去坐,还是空的。所以对于x与y这两个空位的乘法tf.matmul()暂时也是不起作用的。
# 创建两个浮点数占位符
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
#增加一个矩阵乘法
result1 = tf.matmul(x,y)
placeholder函数占据的空位,将在会话session运行时填上。通过Session.run()的feed_dict参数,我们传进去一个字典,字典中需要给出每个用到placeholder的取值。
通俗来说这个字典里的key就是我们刚才预约好的空位子,value就是坐进位置里面的人。
sess1 = tf.Session()
# 传入x和y的值
print(sess1.run(result, feed_dict={x:[[1,0],[0,1]], y:[[2,3],[4,5]]}))
placeholder的目的是为了解决在