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曲线,一定要记得家上这一步。还有
with tf.name_scope("loss"):
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-l2),reduction_indices=[1]))
tf.summary.scalar("loss",loss)
对于你绘制的曲线。一定要记得是分成各个点来绘制的。所以在最后也会有改动,每一个都要加到summary 里面。

所有代码:
for i in range(1000):
sess.run(train_step, feed_dict={xs:x_data, ys:y_data})
if i%50 == 0:
rs = sess.run(merged,feed_dict={xs:x_data,ys:y_data})
writer.add_summary(rs, i)
至于启动tensorboard:
首先在cmd或者terminal切换到当前文件所在的文件夹,然后输入:
tensorboard --logdir=logs/(貌似不需要斜杠也可以可以试一下),当然 这里直接输入路径也是可以的。
最后会给你一个网址:0.0.0.0:6006还是什么。很多windows同学打不开,那就把前面的ip直接换成localhost即可
所有代码:
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 14 17:26:15 2017 @author: Jarvis
""" import tensorflow as tf
import numpy as np
def addLayer(inputs,inSize,outSize,level,actv_func = None):
layername = "layer%s"%(level)
with tf.name_scope("Layer"):
with tf.name_scope("Weights"):
Weights = tf.Variable(tf.random_normal([inSize,outSize]),name="W")
# tf.summary.histogram(layername+"/Weights",Weights)
with tf.name_scope("bias"):
bias = tf.Variable(tf.zeros([1,outSize]),name = "bias")
# tf.summary.histogram(layername+"/bias",bias) with tf.name_scope("Wx_plus_b"):
Wx_plus_b = tf.matmul(inputs,Weights)+bias
# tf.summary.histogram(layername+"/Wx_plus_b",Wx_plus_b)
if actv_func == None:
outputs = Wx_plus_b
else:
outputs = actv_func(Wx_plus_b)
tf.summary.histogram(layername+"\outputs",outputs)
return outputs
x_data = np.linspace(-1,1,300)[:,np.newaxis]
noise= np.random.normal(0, 0.05, x_data.shape).astype(np.float32)
y_data = np.square(x_data)+0.5+noise
with tf.name_scope("inputs"):
xs = tf.placeholder(tf.float32,[None,1],name = "x_input")
ys = tf.placeholder(tf.float32,[None,1],name = "y_input") l1 = addLayer(xs,1,10,level = 1,actv_func=tf.nn.relu)
l2 = addLayer(l1,10,1,level=2,actv_func=None)
with tf.name_scope("loss"):
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-l2),reduction_indices=[1]))
tf.summary.scalar("loss",loss)
with tf.name_scope("train"):
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) sess = tf.Session()
merged = tf.summary.merge_all()
writer = tf.summary.FileWriter("logs/",sess.graph)#很关键一定要在run之前把这个加进去 sess.run(tf.global_variables_initializer()) for i in range(1000):
sess.run(train_step, feed_dict={xs:x_data, ys:y_data})
if i%50 == 0:
rs = sess.run(merged,feed_dict={xs:x_data,ys:y_data})
writer.add_summary(rs, i)
很多用spyder的同学可能老师报一些莫名奇妙的错误,你不妨试试重启一下kernel试试
TFboy养成记 tensorboard的更多相关文章
- TFboy养成记 多层感知器 MLP
内容总结与莫烦的视频. 这里多层感知器代码写的是一个简单的三层神经网络,输入层,隐藏层,输出层.代码的目的是你和一个二次曲线.同时,为了保证数据的自然,添加了mean为0,steddv为0.05的噪声 ...
- TFBOY 养成记 一些比较好多文章。
API解释中文版(简书文章,没事看看): http://www.jianshu.com/p/e3a79eac554f Tensorlfow op辨异:tf.add()与tf.nn.bias_add() ...
- TFboy养成记 CNN
1/先解释下CNN的过程: 首先对一张图片进行卷积,可以有多个卷积核,卷积过后,对每一卷积核对应一个chanel,也就是一张新的图片,图片尺寸可能会变小也可能会不变,然后对这个chanel进行一些po ...
- TFboy养成记 MNIST Classification (主要是如何计算accuracy)
参考:莫烦. 主要是运用的MLP.另外这里用到的是批训练: 这个代码很简单,跟上次的基本没有什么区别. 这里的lossfunction用到的是是交叉熵cross_entropy.可能网上很多形式跟这里 ...
- TFboy养成记 tf.cast,tf.argmax,tf.reduce_sum
referrence: 莫烦视频 先介绍几个函数 1.tf.cast() 英文解释: 也就是说cast的直译,类似于映射,映射到一个你制定的类型. 2.tf.argmax 原型: 含义:返回最大值所在 ...
- TFboy养成记 tensor shape到底怎么说
tensor.shape 对于一位向量,其形式为[x,] 对于矩阵,二维矩阵[x,y],三维矩阵[x,y,z] 对于标量,也就是0.3*x这种0.3,表示形式为() 如果说这个矩阵是三维的,你想获得其 ...
- TFboy养成记 简单小程序(Variable & placeholder)
学习参考周莫烦的视频. Variable:主要是用于训练变量之类的.比如我们经常使用的网络权重,偏置. 值得注意的是Variable在声明是必须赋予初始值.在训练过程中该值很可能会进行不断的加减操作变 ...
- TFboy养成记
转自:http://www.cnblogs.com/likethanlove/p/6547405.html 在tensorflow的使用中,经常会使用tf.reduce_mean,tf.reduce_ ...
- 2016级算法第六次上机-F.AlvinZH的学霸养成记VI
1082 AlvinZH的学霸养成记VI 思路 难题,凸包. 分析问题,平面上给出两类点,问能否用一条直线将二者分离. 首先应该联想到这是一个凸包问题,分别计算两类点的凸包,如果存在符合题意的直线,那 ...
随机推荐
- vue-cli + sass 的正确打开方式
关于在vue-cli搭建的项目中怎么配置sass,网上搜到的基本是这种答案: 但是我认为,直接将样式写在每个单文件的<style>里,是十分不明智的做法.且不说node-sass安装过程的 ...
- 在vmware 中使用桥连接 连接到网络
vMware虚拟机以后,连不上网,通过ifconfig命令,查看结果,如图所示: 然后,我想尝试一下,在虚拟机中ping 本地物理机地址,结果如图. 总结起来,主要有4步: 1.使用chkconfig ...
- ELK系列~对fluentd参数的理解
这段时候一直在研究ELK框架,主要集成在对fluentd和nxlog的研究上,国内文章不多,主要看了一下官方的API,配合自己的理解,总结了一下,希望可以帮到刚入行的朋友们! Fluentd(日志收集 ...
- JF厂V8版本爱彼AP15703,黄家橡树离岸型,超越N厂神器
根据调查的结果JF厂的爱彼AP15703几乎常年垄断了爱彼的市场,销量持续性的排在爱彼整个品牌中的第一位.JF厂这两年一直在攻克爱彼整个品牌,有了解的都知道 爱彼15703以前是N厂的五大复刻神器的代 ...
- 07-从零玩转JavaWeb-对象内存分析
上篇看了关于数组的内存分析,接下来看一下对象的内存分析 假定有如下类: 第一步会把Person的字节码放到方法区 执行main方法,把main方法的栈帧放到栈当中 Person zly = ...
- 安装PyQt5之后mayavi和VTK不能使用
mayavi在显示数据的过程中需要调用PyQt4的GUI方法产生应用框架.但是新发布的PyQt5和PyQt4在很多方面都是不兼容的,这也就导致了用mayavi编写的程序运行失败.在实践之后,我的解决方 ...
- C# group 子句
group 子句返回一个 IGrouping<TKey,TElement> 对象序列,这些对象包含零个或更多与该组的键值匹配的项. 例如,可以按照每个字符串中的第一个字母对字符串序列进行分 ...
- URI 方法 encodeURI() encodeURIComponent() docodeURI() decodeURIComponent()
URI 方法 encodeURI() encodeURIComponent() docodeURI() decodeURIComponent() var sUri = “http://ww ...
- 百度Echarts导入
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Spring知识整理
Spring简介 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,用来管理和维护bean,其中的特点是IOC(控制反转) DI(依赖注入) AOP(面向切面) 容易和其他框 ...