Fetch的意思就是在一个会话(session)中可以同时运行多个op。
#coding:utf-8 import tensorflow as tf #Fetch input1 = tf.constant(3.0) input2 = tf.constant(1.0) input3 = tf.constant(5.0) add = tf.add(input1,input2) mul = tf.multiply(input1,add) with tf.Session() as sess: result = sess.run([mul,add]) #同时运行两个op print (result)
结果
Total memory: 10.91GiB Free memory: 10.21GiB I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:03:00.0) [12.0, 4.0]
Feed的字面意思是喂养,流入。在tensorflow里面就是说先声明一个或者几个tensor,先用占位符给他们留几个位置,等到后面run的时候,再以其他形式比如字典的形式把值传进去,相当于买了两个存钱罐,先不存钱,等我想存的时候我再把钱一张一张“喂”进去。
#Feed #创建占位符 input1 = tf.placeholder(tf.float32) input2 = tf.placeholder(tf.float32) output = tf.multiply(input1,input2) with tf.Session() as sess: #feed的数据以字典的形式传入 print (sess.run(output,feed_dict={input1:[7.], input2:[8.]}))
结果
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:03:00.0)
[ 56.]