tf读取图像、启动图的三种方式

来源:互联网 发布:杰森基德生涯数据 编辑:程序博客网 时间:2024/05/16 08:37

第一种就是把图片看做是一个图片直接读进来,获取图片的原始数据,再进行解码

import tensorflow as tf;    image_raw_data = tf.gfile.FastGFile('/home/penglu/Desktop/11.jpg').read()  image = tf.image.decode_jpeg(image_raw_data) #图片解码  print image.eval(session=tf.Session())

第二种方式就是把图片看看成一个文件,用队列的方式读取

import tensorflow as tf;    path = '/home/penglu/Desktop/11.jpg'  file_queue = tf.train.string_input_producer([path]) #创建输入队列  image_reader = tf.WholeFileReader()  _, image = image_reader.read(file_queue)  image = tf.image.decode_jpeg(image)  with tf.Session() as sess:      coord = tf.train.Coordinator() #协同启动的线程      threads = tf.train.start_queue_runners(sess=sess, coord=coord) #启动线程运行队列      print sess.run(image)      coord.request_stop() #停止所有的线程      coord.join(threads)  
sess = tf.Session()sess.run(init)
with tf.Session() as sess:      sess.run(tf.global_variables_initializer())      print sess.run(op)
sess_ = tf.InteractiveSession()  tf.global_variables_initializer().run()  print op.eval()  sess_.close()  

tf.train.Supervisor().managed_session()
与上面两种启动图相比较来说,Supervisor() 帮助我们处理一些事情:
(a) 自动去 checkpoint 加载数据或者初始化数据
(b) 自动有一个 Saver ,可以用来保存 checkpoint
eg: sv.saver.save(sess, save_path)
(c) 有一个 summary_computed 用来保存 Summary
因此我们可以省略了以下内容:
(a)手动初始化或者从 checkpoint 中加载数据
(b)不需要创建 Saver 类, 使用 sv 内部的就可以
(c)不需要创建 Summary_Writer()

sv = tf.train.Supervisor(logdir=None, init_op=tf.global_variables_initializer())  with sv.managed_session() as sess:      print sess.run(preduct) 
#coding:utf-8  import tensorflow as tf  a = tf.Variable(1)  b = tf.Variable(2)  c = tf.add(a, b)  update = tf.assign(a, c)  init = tf.global_variables_initializer()  sv = tf.train.Supervisor(logdir="./tmp/", init_op=init)  saver = sv.saver  with sv.managed_session() as sess:      for i in range(1000):          update_ = sess.run(update)          #print("11111", update)          if i % 100 == 0:              sv.saver.save(sess, "./tmp/", global_step=i)  
input1 = tf.placeholder(tf.float32)input2 = tf.placeholder(tf.float32)output = tf.mul(input1, input2)with tf.Session() as sess:  print sess.run([output], feed_dict={input1:[7.], input2:[2.]})
原创粉丝点击