TensorFlow学习之路:Tensorboard

如有错误请予以指出,本文为初始版本,后续会继续修改完善。

  1. 在程序中
    writer = tf.summary.FileWriter(‘/tmp/tensorboard’)#/tmp/tensorboard为日志存储路径,可自行修改
    writer.add_graph(sess.graph)
    就可以显示计算图了,这样的话只显示计算图

  2. tensorboard –logdir=/tmp/tensorboard

  3. Starting TensorBoard 52 at http://localhost.localdomain:6006 (Press CTRL+C to quit)

  4. 然后在浏览器中输入http://127.0.0.1:6006/

如果某一进程正在使用6006端口

则查看哪个进程 lsof -i:6006
然后结束该进程 kill -9 **
再执行第1步

FQA:
Q:如果要显示变量的值的变化如w,b,cross_entropy,则要
A:
1. 创建想汇总数据的 TensorFlow 图,然后再选择你想在哪个节点进行汇总(summary)操作。
2. tf.summary.scalar(‘w’, w) 通过向节点附加scalar_summary操作来分别输出学习速度和期望误差。然后你可以给每个 scalary_summary 分配一个有意义的 标签,比如 ‘learning rate’ 和 ‘loss function’。
或者还希望显示一个特殊层中激活的分布,或者梯度权重的分布。可以通过分别附加 tf.summary.histogram() 运算来收集权重变量和梯度输出。
3. merge = tf.summary.merge_all()。因为在TensorFlow中,所有的操作只有当你执行,或者另一个操作依赖于它的输出时才会运行。我们刚才创建的这些节点(summary nodes)都围绕着你的图像:没有任何操作依赖于它们的结果。因此,为了生成汇总信息,我们需要运行所有这些节点。这样的手动工作是很费时费力的,因此可以使用tf.merge_all_summaries来将他们合并为一个操作。它会依据特点步骤将所有数据生成一个序列化的Summary protobuf对象
4. 然后将汇总数据写入磁盘,需要将汇总的protobuf对象传递给tf.summary.FileWriter()。如:writer = tf.summary.FileWriter(‘/tmp/tensorboard’)
writer.add_graph(sess.graph)
5. result , accuracy = sess.run([merge, accuracy], feed_back={x:x, y:y})
writer.add_summary(result, i)
结束。

Q: 什么是protobuf?
A: protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持PHP、Java、c++、Python等语言环境。通过将这些类包含在项目中,可以很轻松的调用相关方法来完成业务消息的序列化与反序列化工作。

注:
1. 在merge前要将想要显示的数据全部添加完,所以要显示运行时的参数,如accuracy,则要在merge前定义一个计算accuracy的函数,这样就可以了。顺序不能乱。
2. 需要在merge前添加的为scalar,image,audio,distribution(w, b),histogram
3. 当保存模型时,会显示embedding
embedding是从输入数据点到欧式空间中点的映射,为了理解模型的行为特征,机器学习的研发人员经常需要探索某个特定的Embedding。例如做音乐推荐系统的工程师创建了一个歌曲的embedding,他可能需要验证”Stairway to Heaven”这支歌曲最近的邻居包括“Whole Lotta Love”但不包括”Let it Go”. 对于这样的用户,从Embedding的几何结构获得理解就很关键。
论文:Embedding Projector: Interactive Visualization and Interpretation of Embeddings
参考链接:http://blog.csdn.net/wangyao_bupt/article/details/70404823

猜你喜欢

转载自blog.csdn.net/shaozhulei555/article/details/72457233
今日推荐