tensorflow中tensorboard 的简单实现

目标:利用终端实现一个简单的神经网络示意图

硬件工具:Mac
软件工具:tensorflow

创建py文件
这是一个小型的神经网络,输入--》隐层1 --》 隐层2 --》输出

import tensorflow as tf

#create layer
def add_layer(inputs, in_size, out_size, activation_function=None):
    # add one more layer and return the output of this layer
    #this is label
    with tf.name_scope('layer'):  
        with tf.name_scope('weights'):
            Weights = tf.Variable(
            tf.random_normal([in_size, out_size]),
            name='W')
        with tf.name_scope('biases'):
            biases = tf.Variable(
            tf.zeros([1, out_size]) + 0.1,
            name='b')
        with tf.name_scope('Wx_plus_b'):
            Wx_plus_b = tf.add(
            tf.matmul(inputs, Weights),
            biases)
        if activation_function is None:
            outputs = Wx_plus_b
        else:
            outputs = activation_function(Wx_plus_b, )
        return outputs

# x ,y placeholder
with tf.name_scope('inputs'):
        xs= tf.placeholder(tf.float32, [None, 1],name='x_in')
        ys= tf.placeholder(tf.float32, [None, 1],name='y_in')

#layer
l1 = add_layer(xs,1,10,activation_function=tf.nn.relu)

#prediction
prediction = add_layer(l1,10,1,activation_function=None)

#loss to measure model
with tf.name_scope('loss'):
    loss = tf.reduce_mean(
    tf.reduce_sum(
    tf.square(ys - prediction),
    reduction_indices=[1]
    ))

#train
with tf.name_scope('train'):
    train_step =  tf.train.GradientDescentOptimizer(0.1).minimize(loss)

# start run ,first create session
sess = tf.Session()
#create a file in the logs document
writer = tf.train.SummaryWriter("logs/",sess.graph)

# this isimportant
sess.run(tf.initialize_all_variables())

运行python,接着使用terminal中cd定位log所在的文件位置,输入

python -m tensorflow.tensorboard --logdir=logs

终端会出现

通过谷歌浏览器查看生成的网络

图片中的 http://192.168.0.101:6006

此时就能在图片中查看生成的小型神经网络结构图啦

示例神经网络图

另外一般会在event中生成loss图像,在distributions展示图标中 histograms展示权重和偏值与输出值的直方图

需要对代码进行相应的添加显示语句

import tensorflow as tf
import numpy as np

def add_layer(inputs, in_size, out_size, n_layer,activation_function=None):
    # add one more layer and return the output of this layer
    layer_name = 'layer%s'%n_layer
    with tf.name_scope(layer_name):
        with tf.name_scope('weights'):
            Weights = tf.Variable(
            tf.random_normal([in_size, out_size]),
            name='W')
            tf.histogram_summary(layer_name+'/weights',Weights)
        with tf.name_scope('biases'):
            biases = tf.Variable(
            tf.zeros([1, out_size]) + 0.1,
            name='b')
            tf.histogram_summary(layer_name+'/biases',biases)
        with tf.name_scope('Wx_plus_b'):
            Wx_plus_b = tf.add(
            tf.matmul(inputs, Weights),
            biases)
        if activation_function is None:
            outputs = Wx_plus_b
        else:
            outputs = activation_function(Wx_plus_b, )
            tf.histogram_summary(layer_name+'/outputs',outputs)
        return outputs

# make up some real data
#numpy.linspace(start,stop,num = 50,endpoint = True,retstep = False,dtype = None)
x_data = np.linspace(-1,1,300)[:,np.newaxis] #从-1 ~1 列上添加一个维度
noise = np.random.normal(0,0.05,x_data.shape)
y_data = np.square(x_data) - 0.5 +noise

with tf.name_scope('inputs'):
    xs= tf.placeholder(tf.float32, [None, 1],name='x_in')
    ys= tf.placeholder(tf.float32, [None, 1],name='y_in')

l1 = add_layer(xs,1,10,n_layer=1,activation_function=tf.nn.relu)
prediction = add_layer(l1,10,1,n_layer=2,activation_function=None)

with tf.name_scope('loss'):
    loss = tf.reduce_mean(
    tf.reduce_sum(
    tf.square(ys - prediction),
    reduction_indices=[1]
    ))
    tf.scalar_summary('loss',loss)

with tf.name_scope('train'):
    train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

sess = tf.Session()
merged = tf.merge_all_summaries()
writer = tf.train.SummaryWriter("logs/",sess.graph)

sess.run(tf.initialize_all_variables())

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

图形如下

图标
立体直方图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容

  • 首先,控制情绪是不可行的 情绪的特质像水,当理性想要去控制情绪的时候,往往会增加它的破坏力量。 情绪本身是生命的重...
    倪振源阅读 517评论 2 6
  • 国策方针,扶贫攻尖战,解决千万人贫困。 普通党员,肩负国政策,扶贫入村须知道。 传经送宝,宣传党温暖,摸清因何至贫...
    冲天农锄草阅读 334评论 6 30
  • 加密货币——虚拟货币如何挑战全球经济秩序是由【美】保罗.维格纳和迈克尔.J.卡西 合著的。本篇先简要介绍一下这本书...
    梦林1008阅读 294评论 0 0
  • 每一段记忆,都有一个密码, ≧≦ 写给自己的十封信 曾经在某一瞬间,我们都以为自己长大了...
    深海溺梦阅读 544评论 0 1