这才是TensorFlow自带可视化工具

来源:板桥互联网平台 2019-07-16 17:23

这才是 TensorFlow 自带可视化工具 TensorBoard 的正确打开方式!(附项目源码)

按:本文作者Jerry,原文载于作者个人博客,已获授权。

TensorBoard如何更直观的观察数据在神经络中的变化,或是已经构建的神经络的结构。上一篇文章说到,可以使用 matplotlib 第三方可视化,来进行一定程度上的可视化。然而Tensorflow也自带了可视化模块Tensorboard,并且能更直观的看见整个神经络的结构。

上面的结构图甚至可以展开,变成:

使用结构图:

with tensorflow .name_scope(layer_name):

直接使用以上代码生成一个带可展开符号的一个域,并且支持嵌套操作:

with _scope(layer_name):

with _scope(weights):

节点一般是变量或常量,需要加一个“name=‘’”参数,才会展示和命名,如:

with _scope(weights):

Weights = riable(ndom_normal([in_size,out_size]))

结构图符号及意义:

变量:

变量则可使用stogram_summary()方法:

stogram_summary(layer_name+/weights,Weights) #name命名,Weights赋值

常量:

常量则可使用alar_summary()方法:

alar_summary(loss,loss) #命名和赋值

展示:

最后需要整合和存储SummaryWriter:

#合并到Summary中

merged = rge_all_summaries()

#选定可视化存储目录

writer = mmaryWriter(/目录,aph)

merged也是需要run的,因此还需要:

result = n(merged) #merged也是需要run的

d_summary(result,i)

执行:

运行后,会在相应的目录里生成一个文件,执行:

tensorboard --logdir=/目录

会给出一段址:

浏览器中打开这个址即可,因为有兼容问题,firefox并不能很好的兼容,建议使用Chrome。

常量在Event中,结构图在Graphs中,变量在最后两个Tag中。

附项目代码:具体项目承接上一篇文章:

importtensorflowastf

importnumpyasnp

defadd_layer(inputs,in_size,out_size,n_layer,activation_function=None):#activation_function=None线性函数

layer_name=layer%s%n_layer

_scope(layer_name):

_scope(weights):

Weights=riable(ndom_normal([in_size,out_size]))#Weight中都是随机变量

stogram_summary(layer_name+/weights,Weights)#可视化观看变量

_scope(biases):

biases=riable(ros([1,out_size])+0.1)#biases推荐初始值不为0

stogram_summary(layer_name+/biases,biases)#可视化观看变量

_scope(Wx_plus_b):

Wx_plus_b=tmul(inputs,Weights)+biases#inputs*Weight+biases

stogram_summary(layer_name+/Wx_plus_b,Wx_plus_b)#可视化观看变量

ifactivation_functionisNone:

outputs=Wx_plus_b

else:

outputs=activation_function(Wx_plus_b)

stogram_summary(layer_name+/outputs,outputs)#可视化观看变量

returnoutputs

#创建数据x_data,y_data

x_data=nspace(-1,1,300)[:,waxis]#[-1,1]区间,300个单位,waxis增加维度

noise=rmal(0,0.05,x_ape)#噪点

y_data=uare(x_data)-0.5+noise

_scope(inputs):#结构化

xs=aceholder(oat32,[None,1],name=x_input)

ys=aceholder(oat32,[None,1],name=y_input)

#三层神经,输入层(1个神经元),隐藏层(10神经元),输出层(1个神经元)

l1=add_layer(xs,1,10,n_layer=1,activation_function=lu)#隐藏层

prediction=add_layer(l1,10,1,n_layer=2,activation_function=None)#输出层

#predition值与y_data差别

_scope(loss):

loss=duce_mean(duce_sum(uare(ys-prediction),reduction_indices=[1]))#square()平方,sum()求和,mean()平均值

alar_summary(loss,loss)#可视化观看常量

_scope(train):

train_step=adientDescentOptimizer(0.1).minimize(loss)#0.1学习效率,minimize(loss)减小loss误差

init=itialize_all_variables()

sess=ssion()

#合并到Summary中

merged=rge_all_summaries()

#选定可视化存储目录

writer=mmaryWriter(Desktop/,aph)

n(init)#先执行init

#训练1k次

foriinrange(1000):

n(train_step,feed_dict={xs:x_data,ys:y_data})

ifi%50==0:

result=n(merged,feed_dict={xs:x_data,ys:y_data})#merged也是需要run的

d_summary(result,i)#result是summary类型的,需要放入writer中,i步数(x轴)

了解完 TensorBoard 的详细用法,你是否想了解 TensorFlow 的更多内容?

近期, AI 研习社有幸邀请到 ThoughtWorks 佟达、白发川两位老师,他们将在 平台推出一个“Tensorflow 神经络算法高级应用”系列培训课程,感兴趣的朋友千万不可错过!

ThoughtWorks

授课方 ThoughtWorks 是全球领先的 IT 咨询公司,联合国妇女儿童组织、世界卫生组织合作伙伴。总部在芝加哥,42 个办公室分布在全球的 15 个国家。

2012年

这才是TensorFlow自带可视化工具

,ThoughtWorks 排在 Google,Facebook 之前,被评为全球最难面试的公司。

2016 年,ThoughtWorks 力压群雄,获得全球“最佳女性科技人员雇主”奖项。

培训课介绍

从初级到高级,理论+实战,一站式深度了解 TensorFlow!

本课程面向深度学习开发者,讲授如何利用 TensorFlow 解决图像识别、文本分析等具体问题。课程跨度为 10 周,将从 TensorFlow 的原理与基础实战技巧开始,一步步教授学员如何在 TensorFlow 上搭建 CNN、自编码、RNN、GAN 等模型,并最终掌握一整套基于 TensorFlow 做深度学习开发的专业技能。

两名授课老师佟达、白发川身为 ThoughtWorks 的资深技术专家,具有丰富的大数据平台搭建、深度学习系统开发项目经验。

开课时间:每周二、四晚 20::00

开课时长:总学时 20 小时,分 10 周完成,每周 2 次,每节课 1 小时。

详情地址:

直播授课进行中,欢迎加入!

(公众号:):

万事开头难!入门TensorFlow,这9个问题TF Boys 必须要搞清楚

一文详解如何用 TensorFlow 实现基于 LSTM 的文本分类(附源码)

版权文章,未经授权禁止转载。详情见转载须知。