TFboy养成记 tensorboard

首先介绍几个用法:

with tf.name_scope(name = "inputs"):

这个是用于区分区域的。如,train,inputs等。

xs = tf.placeholder(tf.float32,[None,1],name = "x_input")

name用于对节点的命名。

merged = tf.summary.merge_all()

注:这里很多代码可能跟莫烦老师的代码并不一样,主要是由于版本变迁,tensorflow很多函数改变。

这一步很重要!!!如果你想看loss曲线,一定要记得家上这一步。还有

1 with tf.name_scope("loss"):
2     loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-l2),reduction_indices=[1]))
3     tf.summary.scalar("loss",loss)

对于你绘制的曲线。一定要记得是分成各个点来绘制的。所以在最后也会有改动,每一个都要加到summary 里面。

所有代码:

1 for i in range(1000):
2    sess.run(train_step, feed_dict={xs:x_data, ys:y_data})
3    if i%50 == 0:
4       rs = sess.run(merged,feed_dict={xs:x_data,ys:y_data})
5       writer.add_summary(rs, i)

至于启动tensorboard:

首先在cmd或者terminal切换到当前文件所在的文件夹,然后输入:
tensorboard --logdir=logs/(貌似不需要斜杠也可以可以试一下),当然 这里直接输入路径也是可以的。

最后会给你一个网址:0.0.0.0:6006还是什么。很多windows同学打不开,那就把前面的ip直接换成localhost即可

所有代码:

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Wed Jun 14 17:26:15 2017
 4
 5 @author: Jarvis
 6 """
 7
 8 import tensorflow as tf
 9 import numpy as np
10 def addLayer(inputs,inSize,outSize,level,actv_func = None):
11     layername = "layer%s"%(level)
12     with tf.name_scope("Layer"):
13         with tf.name_scope("Weights"):
14             Weights = tf.Variable(tf.random_normal([inSize,outSize]),name="W")
15         #    tf.summary.histogram(layername+"/Weights",Weights)
16         with tf.name_scope("bias"):
17             bias = tf.Variable(tf.zeros([1,outSize]),name = "bias")
18        #     tf.summary.histogram(layername+"/bias",bias)
19
20         with tf.name_scope("Wx_plus_b"):
21             Wx_plus_b = tf.matmul(inputs,Weights)+bias
22         #    tf.summary.histogram(layername+"/Wx_plus_b",Wx_plus_b)
23         if actv_func == None:
24             outputs = Wx_plus_b
25         else:
26             outputs = actv_func(Wx_plus_b)
27         tf.summary.histogram(layername+"\outputs",outputs)
28         return outputs
29 x_data = np.linspace(-1,1,300)[:,np.newaxis]
30 noise=  np.random.normal(0, 0.05, x_data.shape).astype(np.float32)
31 y_data = np.square(x_data)+0.5+noise
32 with tf.name_scope("inputs"):
33     xs = tf.placeholder(tf.float32,[None,1],name = "x_input")
34     ys = tf.placeholder(tf.float32,[None,1],name = "y_input")
35
36 l1 = addLayer(xs,1,10,level = 1,actv_func=tf.nn.relu)
37 l2 = addLayer(l1,10,1,level=2,actv_func=None)
38 with tf.name_scope("loss"):
39     loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-l2),reduction_indices=[1]))
40     tf.summary.scalar("loss",loss)
41 with tf.name_scope("train"):
42     train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
43
44
45
46 sess = tf.Session()
47 merged = tf.summary.merge_all()
48 writer = tf.summary.FileWriter("logs/",sess.graph)#很关键一定要在run之前把这个加进去
49
50 sess.run(tf.global_variables_initializer())
51
52 for i in range(1000):
53    sess.run(train_step, feed_dict={xs:x_data, ys:y_data})
54    if i%50 == 0:
55       rs = sess.run(merged,feed_dict={xs:x_data,ys:y_data})
56       writer.add_summary(rs, i)
57
58     

很多用spyder的同学可能老师报一些莫名奇妙的错误,你不妨试试重启一下kernel试试

时间: 2024-11-05 16:23:41

TFboy养成记 tensorboard的相关文章

TFboy养成记 多层感知器 MLP

内容总结与莫烦的视频. 这里多层感知器代码写的是一个简单的三层神经网络,输入层,隐藏层,输出层.代码的目的是你和一个二次曲线.同时,为了保证数据的自然,添加了mean为0,steddv为0.05的噪声. 添加层代码: def addLayer(inputs,inSize,outSize,activ_func = None):#insize outsize表示输如输出层的大小,inputs是输入.activ_func是激活函数,输出层没有激活函数.默认激活函数为空 with tf.name_sco

TFBOY 养成记 一些比较好多文章。

API解释中文版(简书文章,没事看看): http://www.jianshu.com/p/e3a79eac554f Tensorlfow op辨异:tf.add()与tf.nn.bias_add()区别: http://blog.csdn.net/lanchunhui/article/details/66477742

TFboy养成记 MNIST Classification (主要是如何计算accuracy)

参考:莫烦. 主要是运用的MLP.另外这里用到的是批训练: 这个代码很简单,跟上次的基本没有什么区别. 这里的lossfunction用到的是是交叉熵cross_entropy.可能网上很多形式跟这里的并不一样. 这里一段时间会另开一个栏.专门去写一些机器学习上的一些理论知识. 这里代码主要写一下如何计算accuracy: 1 def getAccuracy(v_xs,v_ys): 2 global y_pre 3 y_v = sess.run(y_pre,feed_dict={x:v_xs})

TFboy养成记 简单小程序(Variable & placeholder)

学习参考周莫烦的视频. Variable:主要是用于训练变量之类的.比如我们经常使用的网络权重,偏置. 值得注意的是Variable在声明是必须赋予初始值.在训练过程中该值很可能会进行不断的加减操作变化. placeholder:也是用于存储数据,但是主要用于feed_dict的配合,接收输入数据用于训练模型等.placeholder值在训练过程中会不断地被赋予新的值,用于批训练,基本上其值是不会轻易进行加减操作. placeholder在命名时是不会需要赋予值得,其被赋予值得时间实在feed_

TFboy养成记 tf.cast,tf.argmax,tf.reduce_sum

referrence: 莫烦视频 先介绍几个函数 1.tf.cast() 英文解释: 也就是说cast的直译,类似于映射,映射到一个你制定的类型. 2.tf.argmax 原型: 含义:返回最大值所在的坐标.(谁给翻译下最后一句???) ps:谁给解释下axis最后一句话? 例子: 3.tf.reduce_mean() 原型: 含义:一句话来说就是对制定的reduction_index进行均值计算. 注意,reduction_indices为0时,是算的不同的[]的同一个位置上的均值 为1是是算

TFboy养成记 CNN

1 # -*- coding: utf-8 -*- 2 """ 3 Created on Sun Jul 2 19:59:43 2017 4 5 @author: Administrator 6 """ 7 import tensorflow as tf 8 import numpy as np 9 from tensorflow.examples.tutorials.mnist import input_data 10 11 def compu

前端工程师养成记:开发环境搭建(Sublime Text必备插件推荐)

为了让自己更像一个前端工程师,决定从开发环境开始武装自己.本文将介绍前段工程师开发的一些利器的安装步骤,主要包括了: 1.Node.js的安装 2.Grunt的安装及常用插件 3.Sublime Text的安装及必备插件 一.Node.js的安装 Node.js就是一堆前端工程师捧红的,所以装上这个嘛,主要不是自己需要使用Node.js而是一堆工具对他的依赖. Windows下安装步骤很简单: 1.去到http://nodejs.org/下载最新的安装包,安装. 2.在CMD下运行,node和n

中产阶级养成记:现代人需要的8点能力素养(一)(不服来战,欢迎勾搭)

首先,要说明"中产阶级养成记",这个确实有点"标题党"了.我自认为,关于以下几点的能力素养,对从贫穷晋升到中产阶级方面,有很大帮助,至少我现在是这么想的,也认为是可行的. 自己的家庭或者说家族,本来就是那种平民百姓,在早期属于"农民",最近些年,属于"半农半工","全工"的状态. 作为整个家庭,甚至是家族,几代人中间唯一的一个有较高含金量的"大学生" ,我最想做的事情之一,就是想在经济方

【活动】DevOps直播技术架构养成记

背景 半月前,参加了UCloud直播云的活动,主题"DevOps|直播技术架构养成记",很是不错的.能够整理出本篇博文,非常感谢参加会议的朋友们在微信群中提供的非常好的资料,以作分享. Now, go into! 低延迟.秒开? 网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,主播不满足于单向的直播,观众则更渴望互动,直播的打开时间和延迟变成了影响产品功能发展重要指标.那么,问题来了:如何实现低