网站开发怎么兼容ie,网站维护提示,湛江模板建站公司,云主机和云桌面的区别TensorFlow提供了两个类来实现对Session中多线程的管理#xff1a;tf.Coordinator和 tf.QueueRunner#xff0c;这两个类往往一起使用。
Coordinator类用来管理在Session中的多个线程#xff0c;可以用来同时停止多个工作线程并且向那个在等待所有工作线程终止的程序报告…TensorFlow提供了两个类来实现对Session中多线程的管理tf.Coordinator和 tf.QueueRunner这两个类往往一起使用。
Coordinator类用来管理在Session中的多个线程可以用来同时停止多个工作线程并且向那个在等待所有工作线程终止的程序报告异常该线程捕获到这个异常之后就会终止所有线程。使用 tf.train.Coordinator()来创建一个线程管理器协调器对象。
QueueRunner类用来启动tensor的入队线程可以用来启动多个工作线程同时将多个tensor训练数据推送入文件名称队列中具体执行函数是 tf.train.start_queue_runners 只有调用 tf.train.start_queue_runners 之后才会真正把tensor推入内存序列中供计算单元调用否则会由于内存序列为空数据流图会处于一直等待状态。
调用 tf.train.slice_input_producer从 本地文件里抽取tensor准备放入Filename Queue文件名队列中;调用 tf.train.batch从文件名队列中提取tensor使用单个或多个线程准备放入文件队列;调用 tf.train.Coordinator() 来创建一个线程协调器用来管理之后在Session中启动的所有线程;调用tf.train.start_queue_runners, 启动入队线程由多个或单个线程按照设定规则把文件读入Filename Queue中。函数返回线程ID的列表一般情况下系统有多少个核就会启动多少个入队线程入队具体使用多少个线程在tf.train.batch中定义;文件从 Filename Queue中读入内存队列的操作不用手动执行由tf自动完成;调用sess.run 来启动数据出列和执行计算;使用 coord.should_stop()来查询是否应该终止所有线程当文件队列queue中的所有文件都已经读取出列的时候会抛出一个 OutofRangeError 的异常这时候就应该停止Sesson中的所有线程了;使用coord.request_stop()来发出终止所有线程的命令使用coord.join(threads)把线程加入主线程等待threads结束。