版权声明:转载请标明出处,谢谢! https://blog.csdn.net/kdongyi/article/details/83513636
1. 如果构建了一个包含placeholder操作的计算图,当在session中调用run方法时,placeholder占用的变量bi必须过feed_dict参数传递进去,否则报错。
import tensorflow as tf
a = tf.placeholder(tf.float32, name='a')
b = tf.placeholder(tf.float32, name='b')
c = tf.multiply(a, b, name='c')
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
#通过feed_dict的参数传值,按字典格式
result = sess.run(c, feed_dict={a:8.0, b:3.5})
print(result)
注:如果只用placeholder进行变量占位而不用真正的变量时,可以不用进行变量初始化。
2. 多个操作可以通过一次feed完成执行。
import tensorflow as tf
a = tf.placeholder(tf.float32, name='a')
b = tf.placeholder(tf.float32, name='b')
c = tf.multiply(a, b, name='c')
d = tf.subtract(a, b, name='d')
init = tf.global_variables_initalizer()
with tf.Session() as sess:
sess.run(init)
#[c, d] 把c和d组合成一个列表,返回的result也是一个列表
result = sess.run([c, d], feed_dict={a:[8.0, 2.0, 3.5], b:[1.5, 2.0, 4.]})
print(result)
#取结果中的第一个
print(result[0])
3. 一次返回多个值分别赋值给多个变量
import tensorflow as tf
a = tf.placeholder(tf.float32, name='a')
b = tf.placeholder(tf.float32, name='b')
c = tf.multiply(a, b, name='c')
d = tf.subtract(a, b, name='d')
init = tf.global_variables_initalizer()
with tf.Session() as sess:
sess.run(init)
#[c, d] 把c和d组合成一个列表
#返回的两个值分别赋值给两个变量
rc,rd = sess.run([c, d], feed_dict={a:[8.0, 2.0, 3.5], b:[1.5, 2.0, 4.]})
print("value of c=",rc ,"valut of d=",rd)