深度学习之TensorFlow实战4

这一节我们来讲讲TensorFlow可视化

TensorFlow提供了一套可视化工具:TensorBoard,在通过pip安装TensorFlow的情况下,默认也会安装TensorBoard。通过TensorBoard可以展示TensorFlow的图像、绘制图像生成的定量指标以及附加数据等信息。
在这里插入图片描述
TensorBoard通过读取TensorFlow的事件文件来运行,TensorFlow的事件文件包括了在TensorFlow运行中涉及到的主要数据,比如:scalar、image、audio、histogram和graph等。通过tf.summary相关API,将数据添加summary中,然后在Session中执行这些操作得到一个序列化Summary protobuf对象,然后使用FileWriter对象将汇总的序列数据写入到磁盘,然后使用tensorboard命令进行图标展示,默认访问端
口是:6006
TensorBoard中支持结构视图和设备视图。
在这里插入图片描述
在这里插入图片描述
TensorFlow可视化
在这里插入图片描述
在这里插入图片描述

TensorFlow线程和队列

在TensorFlow进行异步计算的时候,队列是一种强大的机制。和TensorFlow中的其它组件一样,队列就是TensorFlow图中的节点。这是一种有状态的节点,和变量一样。其它节点可以修改它的内容,比如:将新元素添加到队列后端,也可以把队列前端的元素删除。
TensorFlow常见队列:
FIFOQueue:先进先出队列
RandomShuffleQueue:随机混淆队列
TensorFlow线程和队列
队列使用的常见结构:
多个线程准备训练数据,并将这些数据推入队列中
一个训练线程执行一个训练操作,此操作会从队列中移除最小批次的数据(mini batches)

TensorFlow的Session对象是支持多线程的,因此多个线程可以比较方便的使用同一个Session并且并行的执行操作。但是,在Python程序实现这样的并行运算并不容易,所有线程必须被同步的终止,异常必须被正确的捕获并报告,会话终止的时候,队列必须对正确的关闭。针对这个问题,TensorFlow提供了两个类来帮助多线程的实现:tf.Coordinator和tf.QueueRunner。
Coordinator类可以用来停止多个工作线程并且向那个在等待所有工作线程终止的线程发送异常报告
QueueRunner类用来协调多个工作线程同时将多个张量推入一个队列中

Coordinator类的主要方法如下:
should_stop():如果线程应该停止则返回True request_stop():请求线程停止join():等待被指定的线程终止Coordinator类的操作过程主要如下:
首先创建Coordinator对象,然后建立一些使用Coordinator对象的线程
这些线程都是一直运行的,直到should_stop返回True时候停止。
任意线程都可以显示的调用的request_stop方法来停止线程,同时其它线程的should_stop会返回True

QueueRunner类可以创建一组线程,这些线程可以重复的执行Qnquene操作,同时使用Coordinator来处理线程同步终止,此外QueueRunner内部维护了一个closer thread,当Coordinator收到异常报告时,这个线程会自动关闭队列。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值